Ich habe die Datei hinzugefügt /etc/initramfs-tools/etc/motd
, damit sie in /etc der initramfs-Umgebung verfügbar ist. Sie taucht jedoch nicht auf. Dies ist mein zweiter Versuch, bei dem ich der Datei alle verfügbaren Berechtigungen erteilt habe (ich habe auch 600 verwendet):
root@cow:~# ls -l /etc/initramfs-tools/etc/
total 8
drwx------ 2 root root 4096 Sep 19 00:57 dropbear
-rwxrwxrwx 1 root root 117 Sep 29 15:32 motd
Danach sudo update-initramfs -u
boote ich in die Initramfs-Umgebung und melde mich per SSH über Dropbear an. Die Datei ist jedoch immer noch nicht da:
~ # ls -l /etc
total 20
-rw------- 1 root 0 4077 Sep 29 13:44 boottime.kmap.gz
drwx------ 2 root 0 0 Sep 29 13:44 dropbear
-rw-r--r-- 1 root 0 1991 Sep 29 13:44 ld.so.cache
-rw-r--r-- 1 root 0 34 Sep 18 17:24 ld.so.conf
drwxr-xr-x 2 root 0 0 Sep 18 17:25 ld.so.conf.d
drwx------ 2 root 0 0 Sep 29 13:44 lvm
drwx------ 2 root 0 0 Sep 29 13:44 mdadm
drwx------ 2 root 0 0 Sep 29 13:44 modprobe.d
-rw------- 1 root 0 15 Sep 29 13:44 nsswitch.conf
-rw------- 1 root 0 30 Sep 29 13:44 passwd
drwx------ 2 root 0 0 Sep 29 13:44 udev
Wie soll ich es hinzufügen? Warum hat die obige Methode nicht funktioniert?
Antwort1
Sie platzieren Ihre Masterdatei an der falschen Stelle. Sie möchten einen Initramfs-Hook verwenden.
Schauen Sie weiter unten nach. /usr/share/initramfs-tools/hooks
Dort sehen Sie Beispiele. Kurz gesagt möchten Sie jedoch etwa Folgendes tun:
#!/bin/sh
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case $1 in
# get pre-requisites
prereqs)
prereqs
exit 0
;;
esac
. /usr/share/initramfs-tools/hook-functions
mkdir -p ${DESTDIR}/etc/motd || true
cp -pnL /etc/motd ${DESTDIR}/etc/motd
chmod 644 ${DESTDIR}/etc/motd
Hoffentlich hilft das.
Denken Sie daran, dass das Hook-Skript ausführbar sein muss.
AKTUALISIEREN: Bedenken Sie auch, dass beim Booten Ihres Systems die Initramfs-Umgebung wahrscheinlich durch Ihr Root-Dateisystem ersetzt wurde. Sie sollten cpio
jedoch über etc. überprüfen können, was Ihr Initramfs-Image enthält.