Linux系统格式化分区
概述
若您购买的 BCC 云服务器镜像是 Linux 系统,在购买新的 CDS 云磁盘数据盘后,还需要对该磁盘进行分区和格式化操作后才可正常使用。
您可以采用 MBR 或 GPT 两种分区方式。MBR 分区方式适用于容量不超过 2 TiB 的磁盘,容量大于 2 TiB 的磁盘建议使用 GPT 分区。关于两种方式的差异以及磁盘分区时的注意事项,请参见 磁盘分区概述。
前提条件
- 已创建 BCC 实例,并可以远程登录实例。具体的登录方式请参见 登录实例。
- 已将 CDS 云磁盘挂载到目标 BCC 实例。
- 已确认目标数据盘设备名,例如
/dev/vdb或/dev/vdc。 - 当前操作用户具备
root权限或sudo权限。
注意: 分区和格式化会清除目标磁盘上的数据,请确认目标磁盘为新数据盘或已完成数据备份。
操作步骤
本文档以 CentOS 7.6 操作系统为例,不同操作系统的格式化操作可能不同,本文档操作仅供参考。****
使用 MBR 分区(<2TiB)
本操作步骤是在 CentOS 7.6 x86_64 (64bit) 系统中为一块新的 5 GB 数据盘(设备名为 /dev/vdb)创建一个单分区。
1. 查看当前磁盘信息
远程登录 BCC 实例后,执行以下命令查看当前磁盘信息。
1fdisk -l
示例返回:
1[root@instance-xxx ~]# fdisk -l
2磁盘 /dev/vda:42.9 GB, 42949672960 字节,83886080 个扇区
3Units = 扇区 of 1 * 512 = 512 bytes
4扇区大小(逻辑/物理):512 字节 / 512 字节
5I/O 大小(最小/最佳):512 字节 / 512 字节
6磁盘标签类型:dos
7磁盘标识符:0x000b8163
8
9设备 Boot Start End Blocks Id System
10/dev/vda1 * 2048 83886046 41941999+ 83 Linux
11
12磁盘 /dev/vdb:5368 MB, 5368709120 字节,10485760 个扇区
13Units = 扇区 of 1 * 512 = 512 bytes
14扇区大小(逻辑/物理):512 字节 / 512 字节
15I/O 大小(最小/最佳):512 字节 / 512 字节
确认返回中存在目标数据盘 /dev/vdb,且该磁盘尚未创建分区。
提示:查看前请确认数据盘已经挂载。若未挂载,请将磁盘挂载至实例后查看。
2. 对 CDS 云磁盘进行分区
使用 fdisk 方式对数据盘进行分区,执行以下命令进入数据盘分区交互界面。
1fdisk /dev/vdb
在交互界面中,依次输入以下内容:
| 输入内容 | 说明 |
|---|---|
p |
打印分区列表,查看数据盘分区情况。本操作中该磁盘还未进行分区。 |
n |
创建一个新分区。 |
p |
选择分区类型为主分区。 本示例是为磁盘创建一个单独的主分区。若您需要为磁盘创建多个分区,请选择 e。 |
1 |
设置分区编号为 1。 |
2048 |
设置第一个可用扇区编号,采用默认值 2048。 |
| 直接按回车 | 使用默认最后一个扇区编号,将整块磁盘划分为一个分区。 |
p |
打印分区列表,查看当前数据盘分区情况。 |
w |
写入分区表并退出。 |
示例交互过程:
1[root@instance-xxx ~]# fdisk /dev/vdb
2欢迎使用 fdisk (util-linux 2.23.2)。
3更改将停留在内存中,直到您决定将更改写入磁盘。
4使用写入命令前请三思。
5Device does not contain a recognized partition table
6使用磁盘标识符 0x88504a48 创建新的 DOS 磁盘标签。
7
8命令(输入 m 获取帮助):p
9磁盘 /dev/vdb:5368 MB, 5368709120 字节,10485760 个扇区
10Units = 扇区 of 1 * 512 = 512 bytes
11扇区大小(逻辑/物理):512 字节 / 512 字节
12I/O 大小(最小/最佳):512 字节 / 512 字节
13磁盘标签类型:dos
14磁盘标识符:0xbc3ca63f
15
16设备 Boot Start End Blocks Id System
17
18命令(输入 m 获取帮助):n
19Partition type:
20 p primary (0 primary, 0 extended, 4 free)
21 e extended
22
23Select (default p): p
24
25分区号 (1-4,默认 1):1
26
27起始 扇区 (2048-10485759,默认为 2048):2048
28
29Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):
30
31将使用默认值 10485759
32分区 1 已设置为 Linux 类型,大小设为 5 GiB
33
34命令(输入 m 获取帮助):p
35磁盘 /dev/vdb:5368 MB, 5368709120 字节,10485760 个扇区
36Units = 扇区 of 1 * 512 = 512 bytes
37扇区大小(逻辑/物理):512 字节 / 512 字节
38I/O 大小(最小/最佳):512 字节 / 512 字节
39磁盘标签类型:dos
40磁盘标识符:0xbc3ca63f
41
42设备 Boot Start End Blocks Id System
43/dev/vdb1 2048 10485759 5241856 83 Linux
44
45命令(输入 m 获取帮助):w
46The partition table has been altered!
47Calling ioctl() to re-read partition table.
48正在同步磁盘。
3. 查看新分区
执行以下命令查看新的分区 /dev/vdb1 是否创建完成。
1fdisk -l
示例返回:
1[root@instance-xxx ~]# fdisk -l
2
3磁盘 /dev/vda:42.9 GB, 42949672960 字节,83886080 个扇区
4Units = 扇区 of 1 * 512 = 512 bytes
5扇区大小(逻辑/物理):512 字节 / 512 字节
6I/O 大小(最小/最佳):512 字节 / 512 字节
7磁盘标签类型:dos
8磁盘标识符:0x000b8163
9
10设备 Boot Start End Blocks Id System
11/dev/vda1 * 2048 83886046 41941999+ 83 Linux
12
13磁盘 /dev/vdb:5368 MB, 5368709120 字节,10485760 个扇区
14Units = 扇区 of 1 * 512 = 512 bytes
15扇区大小(逻辑/物理):512 字节 / 512 字节
16I/O 大小(最小/最佳):512 字节 / 512 字节
17磁盘标签类型:dos
18磁盘标识符:0xbc3ca63f
19
20设备 Boot Start End Blocks Id System
21/dev/vdb1 2048 10485759 5241856 83 Linux
返回中出现 /dev/vdb1,表示分区创建成功。
4. 创建文件系统
执行以下命令在新分区上创建 ext4 文件系统。创建时间长短根据 CDS 磁盘容量大小而变化。
1mkfs.ext4 /dev/vdb1
示例返回:
1[root@instance-xxx ~]# mkfs.ext4 /dev/vdb1
2mke2fs 1.42.9 (28-Dec-2013)
3文件系统标签=
4OS type: Linux
5块大小=4096 (log=2)
6分块大小=4096 (log=2)
7Stride=0 blocks, Stripe width=0 blocks
8327680 inodes, 1310464 blocks
965523 blocks (5.00%) reserved for the super user
10第一个数据块=0
11Maximum filesystem blocks=1342177280
1240 block groups
1332768 blocks per group, 32768 fragments per group
148192 inodes per group
15Superblock backups stored on blocks:
1632768, 98304, 163840, 229376, 294912, 819200, 884736
17
18Allocating group tables: 完成
19正在写入inode表: 完成
20Creating journal (32768 blocks): 完成
21Writing superblocks and filesystem accounting information: 完成
提示:您也可以根据自己的需要,创建其他文件系统。
5. 挂载文件系统
执行命令将该文件系统挂载至 /mnt 节点。
1mount /dev/vdb1 /mnt
提示:如果需要把 CDS 磁盘挂载到其他目录,可以修改以上命令中的
/mnt至其他挂载节点。
6. 查询磁盘分区 UUID
UUID 是 Linux 系统中磁盘分区的唯一标识符。
执行以下命令查询新分区的 UUID。
1blkid /dev/vdb1
示例返回:
1[root@instance-xxx ~]# blkid /dev/vdb1
2/dev/vdb1: UUID="2bc6f6d2-0c6b-4946-b038-91562520a942" TYPE="ext4"
记录返回中的 UUID,后续配置开机自动挂载时使用。
7. 写入分区信息
写入分区信息有两种格式:
- 盘符格式:
/dev/vdb1 /mnt ext4 defaults 0 0 - UUID 格式:
UUID=84953f78-xxxx-4dbd-ac60-aaabc2e4cb9c /mnt ext4 defaults 0 0
由于云服务器在重启或者关闭等过程中,盘符可能会发生偏移,如 /dev/vdb1 变成 /dev/vdb2,可能会导致云服务器无法正常启动或运行。因此,配置自动挂载时建议您采用 UUID 格式来标识分区信息。
执行以下命令,使用 vim 编辑器打开 /etc/fstab 文件。
1vim /etc/fstab
输入 i 进入编辑模式后,将上一步获取到的 UUID、挂载点、文件系统类型等信息添加到 /etc/fstab 文件中,按 Esc,输入 :wq 并按回车保存退出。
1UUID=2bc6f6d2-0c6b-4946-b038-91562520a942 /mnt ext4 defaults 0 0
/etc/fstab 中格式如下:
1<device-spec> <mount-point> <fs-type> <options> <dump> <pass>
2
3* device-spec:设备名称或标签,如磁盘分区的UUID、分区盘符,本示例中UUID=2bc6f6d2-0c6b-4946-b038-91562520a942,分区盘符为/dev/vdb1;
4* mount-point:挂载点信息,本示例中为 /mnt;
5* fs-type:分区的文件系统格式,本示例中为 ext4;
6* options:挂载选项,配置为defaults即可;
7* dump:备份选项,可选0和1,如果是0,dump会忽略备份该文件系统;如果是1,则会进行备份,本示例中为 0;
8* pass:云服务器启动过程中,是否用fsck检验扇区,可选0,1,2。0:表示不检验;1:表示最早检验(一般只有根目录配置为1);2:仅次于1进行校验。本示例中为:0。
8. 查看新分区信息
执行以下命令查看 /etc/fstab 配置。
1cat /etc/fstab
示例返回:
1[root@instance-xxx ~]# cat /etc/fstab
2# /etc/fstab
3# Created by anaconda on Thu Mar 21 07:01:01 2019
4#
5# Accessible filesystems, by reference, are maintained under '/dev/disk'
6# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
7#
8UUID=84953f78-xxxx-4dbd-ac60-aaabc2e4cb9c / ext4 defaults 1 1
9UUID=2bc6f6d2-0c6b-4946-b038-91562520a942 /mnt ext4 defaults 0 0
返回中出现新分区挂载配置,表示写入新分区成功。
9. 检验自动挂载功能
执行以下命令卸载已经挂载的分区。
1umount /dev/vdb1
执行以下命令加载 /etc/fstab 信息。
1mount -a
执行以下命令查询挂载点的文件系统信息。
1mount | grep /mnt
示例返回:
1[root@instance-xxx ~]# mount | grep /mnt
2/dev/vdb1 on /mnt type ext4 (rw,relatime,data=ordered)
返回中出现 /mnt 的挂载信息,表示开机自动挂载磁盘分区功能已生效。#### * 查看当前磁盘空间
执行以下命令查看挂载情况。
1df -h
示例返回:
1[root@instance-xxx ~]# df -h
2文件系统 容量 已用 可用 已用% 挂载点
3/dev/vda1 40G 1.7G 36G 5% /
4devtmpfs 2.0G 0 2.0G 0% /dev
5tmpfs 2.0G 17M 2.0G 1% /run
6tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
7tmpfs 396M 0 396M 0% /run/user/0
8/dev/vdb1 4.8G 20M 4.6G 1% /mnt
返回中出现 /dev/vdb1 且挂载点为 /mnt,表示新分区挂载成功。
使用 GPT 分区(≥2TiB)
本操作步骤是在 CentOS 7.6 x86_64 (64bit) 系统中为一块新的 2300 GB 数据盘(设备名为 /dev/vdc)创建一个单分区。
1. 查看当前磁盘信息
远程登录 BCC 实例后,执行以下命令查看当前磁盘信息。确认数据盘 /dev/vdc 已挂载且尚未分区。
1fdisk -l
示例返回:
1[root@instance-xxxx ~]# fdisk -l
2
3磁盘 /dev/vda:42.9 GB, 42949672960 字节,83886080 个扇区
4Units = 扇区 of 1 * 512 = 512 bytes
5扇区大小(逻辑/物理):512 字节 / 512 字节
6I/O 大小(最小/最佳):512 字节 / 512 字节
7磁盘标签类型:dos
8磁盘标识符:0x000b8163
9
10设备 Boot Start End Blocks Id System
11/dev/vda1 * 2048 83886046 41941999+ 83 Linux
12
13磁盘 /dev/vdc:2469.6 GB, 2469606195200 字节,4823449600 个扇区
14Units = 扇区 of 1 * 512 = 512 bytes
15扇区大小(逻辑/物理):512 字节 / 512 字节
16I/O 大小(最小/最佳):512 字节 / 512 字节
提示:
- 查看前请确认数据盘已经挂载。若未挂载,请将磁盘挂载至实例后查看。
2. 对 CDS 云磁盘进行分区
使用 parted 对数据盘进行分区,执行以下命令进入数据盘分区交互界面。
1parted /dev/vdc
根据提示依次执行以下操作:
| 输入内容 | 说明 |
|---|---|
mklabel gpt |
转为 GPT 分区格式。 |
mkpart primary 1 100% |
划分一个主分区,并设置其开始和结束位置。 |
align-check optimal 1 |
检查分区是否对齐。若返回 1 aligned,表示已对齐。 |
print |
查看当前磁盘的分区表。 |
quit |
退出。 |
示例交互过程:
1[root@instance-xxxx ~]# parted /dev/vdc
2GNU Parted 3.1
3使用 /dev/vdc
4Welcome to GNU Parted! Type 'help' to view a list of commands.
5(parted) mklabel gpt
6(parted) mkpart primary 1 100%
7(parted) align-check optimal 1
81 aligned
9(parted) print
10Model: Virtio Block Device (virtblk)
11Disk /dev/vdc: 2470GB
12Sector size (logical/physical): 512B/512B
13Partition Table: gpt
14Disk Flags:
15
16Number Start End Size File system Name 标志
17 1 1049kB 2470GB 2470GB primary
18
19(parted) quit
20信息: You may need to update /etc/fstab.
- 系统重读分区表
执行以下命令,使系统重读分区表。
1partprobe
示例返回:
1[root@instance-xxxx ~]# partprobe
4. 创建文件系统
执行以下命令创建文件系统,本操作以 ext4 为例。
1mkfs -t ext4 /dev/vdc1
示例返回:
1[root@instance-xxxx ~]# mkfs -t ext4 /dev/vdc1
2mke2fs 1.42.9 (28-Dec-2013)
3文件系统标签=
4OS type: Linux
5块大小=4096 (log=2)
6分块大小=4096 (log=2)
7Stride=0 blocks, Stripe width=0 blocks
8150732800 inodes, 602931200 blocks
930146560 blocks (5.00%) reserved for the super user
10第一个数据块=0
11Maximum filesystem blocks=2751463424
1218400 block groups
1332768 blocks per group, 32768 fragments per group
148192 inodes per group
15Superblock backups stored on blocks:
16 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
17 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
18 102400000, 214990848, 512000000, 550731776
19
20Allocating group tables: 完成
21正在写入inode表: 完成
22Creating journal (32768 blocks): 完成
23Writing superblocks and filesystem accounting information: 完成
5. 创建挂载点并挂载文件系统
执行以下命令创建挂载点。本操作挂载至 /test1 挂载点。
1mkdir /test1
执行以下命令,将分区 /dev/vdc1 挂载到 /test1。
1mount /dev/vdc1 /test1
执行以下命令,查看目前磁盘空间和使用情况。
1df -h
示例返回:
1[root@instance-xxxx ~]# mkdir /test1
2[root@instance-xxxx ~]# mount /dev/vdc1 /test1
3[root@instance-xxxx ~]# df -h
4文件系统 容量 已用 可用 已用% 挂载点
5/dev/vda1 40G 1.7G 36G 5% /
6devtmpfs 2.0G 0 2.0G 0% /dev
7tmpfs 2.0G 0 2.0G 0% /dev/shm
8tmpfs 2.0G 17M 2.0G 1% /run
9tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
10/dev/vdb1 4.8G 20M 4.6G 1% /mnt
11tmpfs 396M 0 396M 0% /run/user/0
12/dev/vdc1 2.3T 85M 2.1T 1% /test1
注意: 如果您是 CentOS、Ubuntu 系统,可以使用 CDSCMD 工具 进行自动分区操作。
评价此篇文章
