Overlayfs

OverlayFS over read only rootfs 失敗

  • June 29, 2021

我需要盡可能地保持一個系統完好無損。只允許焊接硬體材料:-)。我需要安裝一個測試軟體包,這個軟體包以後不能留在那裡。

我有以下情況:

  1. mmcblck 分區掛載為 /,ext4,只讀,核心 v4.6.0
  2. usb 棒(只有一個分區),掛載到 /tmp/usbstick, ext4
  3. 在 usbstick /tmp/usbstick/upperdir、/tmp/usbstick/workdir 上創建目錄
  4. 使用以下行: 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

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