本文檔可能包含第三方產品信息,該信息僅供參考。阿里云對第三方產品的性能、可靠性以及操作可能帶來的潛在影響,不做任何暗示或其他形式的承諾
問題描述
通過遠程連接軟件無法登錄Linux實例,通過使用管理終端連接Linux實例遠程連接時,發現系統出現進入到急救模式(emergency mode)的信息,且出現報錯。
CentOS實例報如下錯誤。
Ubuntu實例報如下錯誤。
An error occurred while mounting /alidata. Press S to skip mounting or M for manual recovery
具體信息以下圖所示。
問題原因
一般是因為/etc/fstab
文件中寫入了錯誤的文件系統,或者磁盤的分區信息不正確。/etc/fstab
文件主要用于保存服務器的磁盤掛載信息,如果該配置文件中寫入不正確的掛載信息或者該文件自身存在訪問錯誤,例如:權限配置、文件丟失等,系統啟動時就可能出現異常,導致啟動失敗。
解決方案
如果您對實例或數據有修改、變更等風險操作,務必注意實例的容災、容錯能力,確保數據安全。
如果您對實例(包括但不限于ECS、RDS)等進行配置與數據修改,建議提前創建快照或開啟RDS日志備份等功能。
如果您在阿里云平臺授權或者提交過登錄賬號、密碼等安全信息,建議您及時修改。
本節主要解決CentOS和Ubuntu系統因為/etc/fstab
配置文件錯誤導致啟動失敗的解決方法。
本文相關配置及說明適用于CentOS6.5、CentOS7.0、Ubuntu12.04和Ubuntu14.04等操作系統。在其它操作系統版本上的配置可能有所差異,具體情況請參閱相應操作系統官方文檔。
CentOS實例
本文主要介紹以下兩種方法解決該問題,推薦您使用方法一。
方法一
通過使用管理終端連接Linux實例遠程連接ECS實例。系統提示進入急救模式時,輸入實例登錄密碼。
執行以下命令,將根分區的掛載模式變更為讀寫。
mount / -o remount,rw
執行
blkid
命令,查看ECS實例上磁盤的分區情況以及文件系統。如下圖所示,ECS實例數據盤分區為/dev/xvdb1
,文件系統類型為ext4。執行以下命令,檢查磁盤的分區信息與文件系統和上一步返回的結果是否一致。
vim /etc/fstab
如果不一致,按以下步驟進行修改。
將光標移到異常的參數行,按i鍵進入編輯模式,寫入正確的分區信息,如下所示。
/dev/xvdb1 /mydata ext4 defaults,nofail 0 0
說明建議您在掛載的時候添加nofail參數,在啟動實例時,若設備不存在會直接忽略它,從而不發生報錯。
按Esc鍵退出編輯模式,并輸入:wq!,按Enter鍵保存并退出。
執行
reboot
命令,重啟系統,確認能成功登錄系統。
方法二
在ECS控制臺重啟實例(或者強制重啟示例),然后使用VNC連接實例,當系統啟動至內核選項界面時,按
e
鍵進入修改grub引導文件。將光標定位至Linux內核參數行,刪除其余內核參數,添加
rw init=/bin/bash
參數,如下圖所示,然后按Ctrl和x鍵,進入單用戶模式。參見方法一的第3步至第6步,修改
/etc/fstab
配置后,重啟實例即可。
Ubuntu實例
方法一
通過使用管理終端連接Linux實例遠程連接ECS實例。
按S鍵跳過磁盤掛載,進入系統。
執行如下命令,變更根分區的掛載模式為讀寫。
mount / -o remount,rw
執行
blkid
命令,查看ECS實例上磁盤的分區情況以及文件系統。如下圖所示,ECS實例數據盤分區為/dev/xvdb1
,文件系統為ext4。執行如下命令,檢查磁盤的分區信息與文件系統和上一步返回的結果是否一致。
vim /etc/fstab
如果不一致,按以下步驟修改。
將光標移到異常的參數行,按i鍵進入編輯模式,寫入正確的分區信息,如下所示。
/dev/xvdb1 /mydata ext4 defaults,nofail 0 0
說明建議您在掛載的時候添加nofail參數,在啟動實例時,若設備不存在會直接忽略它,從而不發生報錯。
按Esc鍵退出編輯模式,并輸入:wq!,按Enter鍵保存并退出。
執行
reboot
命令,重啟系統,確認能成功登錄系統。
方法二
具體操作請參見CentOS實例的方法二。
相關文檔
關于Linux實例上掛載云盤的具體操作,請參見Linux格式化數據盤。
適用于
云服務器ECS