在购买阿里云 ECS 服务器时,如果单独选购了数据盘,那么,需要对数据盘进行分区,然后把数据盘挂载到系统指定位置,才能使用我们购买的数据盘。本文将详细介绍如何对 ECS 实例的数据盘进行单分区,以及如何挂载到 Linux 文件系统。
注:本文针对的是运行 Linux 操作系统的 ECS 实例,不适用于 Windows 系统。如需了解 Windows 系统下的磁盘格式化操作,请参考本站教程:阿里云 Windows 服务器的数据盘分区及格式化。
由于大容量数据盘的分区操作不一样,因此,本文将分别介绍云盘容量小于(等于) 2TiB 的情况和容量大于 2TiB 时的分区操作步骤。
数据盘容量小于(等于) 2TiB 的分区操作
众所周知,对数据盘进行分区和格式化是高风险行为,建议在操作之前,确保您磁盘上的所有数据均做好了备份,或者,对数据盘创建快照,以避免数据丢失。因此,请务必慎重操作(建议大家使用一块新的云盘来操作以下步骤)。
另外,需要注意的是,云服务器 ECS 仅支持对 数据盘 进行分区,而不支持对 系统盘 进行分区(也不建议对系统盘进行分区)。本文所介绍的方法和步骤也是针对服务器的数据盘分区,而非系统盘。如果您强行使用第三方工具对服务器的系统盘进行分区操作,可能会导致系统崩溃、网络异常、数据丢失以及服务不可用等不可预期的结果。
本节教程使用的操作环境如下:
- 实例:I/O优化实例
- 操作系统:CentOS 6.8 (64位)
- 文件系统:ext3
- 数据盘:20 GiB
- 设备名:/dev/xvdb
如何查看数据盘的设备名?
首先,登录阿里云账号,然后执行以下操作:
- 依次点击 控制台 -> 云服务器 ECS -> 实例 菜单,进入实例列表
- 然后点击 实例ID/名称 链接,进入 ECS 实例详情
- 点击左边 本实例磁盘 菜单,进入磁盘列表页面
- 在磁盘列表,点击 磁盘ID/磁盘名称,进入 磁盘详情 页面
- 找到 磁盘挂载信息 信息区域,即可查看当前 ECS 实例的数据盘 设备名
如下图所示:![]()
在 ECS 控制台查看磁盘的设备名称 在上图,我们看到的磁盘设备名是
/dev/xvdb
,这是系统默认分配的设备名称,从xvdb
开始,依次往后顺序排列,直到/dev/xvdz
。
有了以上的铺垫,下面我们来一起看看数据盘分区的具体步骤。
1、连接远程实例
这一步,您可以使用阿里云ECS管理控制台提供的Web界面来登录您的ECS实例,也可以使用自己电脑上的终端来连接远程实例。在这里,我使用的是自己电脑上的「终端」应用程序来登录ECS实例(我使用的是 Macbook Pro 笔记本,macOS 系统自带终端应用)。
运行命令:ssh root@121.**.**.**
(@
后面的IP地址,请输入您服务器的实际IP地址),然后输入 root
用户密码,登陆后,如下图所示:

注:作为演示,我这里使用的是
root
用户登录 ECS,在实际的运维过程中,应避免使用root
用户作为日常运维操作。
2、查看数据盘
运行 fdisk -l
命令,查看当前登录的 ECS 实例是否有数据盘。
- 如果执行命令后,没有发现
/dev/vdb
,表示当前实例没有数据盘,无需进行格式化操作。 - 如果命令执行结果显示的是
dev/xvd?
,表示您使用的是非I/O优化实例(其中?
是 a-z 中的其中任一个字母)
3、创建单分区数据盘
创建单分区数据盘步骤如下:
- 执行
fdisk /dev/vdb
命令对数据盘进行分区。 - 在命令行中输入
n
并按回车键,创建一个新分区。 - 由于我们创建的是单分区数据盘,只需创建主分区即可;因此,在命令行中输入
p
并按回车键。注:如果要创建 4 个以上的分区,您应该创建至少一个扩展分区,即选择
e
。 - 输入分区编号并按回车键。因为这里仅创建一个分区,我们在这里可以输入
1
- 输入第一个可用的扇区编号,可接受的编号范围是 1-41610。我们在这里使用默认值
1
作为第一个可用的扇区编号,然后按下回车键。 - 输入最后一个扇区编号,可接受的编号范围是 1-41610。因为我们仅创建一个分区,所以直接按回车键使用系统提供的默认值
41610
。
最后,输入 wq
并按回车键,开始分区(命令 wq
表示 Write & Quit
的意思,即保存并退出)。
整个过程如下图所示:

4、查看新的分区
在执行了上面第3步之后,运行 fdisk -l
命令,来查看我们刚才的分区结果。如果出现以下信息,说明已经成功创建了新分区 /dev/vdb1
。

5、创建文件系统
我们要创建一个 ext3
文件系统,执行命令:mkfs.ext3 /dev/vdb1
即可创建 ext3
文件系统。创建过程如下图所示:

