Linux实例的/etc/fstab文件配置错误导致系统启动异常问题处理

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

在Linux系统中,/etc/fstab文件用于保存系统的磁盘挂载信息,如果该文件内容配置错误,将会导致系统启动失败。本文将介绍由于该文件配置错误导致系统启动异常的解决方案。

问题描述

在手动修改/etc/fstab文件后,重启系统时发现系统无法正常启动,并且无法通过远程连接软件登录Linux实例。当使用VNC进行远程连接时,系统提示进入紧急模式(emergency mode),并显示相关错误信息,相关报错如下所示。

Alibaba Cloud Linux

image

CentOS

Ubuntu

image

问题原因

一般情况下,这种情况是由于/etc/fstab文件中记录了错误的文件系统或磁盘分区信息所致。如果该配置文件中包含不正确的挂载信息,或者该文件本身存在访问错误,例如权限配置不当、文件丢失等,系统在启动时可能会出现异常,最终导致启动失败。

解决方案

本文所述配置及说明适用于Alibaba Cloud Linux 3/2、CentOS 6/7/8、Ubuntu 22.04/24.04 操作系统。其他操作系统版本的配置可能会有所不同,具体情况请参阅相应操作系统的官方文档。

警告
  • 以下操作为高危操作,如操作不当可能会引发数据丢失,为确保实例上的数据安全,建议您在操作前为实例创建快照或开启RDS日志备份等功能。相关操作,请参见创建快照

  • 如您对实例或数据进行修改、变更等风险操作,务必关注实例的容灾与容错能力,以确保数据的安全性。

  • 如果您在阿里云平台上授权或提交过登录账号、密码等安全信息,建议您及时进行修改。

  1. 远程连接实例

    使用VNC远程连接实例。具体操作,请参见使用VNC登录实例

  2. 进入紧急模式

    说明

    为修复因/etc/fstab文件配置错误导致的Linux实例无法启动,您需在紧急模式(emergency mode)下进行修复操作。如果当前实例已进入紧急模式,则可以跳过此步骤,直接执行后续操作以完成修复。

    按照以下操作步骤,修改GRUB配置以使系统进入紧急模式。

    Alibaba Cloud Linux

    1. 重启实例,在实例启动过程中,当出现grub界面时,按e键进入编辑模式。

      image

    2. 在GRUB配置中,将光标移动至以“linux”开头的配置行,然后按下Ctrl+e组合键,将光标移至该行配置文件的末尾,并在末尾添加如下内容。

      systemd.unit=emergency.target

      添加完成后的内容如下所示。

      image

    3. 添加完成之后按Ctrl + x组合键或按下 F10引导系统启动到紧急模式。

    4. 进入紧急模式后按照提示输入root用户密码登录系统。

      image

    CentOS

    1. 重启实例,在实例启动过程中,当出现grub界面时,按e键进入编辑模式。

      image

    2. 在GRUB配置中,将光标移动至以“linux”开头的配置行,然后按下Ctrl+e组合键,将光标移至该行配置文件的末尾,并在末尾添加如下内容。

      systemd.unit=emergency.target

      添加完成后的内容如下所示。

      image

    3. 添加完成之后按Ctrl + x组合键或按下 F10引导系统启动到紧急模式。

    4. 进入紧急模式后按照提示输入root用户密码登录系统。

      image

    Ubuntu

    1. 重启实例,在实例启动过程中,当出现grub界面时,按e键进入编辑模式。

      image

    2. 在GRUB配置中,将光标移动至以“linux”开头的配置行,然后按下Ctrl+e组合键,将光标移至该行配置文件的末尾,并在末尾添加如下内容。

      systemd.unit=emergency.target

      添加完成后的内容如下所示。

      image

    3. 添加完成之后按Ctrl + x组合键或按下 F10引导系统启动到紧急模式。

    4. 进入紧急模式后按照提示输入root用户密码登录系统。

      image

  3. 修正配置错误

    1. 运行以下命令,变更根分区的挂载模式为读写。

      mount / -o remount,rw
    2. 运行blkid命令,查看ECS实例上磁盘的分区情况以及文件系统。如下图所示,ECS实例数据盘分区为/dev/xvdb1,文件系统为ext4。

    3. 运行以下命令,打开/etc/fstab文件。

      vim /etc/fstab

      检查磁盘的分区信息与文件系统和上一步返回的结果是否一致。

    4. (条件可选)如果信息有误, 将光标移到异常的参数行,按i键进入编辑模式,写入正确的分区信息,如下所示。

      /dev/xvdb1 /mydata ext4 defaults,nofail 0 0
      说明
    5. Esc键退出编辑模式,并输入:wq!,按Enter键保存并退出。

  4. 验证修复结果

    运行以下命令,以验证/etc/fstab中的配置信息是否已正确配置。

    mount -a

    运行该命令后无任何报错信息,则说明配置正确。

  5. 重启操作系统

    运行以下命令,重启系统,重启完成后即可成功登录系统。

    reboot

相关文档

关于Linux实例上挂载云盘的具体操作,请参见Linux格式化数据盘