如何在fstab文件中配置文件磁盘标识方式为UUID

概述

在Linux系统中,fstab文件内通常配置了文件系统的挂载信息,如果配置有误,会导致系统启动异常。本文主要介绍如何在fstab文件中配置文件磁盘标识方式为UUID,可以解决此类重启异常问题。

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

背景信息

fstab支持使用云盘分区名(例如/dev/vdb1)或UUID标识文件系统,两者的差异如下所示:

  • 在fstab中使用云盘分区名标识文件系统,如果云盘的挂载顺序变更,云盘分区可能不会被正确的挂载(mount)到原来的挂载点。这种情况下可能会影响您ECS上运行的应用。
  • 在fstab中使用UUID标识文件系统,如果云盘的挂载顺序变更,云盘分区仍然可以正确的挂载(mount)到原来的挂载点。因此,本文建议使用UUID标识文件系统。

操作步骤

  1. 远程连接ECS实例,关于如何远程连接ECS实例,请参见通过密码或密钥认证登录Linux实例
  2. 执行以下命令,查看当前Linux实例中存在的块设备信息。
    blkid
    系统显示类似如下。
    /dev/vda1: UUID="8fb1dc87-472b-4a8d-b289-****" BLOCK_SIZE="4096" TYPE="ext4" 
  3. 执行以下命令,查看当前/etc/fstab文件中已配置的块设备信息。
    cat /etc/fstab
    系统显示类似如下。
    image.png
  4. 检查blkid命令结果与/etc/fstab文件中的内容是否匹配,然后在/etc/fstab文件中修复不匹配的配置项。
    1. 确认不匹配的内容。
      包含但不限于以下需要确认的内容:
      • 需要自动挂载的文件系统都已配置正确,并且配置的文件系统在实例上确实存在。

        如果配置的文件系统在实例上不存在,并且未在/etc/fstab文件对应行设置nofail参数,将导致系统启动时因找不到所需要挂载的文件系统而失败。

      • 如果使用UUID指定挂载的文件系统,确保UUID信息完全一致。
      • 确保配置的挂载点均已创建完成并且不存在冲突。
      • 确保/etc/fstab文件中每一行配置项的参数都符合文件系统的格式要求。
    2. 执行以下命令,备份/etc/fstab文件。
      cp /etc/fstab /etc/fstab.bak
    3. 修复不匹配的配置项。
      1. 执行以下命令,进入编辑模式。
        vi /etc/fstab
      2. 将不匹配的示例值替换为正确值,Esc键,输入:wq并回车,保存退出文件。
        说明:关于fstab文件配置示例,请参见更多信息
    4. 修复完成后,确认/etc/fstab文件内容与blkid命令结果保持一致。

更多信息

以下内容为fstab文件配置示例:

fstab文件说明
 
序号 字段 说明
<file system> 要挂载分区的文件系统。

此处建议使用UUID,可以使用blkid命令查询分区文件系统的UUID。

<dir> 文件系统的挂载位置。

您可以自己创建新的挂载位置,例如本文中的/test01/test02

<type> 要挂载分区的文件系统类型。

您可以使用blkid命令查询分区的文件系统类型。

<options> 挂载时使用的参数,一般情况下使用defaults参数。如果需要使用多个参数,通过英文逗号(,)分隔,例如defaults,noatime

对于<options>参数的更多信息,请参见fstab说明

<dump> dump工具是否对这个文件系统进行备份。
  • 0:表示忽略。
  • 1:表示进行备份。

一般情况下没有使用dump工具,可以设置为0。

<pass> fsck检查文件系统的优先级。
  • 0:表示不检查文件系统。
  • 1:如果需要检查,根目录(/)对应的文件系统设置为1。
  • 2:如果需要检查,非根目录对应的其它文件系统设置为2。

一般情况下,可以设置为0。

相关文档

适用于

  • 云服务器ECS