注:创建文件系统所需时间取决于当前数据盘大小。
6、写入新分区信息
系统分区信息是存放在 /etc/fstab
文件里面的,在写入新的分区信息前,我们对 /etc/fstab
文件先进行备份。运行 cp /etc/fstab /etc/fstab.bak
命令,复制一份 fstab
文件。备份之后,现在可以向 /etc/fstab
文件写入新分区信息了。
运行命令 echo /dev/vdb1 /mnt ext3 defaults 0 0 >> /etc/fstab
把内容追加到 fstab
文件里面。
说明:
- 上面命令中的
/mnt
表示挂载点路径,如果需要把数据盘单独挂载到某个文件夹,请将/mnt
替换成您期望的路径- 上面这个命令的
>>
操作符,表示追加内容(而不是覆盖)。
现在,我们使用 cat /etc/fstab
命令,来查看刚才写入的分区信息,如下图所示:

什么是 fstab 文件?
fstab 文件包含了服务器的存储设备及其文件系统的信息,它是决定一个硬盘(分区)被怎样使用或者说整合到整个系统中的文件。为了避免破坏系统原始 fstab 文件,我们在这里对其进行备份。
7、挂载文件系统
分区之后,需要把数据盘挂载到指定的路径。运行命令 mount /dev/vdb1 /mnt
即可完成挂载。
为了确定数据盘是否挂载成功,可以运行 df -h
命令,查看磁盘使用情况。如果列出的磁盘明细出现新的文件系统信息,则说明我们挂载成功,数据盘可以开始使用了。
运行 df -h
命令后,运行结果如下:

小结
以上内容是容量小于 2TiB 数据盘分区/挂载的所有步骤,其核心操作是使用 fdisk
命令在数据盘上创建新分区,然后往 /etc/fstab
文件中写入新的分区信息,最后,使用 mount
命令完成磁盘挂载。
数据盘容量大于 2TiB 的分区操作
对于大容量数据盘(通常指容量大于 2TiB 的磁盘),必须采用 GPT 分区形式(GUID Partition Table)。对于 Linux 系统,大容量数据盘支持的分区工具是 parted,支持的文件系统包括 ext4 和 xfs 文件系统。
本节教程使用的操作环境及工具如下:
- 分区工具:parted 和 e2fsprogs
- 操作系统:CentOS 7.4 (64位)
- 文件系统:ext4
- 数据盘:3 TiB
- 设备名:/dev/vdd
注:在进行分区操作之前,请确保您的系统已经安装了
parted
和e2fsprogs
工具。安装命令如下:
parted
工具安装命令:yum install -y parted
e2fsprogs
工具安装命令:yum install -y e2fsprogs
在分区之前,需要查看数据盘是否存在(使用 fdisk -l
命令),具体方法请参考上面 查看数据盘 一节的内容,这里不再赘述。
以下是对大容量云盘进行分区的完整过程。
1、使用 parted
创建分区表
首先,运行命令 parted /dev/vdd
进入命令行交互模式,接下来,依次执行以下操作:
- 运行命令
mklabel gpt
,将 MBR 分区形式转为 GPT 分区形式 - 运行命令
mkpart primary ext4 <StartSector> <EndSector>
,创建一个采用ext4
文件系统的主分区,并设置分区的开始位置和结束位置。如果一个数据盘只分一个分区,则运行命令mkpart primary ext4 0 -1
- 运行
print
命令,查看分区表
执行 print
命令后,结果如下:

最后,输入 quit
退出 parted
工具的交互模式。
MBR 分区表和 GPT 分区表的区别:
- MBR 分区表:MBR 是 Main Boot Record 的缩写,表示主引导记录。它支持的最大容量是 2TB,而且,它最多只能划分4个主分区或3个主分区加一个扩展分区
- GPT 分区表:GPT 是 GUID Partition Table 的缩写,意思是 GUID 分区表。它支持的最大容量是 18EB(1EB=1024TB),每个磁盘最多支持128个分区
因此,如果要对大于2TB的磁盘进行分区,就必须使用 GPT 分区表。
2、重读分区表
运行命令 partprobe
,使系统重读分区表。
注:
partprobe
命令用于重读分区表,当出现删除文件后,出现仍然占用空间。可以partprobe在不重启的情况下重读分区。
3、创建 ext4
文件系统
运行以下命令,创建一个 ext4
文件系统,并使 /dev/vdd1
分区使用 ext4
。
mke2fs -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize /dev/vdd1
说明:如果要创建一个
xfs
文件系统,请运行mkfs -t xfs /dev/vdd1
命令。
4、挂载文件系统
首先,创建一个文件夹,作为挂载点:mkdir /test
。该命令将在系统根目录下创建一个名为 test
的文件夹,作为我们的磁盘挂载点;然后,运行 mount /dev/vdd1 /test
命令,将分区 /dev/vdd1
挂载到 /test
目录。
执行完上述操作后,运行 df -h
命令,查看当前磁盘空间及使用情况,运行效果如下:

当然,您仍然可以向 /etc/fstab
文件写入新的分区信息,操作方法和上面 写入新分区信息 一样,只是这时写入命令要修改为 echo /dev/vdd1 /test ext4 defaults 0 0 >> /etc/fstab
。
查看 /etc/fstab
文件,如果输出的结果里面出现了写入的新分区信息,则说明写入成功。
至此,我们就完成了对一个 3 TiB 数据盘的分区及挂载操作。
小结
对于大容量磁盘的分区(超过 2TiB),我们不能再使用 fdisk
命令,因为 fdisk
只能划分小于 2TiB 的磁盘。因此,我们使用了 parted
工具来对超过 2TiB 的云盘进行分区。在使用 parted
分区时,要注意必须采用 GPT 分区形式,因为它支持的最大容量是 18EB。另外需要强调的是,对大容量磁盘分区,我们一般采用 ext4
或 xfs
文件系统。
感谢阅读,希望对您有帮助!