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