弹性计算

  • 弹性计算 > 使用文档 > 云硬盘 > 云硬盘的生命周期 >云硬盘分区、格式化及创建文件系统 >Linux系统分区、格式化、挂载及创建文件系统

    Linux系统分区、格式化、挂载及创建文件系统

    最近更新时间: 2017-04-06 16:58:36

    实例可以识别连接的云硬盘并将其视为普通硬盘。用户可以使用任何文件系统将云块存储设备格式化、分区及创建文件系统。此后任何写入文件系统的数据均写入云硬盘中,并且对使用该设备的应用程序是透明的。本文档通过一个示例演示如何在云主机中使用块存储设备,并对一些需要注意的事项进行了详细的说明。您还可以从 Windows 系统分区、格式化、联机及创建文件系统获得有关 Windows 实例上使用云硬盘的指引。

    本示例使用的云主机启动时一并购买了一块 20GB 的系统盘和一块 30GB 的数据盘(即非弹性云硬盘),而后又在云硬盘控制台购买了一块 10GB 的弹性云盘。

    前提条件

    • 请确保您已进行 将云硬盘连接到 QCS 实例登录 Linux 实例
    • 格式化后,数据盘中的数据将被全部清空。请在格式化之前,确保数据盘中没有数据或对重要数据已进行备份。为避免服务发生异常,格式化前请确保云主机已停止对外服务。
    • 当用户购买了多块云硬盘时,建议您对存放重要数据的弹性云盘设置自动续费,防止因为没有及时续费导致弹性云盘到期对您的业务产生影响。

    查看已挂载的硬盘

    1) 运行fdisk -l命令查看硬盘信息。

    此时可以看到随云主机创建的非弹性云硬盘vdb和刚刚挂载的弹性云盘vdc都尚未格式化。

    2) 执行ls -l /dev/disk/by-id/命令,可以在此处看到弹性云盘与设备名的对应关系。注意,非弹性云盘目前不会在这里显示任何信息。

    硬盘从未进行初始化时,您需要先创建文件系统,然后才能够使用它。

    使用file -s device命令可列出特殊信息,例如文件系统类型。

    sudo file -s /dev/xvdf
    /dev/xvdf: data
    

    如果前面的命令的输出仅显示该设备的data,则说明设备上没有文件系统,您需要创建一个文件系统。您可继续下面的所有步骤。如果在包含文件系统的设备上运行此命令,则输出将有所不同,若返回形如Linux rev 1.0 ext4 filesystem data的输出则说明此硬盘上已经创建了文件系统,您可以跳过分区和格式化操作。

    • 若磁盘已经初始化,可从System字段判断是否需要创建新的文件系统。如果 System 字段显示 EXT3、EXT4 等文件系统类型,则不需新建文件系统,可以跳过分区和格式化操作步骤。

    (可选)对磁盘进行分区操作

    1) 对云硬盘进行分区操作。当然用户也可以无需分区直接进行格式化操作。这里我们演示了将弹性云盘划分为两个分区使用。执行以下命令:

    fdisk /dev/vdb
    

    按照界面的提示,依次输入n(新建分区)、p(新建扩展分区)、1(使用第1个主分区),两次回车(使用默认配置),输入wq(保存分区表),回车开始分区。

    这里是以创建 1 个分区为例,开发者也可以根据自己的需求创建多个分区。

    使用“fdisk -l”命令,即可查看到,新的分区 vdb1 已经创建完成。

    2) 分区后执行ls -l /dev/disk/by-id命令,可以看到以下内容:

    ##(有条件)硬盘格式化

    此步骤假定您在处理初始化的硬盘。如果该硬盘已经包含数据,请勿使用 mkfs(而应跳到下一步)。否则,您会格式化并删除现有数据。

    运行mkfs.ext4 device_name命令格式化并创建 ext4 文件系统。用设备名称(例如,/dev/vdb)替换 device_name。根据应用程序的要求或操作系统的限制,您可以选择其他文件系统类型,如 ext3 或 XFS。

    挂载硬盘

    mkdir /data/part1 -p # 创建示例挂载点
    mkdir /data/part5 -p # 创建示例挂载点
    mount /dev/vdc1 /data/part1 # 将vdc1挂载到/data/part1处
    mount /dev/vdc5 /data/part5 # 将vdc5挂载到/data/part5处
    touch /data/part1/disk-bm42ztpm-part1.txt # 创建一个空文件用于后续演示
    touch /data/part5/disk-bm42ztpm-part5.txt # 创建一个空文件用于后续演示
    yum install tree -y # 安装一个用于展示目录结构的工具
    tree /data # 查看/data目录结构
    

    此时可以看到如下的结构树:

    执行lsblk -f命令查询文件系统UUID和挂载点信息:

    (可选)设置自动挂载

    如果此时重启云主机,可以发现刚刚挂载点已经消失。如果希望云主机在重启或开机时能自动 mount 数据盘,必须将分区信息添加到/etc/fstab 中。如果没有添加则云主机重启或重新开机后都不能自动挂载数据盘。在/etc/fstab配置文件中可以使用三种不同的方法使文件系统可以找到 mount 点:

    自动mount方法 优点 缺点
    使用设备名称 假如您将云主机上的弹性云盘解挂后再次挂载(例如迁移数据时),该名称有可能会发生变化,因此有可能会导致您的自动挂载设置失效
    使用文件系统 UUID 与文件系统相关,重新格式化文件系统后,UUID将会发生变化,因此有可能会导致您的自动挂载设置失效
    使用弹性云盘软链接 与设备名及文件系统无关,与实际使用的云硬盘唯一对应的名称 只有弹性云盘才会有此软链接,无法感知到分区的格式化操作

    从下图可以看出,重新格式化文件系统后 UUID 发生了变化:

    同理,从下图可以看出,在控制台卸载弹性云盘并重新挂载后,设备名称发生了变化:

    综上,我们建议您始终使用第三种方式实现自动挂载弹性云盘。创建/etc/fstab文件的备份,保证意外损坏或删除文件的情况下,可以使用该备份。

    cp /etc/fstab /etc/fstab.backup
    

    打开 /etc/fstab 文件。

    vi /etc/fstab
    
    使用弹性云盘软链接(推荐)
    输入:device_name mount_point file_system_type fs_mntops fs_freq fs_passno  
    
    示例:
    /dev/disk/by-id/virtio-disk-bm42ztpm-part1 /data/part1 ext3 defaults,nofail 0 1
    /dev/disk/by-id/virtio-disk-bm42ztpm-part5 /data/part5 ext3 defaults,nofail 0 1
    

    最后三个字段分别是文件系统安装选项、文件系统转储频率和启动时的文件系统检查顺序。一般使用示例中的值 (defaults,nofail 0 2)即可。有关/etc/fstab条目的更多信息,在命令行上输入man fstab即可查看。

    运行mount -a命令,如果运行通过则说明文件正常,刚刚创建的文件系统会在下次启动时自动安装。

    以上内容是否对您有帮助?
  • Qvm free helper
    Close