本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
在Linux系統中,/etc/fstab
文件用于保存系統的磁盤掛載信息,如果該文件內容配置錯誤,將會導致系統啟動失敗。本文將介紹由于該文件配置錯誤導致系統啟動異常的解決方案。
問題描述
在手動修改/etc/fstab
文件后,重啟系統時發現系統無法正常啟動,并且無法通過遠程連接軟件登錄Linux實例。當使用VNC進行遠程連接時,系統提示進入緊急模式(emergency mode),并顯示相關錯誤信息,相關報錯如下所示。
Alibaba Cloud Linux
CentOS
Ubuntu
問題原因
一般情況下,這種情況是由于/etc/fstab
文件中記錄了錯誤的文件系統或磁盤分區信息所致。如果該配置文件中包含不正確的掛載信息,或者該文件本身存在訪問錯誤,例如權限配置不當、文件丟失等,系統在啟動時可能會出現異常,最終導致啟動失敗。
解決方案
本文所述配置及說明適用于Alibaba Cloud Linux 3/2、CentOS 6/7/8、Ubuntu 22.04/24.04 操作系統。其他操作系統版本的配置可能會有所不同,具體情況請參閱相應操作系統的官方文檔。
以下操作為高危操作,如操作不當可能會引發數據丟失,為確保實例上的數據安全,建議您在操作前為實例創建快照或開啟RDS日志備份等功能。相關操作,請參見創建快照。
如您對實例或數據進行修改、變更等風險操作,務必關注實例的容災與容錯能力,以確保數據的安全性。
如果您在阿里云平臺上授權或提交過登錄賬號、密碼等安全信息,建議您及時進行修改。
遠程連接實例
使用VNC遠程連接實例。具體操作,請參見使用VNC登錄實例。
進入緊急模式
說明為修復因
/etc/fstab
文件配置錯誤導致的Linux實例無法啟動,您需在緊急模式(emergency mode)下進行修復操作。如果當前實例已進入緊急模式,則可以跳過此步驟,直接執行后續操作以完成修復。按照以下操作步驟,修改GRUB配置以使系統進入緊急模式。
Alibaba Cloud Linux
重啟實例,在實例啟動過程中,當出現grub界面時,按e鍵進入編輯模式。
在GRUB配置中,將光標移動至以“linux”開頭的配置行,然后按下
Ctrl+e
組合鍵,將光標移至該行配置文件的末尾,并在末尾添加如下內容。systemd.unit=emergency.target
添加完成后的內容如下所示。
添加完成之后按
Ctrl + x
組合鍵或按下F10
引導系統啟動到緊急模式。進入緊急模式后按照提示輸入root用戶密碼登錄系統。
CentOS
重啟實例,在實例啟動過程中,當出現grub界面時,按e鍵進入編輯模式。
在GRUB配置中,將光標移動至以“linux”開頭的配置行,然后按下
Ctrl+e
組合鍵,將光標移至該行配置文件的末尾,并在末尾添加如下內容。systemd.unit=emergency.target
添加完成后的內容如下所示。
添加完成之后按
Ctrl + x
組合鍵或按下F10
引導系統啟動到緊急模式。進入緊急模式后按照提示輸入root用戶密碼登錄系統。
Ubuntu
重啟實例,在實例啟動過程中,當出現grub界面時,按e鍵進入編輯模式。
在GRUB配置中,將光標移動至以“linux”開頭的配置行,然后按下
Ctrl+e
組合鍵,將光標移至該行配置文件的末尾,并在末尾添加如下內容。systemd.unit=emergency.target
添加完成后的內容如下所示。
添加完成之后按
Ctrl + x
組合鍵或按下F10
引導系統啟動到緊急模式。進入緊急模式后按照提示輸入root用戶密碼登錄系統。
修正配置錯誤
運行以下命令,變更根分區的掛載模式為讀寫。
mount / -o remount,rw
運行
blkid
命令,查看ECS實例上磁盤的分區情況以及文件系統。如下圖所示,ECS實例數據盤分區為/dev/xvdb1
,文件系統為ext4。運行以下命令,打開
/etc/fstab
文件。vim /etc/fstab
檢查磁盤的分區信息與文件系統和上一步返回的結果是否一致。
(條件可選)如果信息有誤, 將光標移到異常的參數行,按
i
鍵進入編輯模式,寫入正確的分區信息,如下所示。/dev/xvdb1 /mydata ext4 defaults,nofail 0 0
說明關于如何正確配置
/etc/fstab文件
的更多信息,請參見如何正確配置Linux實例/etc/fstab文件中的塊設備。您可以在掛載的時候添加
nofail
參數,這樣在啟動實例時,如果設備不存在,將會直接忽略該設備,從而避免發生報錯。
按Esc鍵退出編輯模式,并輸入
:wq!
,按Enter鍵保存并退出。
驗證修復結果
運行以下命令,以驗證
/etc/fstab
中的配置信息是否已正確配置。mount -a
運行該命令后無任何報錯信息,則說明配置正確。
重啟操作系統
運行以下命令,重啟系統,重啟完成后即可成功登錄系統。
reboot
相關文檔
關于Linux實例上掛載云盤的具體操作,請參見Linux格式化數據盤。