我已经添加了该文件,/etc/initramfs-tools/etc/motd以便它可以在 initramfs 环境的 /etc 中使用。但是,它不会出现。这是我第二次尝试为文件提供所有可用权限(我也使用了 600):
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
Run Code Online (Sandbox Code Playgroud)
之后我sudo update-initramfs -u启动到initramfs环境,通过Dropbear通过SSH登录,文件还是没有:
~ # 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
Run Code Online (Sandbox Code Playgroud)
我应该如何添加它?为什么上面的方法不起作用?
小智 6
您将主文件放在错误的位置。您想使用 initramfs 挂钩。
看看下面的/usr/share/initramfs-tools/hooks例子,你会看到一些例子,但简而言之,你想做一些类似的事情:
#!/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
Run Code Online (Sandbox Code Playgroud)
希望有帮助。
记住钩子脚本必须是可执行的。
更新:还请记住,如果您的系统已启动,则 initramfs 环境可能已被您的根文件系统取代。不过,您应该能够通过cpioetc验证您的 initramfs 映像包含的内容。
| 归档时间: |
|
| 查看次数: |
7367 次 |
| 最近记录: |