我已经创建了一个应该从CF卡引导的gentoo实时系统。整个文件系统都在一个squashfs中。我创建了一个定制的initrd,它首先将CF卡挂载,然后将压缩后的文件系统装入将成为/的文件系统。
我希望/etc是可写的,所以我把它复制到CF卡上,添加了一个绑定。然而,这似乎行不通。系统启动,但/etc没有挂载。
我想知道我的方法是否正确,我能做些什么来修复它,或者如果不是,什么是实现这一目标的正确方法。
这是我的init-script initrd:
#!/bin/busybox sh
mount -t proc none /proc
mount -t sysfs none /sys
mount /dev/sda1 /mnt/flash
mount -o loop /mnt/flash/filesystem.squashfs /mnt/root
mount -B /mnt/flash/etc /mnt/root/etc
mount -o remount,rw /mnt/root/etc
umount /proc
umount /sys
exec switch_root /mnt/root /sbin/init这是cat /proc/mounts的缩短输出:
rootfs / rootfs rw 0 0
/dev/sda1 /mnt/flash ext2 rw,relatime,errors=continue,user_xattr,acl 0 0
/dev/loop0 / squashfs ro,relatime 0 0
...发布于 2013-03-19 16:47:40
BusyBox的内置mount命令不识别-B;您必须使用-o bind:
mount -o bind /mnt/flash/etc /mnt/root/etc而且,如果/mnt/flash已经是可写的,我认为重新安装是不必要的。但是试着先修复绑定安装。
https://unix.stackexchange.com/questions/68457
复制相似问题