Mount

在 chroot 到“替換”發行版時,應該綁定(或不)哪個 proc、sys 等?

  • April 20, 2018

這個對另一個問題的回答基本上歸結為chroot進入另一個 Linux 發行版,以便主要將其用作其過於受限(但不可替代)的父代的替代品。chroot我想更好地理解執行前的建議操作是:

cp /etc/resolv.conf etc/resolv.conf
cp -a /lib/modules/$(uname -r) lib/modules
mount -t proc archproc proc
mount -t sysfs archsys sys
mount -o bind /dev dev
mount -t devpts archdevpts dev/pts
  • 複製resolv.conf很清楚(網路/網際網路訪問),雖然我不確定modules- 這實際上在chroot進入 stage3 Gentoo 系統時似乎沒有必要,對吧?
  • 但是為什麼是proc, sysand dev/ptsremounted 而不是使用 bind-mounted 呢?這種情況下的實際區別是什麼,哪個“更正確”?
  • 這個 HowTo綁定掛載procdev,但根本沒有掛載dev/ptsnor 。sys此外,它會復製/etc/{hosts,fstab}到新的根目錄。那有意義嗎?我不應該也包括/etc/mdadm.conf嗎?

複製 /etc/resolv.conf 是為了不失去 DNS。

複製 /lib/modules 是因為可能需要使用一些在設置 chroot 時不需要存在的硬體組件。您必須記住,您在 OP 中提到的原始問題涉及用 Arch Linux 替換 NAS 作業系統。因此,您將需要乙太網驅動程序、可能的無線驅動程序、各種 USB 組件等。複製 /lib/modules 文件夾可確保新環境能夠應對其未來的任務。

關於重新安裝與綁定安裝,您確實是正確的。根據您所指文章的答案, chroot 上的Arch Linux Wiki 頁面確實使用了您指定的重新安裝和綁定安裝:

cd /mnt/arch
mount -t proc proc proc/
mount -t sysfs sys sys/
mount -o bind /dev dev/
mount -t devpts pts dev/pts/

(我認為這顯示了從這篇文章複製的行的語法是錯誤的:要掛載的 dev 在掛載點之前)。

但是,chroot 上的 Ubuntu 手冊頁講述了一個不同的故事:

sudo mount -o bind /proc /var/chroot/proc

這裡 /proc 是綁定掛載的,而不是重新掛載的。

我實際上已經嘗試了這兩種方法,經過短暫的測試執行後,我無法發現任何區別。誠然,這並不是一個測試,因此我將在此說明我的觀點,即它不會產生太大影響。

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