问题描述
通过远程连接软件无法登录Linux实例,通过使用管理终端连接Linux实例远程连接时,发现系统进入到急救模式(emergency mode),且出现报错。
- CentOS实例报如下错误。
bash
systemctl default to try again to boot into default mode
- Ubuntu实例报如下错误。
bash
An error occurred while mounting /alidata.
Press S to skip mounting or M for manual recovery
具体信息如下图所示。
问题原因
- 一般是因为/etc/fstab文件中写入了错误的文件系统,或者磁盘的分区信息不正确。/etc/fstab文件主要用于保存服务器的磁盘挂载信息,如果该配置文件中写入不正确的挂载信息或者该文件自身存在访问错误,例如:权限配置、文件丢失等,系统启动时就可能出现异常,导致启动失败。
解决方案
本节主要解决CentOS和Ubuntu系统因为/etc/fstab配置文件错误导致启动失败的解决方法。
- 提示:本文相关配置及说明适用于CentOS6.5、CentOS7.0、Ubuntu12.04和Ubuntu14.04等操作系统。在其它操作系统版本上的配置可能有所差异,具体情况请参阅相应操作系统官方文档。
CentOS实例
- 通过使用管理终端连接Linux实例远程连接ECS实例。系统提示进入急救模式时,输入实例登录密码。
- 执行如下命令,变更根分区的挂载模式为读写。
bash
mount / -o remount,rw
- 执行blkid命令,查看ECS实例上磁盘的分区情况以及文件系统。如下图所示,ECS实例数据盘分区为/dev/xvdb1,文件系统为ext4。
- 执行如下命令,检查磁盘的分区信息与文件系统和上一步返回的结果是否一致。
bash
vim /etc/fstab
- 如果不一致,按以下步骤进行修改。
将光标移到异常的参数行,按 i 键进入编辑模式,写入正确的分区信息。
按 Esc 键退出编辑模式,并输入 wq!,按 Enter 键保存并退出。
- 执行reboot命令,重启系统,确认能成功登录系统。
Ubuntu实例
- 通过使用管理终端连接Linux实例远程连接ECS实例。
- 按 S 键跳过磁盘挂载,进入系统。
- 执行如下命令,变更根分区的挂载模式为读写。
bash
mount / -o remount,rw
- 执行blkid命令,查看ECS实例上磁盘的分区情况以及文件系统。如下图所示,ECS实例数据盘分区为/dev/xvdb1,文件系统为ext4。
- 执行如下命令,检查磁盘的分区信息与文件系统和上一步返回的结果是否一致。
bash
vim /etc/fstab
- 如果不一致,按以下步骤修改。
将光标移到异常的参数行,按 i 键进入编辑模式,写入正确的分区信息。
按 Esc 键退出编辑模式,并输入 wq!,按 Enter 键保存并退出。
- 执行reboot命令,重启系统,确认能成功登录系统。