使用 chroot 時如何執行巢狀掛載?

使用 chroot 時如何執行巢狀掛載?

請注意,這個問題是由我詳細描述的情況(如 Xl1NntniNH7F)引發的http://www.linuxquestions.org/questions/linux-desktop-74/boot-failure-upon-updating-e2fsprogs-in-ubuntu-10-10-a-947328/。因此,如果您能夠解決啟動失敗的根本原因,我將非常感激。

我正在嘗試在我的 ubuntu 安裝中複製環境(其中主資料夾位於單獨的分區上)以便運行make uninstall.我正在使用現場 CD。

如何將一個分割區中的目錄掛載到另一個掛載分割區上的目錄?我做到了chroot /mnt/sda2,但我不知道如何將 sda3 安裝到 /home,我的各種嘗試都沒有成功。由於我不熟悉 chroot,我的方法可能是錯的,所以如果你能根據我的情況建議我應該做什麼,那就太好了。

答案1

我經常使用 chroot 綁定掛載,因此我傾向於設定腳本來檢查 chroot 是否已綁定掛載某些目錄,如果沒有,則在 chroot 之前設定它們。

例如,我已/dev設定為tmpfswithmdev/dev/pts安裝為 devpts檔案系統:

$ mount | grep /dev
devpts /dev/pts devpts rw 0 0
mdev /dev tmpfs rw,nosuid 0 0

然後在我的腳本中我這樣做:

d=/mnt/chroot
for m in dev dev/pts ; do
    grep -sq $d/$m /proc/mounts || mount --bind /$m $d/$m
done
exec chroot $d /bin/bash

對於目前的 SVN Busybox 主幹,它似乎/dev安裝了兩次 at/mnt/chroot/dev/mnt/chroot/dev/pts而不是/devat/mnt/chroot/dev/dev/ptsat/mnt/chroot/dev/pts

相關內容