Gentoo
將 /etc 從磁碟掛載到 squashfs
我創建了一個 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
另外,如果已經可寫,我認為重新安裝是不必要的。但請先嘗試修復綁定安裝。