Overlayfs
OverlayFS over read only rootfs 失敗
我需要盡可能地保持一個系統完好無損。只允許焊接硬體材料:-)。我需要安裝一個測試軟體包,這個軟體包以後不能留在那裡。
我有以下情況:
- mmcblck 分區掛載為 /,ext4,只讀,核心 v4.6.0
- usb 棒(只有一個分區),掛載到 /tmp/usbstick, ext4
- 在 usbstick /tmp/usbstick/upperdir、/tmp/usbstick/workdir 上創建目錄
- 使用以下行: mount -t overlay overlay -o lowerdir=/,upperdir=/tmp/usbstick/upperdir,workdir=/tmp/usbstick/workdir /
之後 / 仍然是只讀的。我唯一的部分成功是當我創建 /tmp/usbstick/merged 並將其作為“合併”目錄而不是 / 提供給模組時。然後我在那個目錄中看到了我所有的 rootfs,它是 rw 掛載的,但我不能在那裡使用它。我該怎麼辦?
我試圖 chroot 到合併的目錄。結果正如預期的那樣:我有 rw rootfs,我唯一錯過的是虛擬核心文件系統。因此,在安裝覆蓋層後,我執行了以下操作:
TARGETDIR="/tmp/usbstick/merged" mount -t proc proc $TARGETDIR/proc mount -t sysfs sysfs $TARGETDIR/sys mount -t devtmpfs devtmpfs $TARGETDIR/dev mount -t tmpfs tmpfs $TARGETDIR/dev/shm mount -t devpts devpts $TARGETDIR/dev/pts
然後連結mtab:
chroot $TARGETDIR rm /etc/mtab 2> /dev/null chroot $TARGETDIR ln -s /proc/mounts /etc/mtab chroot $TARGETDIR