Boot

儘管 /etc/fstab 中的 root 條目錯誤,但係統啟動正常

  • November 29, 2020

我有以下磁碟結構:

sda1 : Windows
sda2 : an old Linux distribution
sda3 : a new Linux distribution
sda4 : data partition

我已經安裝了 grub,並在啟動時選擇了系統。我現在只在 sda3 上使用新的 Linux 發行版,它工作正常。我一直在修改設置 /etc/fstab 文件,以便它在引導時掛載 CDROM 和數據分區。

我最近看到新 Linux 系統(sda3)中的 /etc/fstab 文件是這樣的:

/dev/sda2  /  ext4  errors=remount-ro   0   1  #NOTE THIS ENTRY HAS SDA2!
/dev/sda4  /media/me_user/datapart      ext4      defaults        1      1
/dev/sr0   /media/cdrom0   auto   ro,user,noauto,unhide  0  0

似乎根條目是錯誤的:它應該是 /dev/sda3 (我一定是錯誤地更改了它)。但是,系統工作正常,當我啟動時,主文件夾僅在 sda3 上,而不在 sda2 上。

我嘗試從 /etc/fstab 中刪除根入口行。然後,在啟動時,我會留在終端提示符上,要求我登錄。我仍然可以登錄,但圖形不啟動。

我已經更正了 fstab 文件,以便根條目適用於 sda3,但我想明確這個問題。當 /etc/fstab 中的根條目用於 sda2 時,為什麼我的系統工作正常並且我到達 sda3 上的主文件夾?

/etc/fstab不直接控制以 root 身份掛載的文件系統。(這是有道理的。您必須先掛載根文件系統才能讀取/etc/fstab。)

根文件系統通常在核心命令行參數中指定。如果你跑去cat /proc/cmdline檢查它們,你可能會看到root=/dev/sda3root=UUID=<uuid of /dev/sda3>

這些參數一般在引導載入程序配置中進行配置。此處的詳細資訊取決於您使用的發行版,但假設您使用的是 grub,您可能會在/boot/grub/grub.cfg或中找到它的配置/boot/grub2/grub.cfg。如果這個配置是正確的,那麼你最終應該掛載正確的根文件系統。

/那麼,當您從中刪除時,為什麼您的引導失敗/etc/fstab?部分系統啟動過程/使用 中指定的選項重新安裝/etc/fstab,這可能是失敗的原因。

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