Gentoo

將 /etc 從磁碟掛載到 squashfs

  • March 19, 2013

我創建了一個 gentoo-live 系統,它應該從 CF 卡啟動。整個文件系統在一個 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
...

BusyBox 的內置mount命令無法辨識-B;你必須使用-o bind

mount -o bind /mnt/flash/etc /mnt/root/etc

/mnt/flash另外,如果已經可寫,我認為重新安裝是不必要的。但請先嘗試修復綁定安裝。

引用自:https://unix.stackexchange.com/questions/68457