為什麼rootfs會被多次掛載?

為什麼rootfs會被多次掛載?

在這裡您可以看到兩個裝置已作為 root 掛載:

$ df
Filesystem                                             1K-blocks      Used Available Use% Mounted on
rootfs                                                  29221788  18995764   8761244  69% /
udev                                                       10240         0     10240   0% /dev
tmpfs                                                     203260      2192    201068   2% /run
/dev/disk/by-uuid/1d8879f2-9c47-4a72-9ef4-a6ecdd7a8735  29221788  18995764   8761244  69% /
tmpfs                                                       5120         0      5120   0% /run/lock
tmpfs                                                     406516       376    406140   1% /tmp
tmpfs                                                     406516        72    406444   1% /run/shm
/dev/sda2                                               29225884  15019636  12741264  55% /home
/dev/sda3                                              226881528 191247596  24275680  89% /opt
...

但是,我沒有在 /etc/fstab 中指定 UUID:

proc            /proc           proc    defaults        0       0
LABEL=debian    /               ext4    errors=remount-ro 0       1
LABEL=istore    /mnt/istore ext4    defaults    0   0
LABEL=home  /home           ext4    defaults        0       2
...

我想在“/dev/xxx”而不是“/dev/disk/by-uuid/...”中查看安裝資訊。雖然透過UUID掛載有很多優點,但我更喜歡舊的風格......也很奇怪為什麼有兩個rootfs掛載?

答案1

這是 debian initramfs 運作方式的副作用。最初,核心為根目錄建立一個 tmpfs,並在那裡解壓縮 initramfs,這是一個壓縮的 cpio 存檔。 initramfs 中的程式和腳本掛載真正的根設備,然後就chroot在那裡。只需忽略將檔案系統列為 rootfs 的第一個條目,因為這只是 initramfs。另一種才是真正的根檔案系統。

由於 /etc/fstab 位於您的根檔案系統中,因此無法參考它來掛載您的根檔案系統,因此這是透過引導程式傳遞的核心命令列參數來完成的。如果您使用 grub,它預設使用 UUID 以避免磁碟機恰好以不同順序枚舉時出現問題。您可以進行編輯/etc/default/grub來更改此行為,但這不是一個好主意。

相關內容