Ich habe ein initramfs boot script gemacht , wie hier beschrieben, http://manpages.ubuntu.com/manpages/xen ... ols.8.html , das noch before systemd started das filesystem modfiziert. Das script liegt in /etc/initramfs-tools/scripts/init-bottom.
Das funktioniert so weit auch, beim booten wird das script ausgführt und mein filesystem sieht aus wie gewünscht.
Was ich jedoch nicht verstehe, auch beim installieren eines Kernel packages mit dpkg -i wird genau dieses script auch ausgeführt.
Warum? Das ist doch ein boot script.
[gelöst] kernel installation führt merkwürdigerweise boot scripts in initramfs init-bottom aus
[gelöst] kernel installation führt merkwürdigerweise boot scripts in initramfs init-bottom aus
Zuletzt geändert von wuxel am 26.03.2019 20:05:52, insgesamt 1-mal geändert.
Re: kernel installation führt merkwürdigerweise boot scripts in initramfs init-bottom aus
Hast du folgenden Abschnitt beachtet?
update-initramfs/mkinitramfs führen die Skripte anscheinend einmal mit prereqs als erstem Argument aus, beim Boot dann ohne das Argument. Wenn du prereqs nicht beachtest, macht dein Skript während update-initramfs/mkinitramfs natürlich dasselbe wie beim Boot.
Code: Alles auswählen
Header
In order to support prereqs, each script should begin with the following lines:
#!/bin/sh
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
. /usr/share/initramfs-tools/hook-functions
# Begin real processing below this line
Manchmal bekannt als Just (another) Terminal Hacker.
Re: kernel installation führt merkwürdigerweise boot scripts in initramfs init-bottom aus
Danke für den Hinweis, ich hätte das jetzt nicht so interpretiert als das man unbedingt ein prereqs braucht. In meinem script gibt es kein prereqs weil in dem init-bottom Verzeichnis gibt es ja auch nur das eine file und deswegen brauche ich keine Reihenfolge festlegen. Aber ich werde mal damit experimentieren.
Code: Alles auswählen
Header
Like for hook scripts, there are no guarantees as to the order in which the different
scripts in one subdirectory (see "Subdirectories" below) are executed. In order to define
a certain order, a similar header as for hook scripts should be used:
#!/bin/sh
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
Where PREREQ is modified to list other scripts in the same subdirectory if necessary.
Re: kernel installation führt merkwürdigerweise boot scripts in initramfs init-bottom aus
Aus der manpage hab ich das auch nicht als zwingend rausgelesen. Sah beim schnellen Ausprobieren dann aber so aus, dass die Skripte bei update-initramfs einmal mit prereqs als erstem Argument aufgerufen werden.
Manchmal bekannt als Just (another) Terminal Hacker.
Re: [gelöst] kernel installation führt merkwürdigerweise boot scripts in initramfs init-bottom aus
In der Tat funktionert das so. Das sortieren der scripts in einem Verzeichnis passiert offenbar nicht zur boot runtime sondern zur inintrd build time. Wenn man beim kernel installieren deswegen keine Fehlermeldungen haben will, dann muss man die prereqs section im script haben.
Danke JTH.
Danke JTH.