一、MBR 和 GPT 区别
1.1 MBR
  • MBR分区表(即主引导记录)大家都很熟悉,是过去我们使用windows时常用的
  • 所支持的最大卷:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区
1.2 GPT
  • GPT(即GUID分区表)。是源自EFI标准的一种较新的磁盘分区表结构的标准,是未来磁盘分区的主要形式。与MBR分区方式相比,具有如下优点。
  • 突破MBR 4个主分区限制,每个磁盘最多支持128个分区。支持大于2T的分区,最大卷可达18EB。

 

对于大于2TB的硬盘,我们需要使用 GPT(GUID 分区表)来进行分区。fdisk 工具并不直接支持 GPT 分区,但我们可以使用 parted 工具来完成分区。

fdiskparted 都是常用的磁盘分区工具,它们各有优势和特点。下面是它们的一些比较:

fdisk

  • fdisk 是一个非常古老但广泛使用的工具,几乎在所有 Linux 发行版中都可用。
  • 它简单直接,易于使用和理解,适合进行基本的分区操作。
  • 它提供了交互式的命令行界面,可以方便地创建、删除和修改分区。
  • fdisk 目前主要支持 MBR(Master Boot Record)分区表,对于大于2TB的硬盘需要使用 GPT 分区表。

parted

  • parted 是一个功能更强大、更灵活的分区工具,在大多数 Linux 发行版中也可用。
  • 它支持 MBR 和 GPT 两种分区表类型。
  • parted 提供了更多的分区选项和功能,比如支持更多的文件系统类型、调整分区大小而不丢失数据等。
  • 它还具有更友好的命令行界面,并且提供了更多的交互式命令,使得分区操作更加方便和可视化。
  • 在处理大型硬盘或复杂分区需求时,parted通常更适合使用。

总体来说,如果你只需要进行基本的分区操作并且习惯使用命令行界面,那么 fdisk 是一个简单实用的选择。而如果你需要更多功能、更灵活的分区选项或者对交互式界面更感兴趣,那么 可以使用 parted 

查看所有的分区 parted -l

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@localhost ~]# parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 316MB 315MB primary xfs boot
2 316MB 2463MB 2147MB primary linux-swap(v1)
3 2463MB 21.5GB 19.0GB primary xfs


Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags

对磁盘进行分区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[root@localhost ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt

# 定义分区表格式(常用的有msdos和gpt分区表格式,msdos不支持2TB以上容量的磁盘,所以大于2TB的磁盘选gpt分区表格式)

Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do
you want to continue?
Yes/No? yes

# /dev/sdb上现有的磁盘标签将被销毁,该磁盘上的所有数据将丢失。你想要继续
是/Yes/否/No? yes

(parted) mkpart p1
# 创建第一个分区,名称为p1(p1只是第一个分区的名称,用别的名称也可以,如part1

File system type? [ext2]? ext4
# 定义分区格式(不支持ext4,想分ext4格式的分区,可以通过mkfs.ext4格式化成ext4格式)

Start? 1
# 定义分区的起始位置(单位支持K,M,G,T)

End? 100%
# 定义分区的结束位置(单位支持K,M,G,T)输入数字为单位默认为MB

(parted) p # 查看当前分区情况
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 21.5GB 21.5GB ext4 p1

(parted) q

删除分区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@localhost ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) rm
# rm删除命令(删除之前必须确保分区没有被挂载)

Partition number? 1
# 删除第一个分区

(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags

(parted) q