磁盘分区工具 parted fdisk 详解

磁盘分区工具


parted

特别注意:parted 有两种运行模式:命令行模式和交互模式。与 fdisk 的交互模式不同,在 parted 的交互模式下执行命令,一旦按回车键确认,命令就马上执行,对磁盘的更改就立刻生效

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
parted --help
Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]
Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run in
interactive mode.

选项:
  -h, --help                      显示此求助信息
  -l, --list                      列出所有block设备上的分区
  -m, --machine                   displays machine parseable output
  -s, --script                    从不提示用户
  -v, --version                   显示版本
  -a, --align=[none|cyl|min|opt]  alignment for new partitions

命令:

  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  #查看分区对齐类型
  help [COMMAND]                           print general help, or help on COMMAND
  #打印帮助
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  #创建新的磁盘标签 (创建分区表) gpt&msdos(mbr)
  #LABEL-TYPE:"aix", "amiga", "bsd", "dvh", "gpt", "loop", "mac","msdos", "pc98", "sun"
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  #创建新分区。
  #PART-TYPE :primary(主分区)、extended(扩展分区)、logical(逻辑分区)。
  #FS-TYPE : ext2、ext3、ext4、fat16、fat32、NTFSReiserFS、JFS、XFS、UFS、HFS、swap(此选项可以省略,在格式化时指定文件系统类型后,parted会自动更改分区类型)
  #START 和 END 是新分区开始和结束的具体位置。
  name NUMBER NAME                         name partition NUMBER as NAME
  #将编号为 NUMBER 的分区命名为 NAME ,仅用于Mac,PC98,and GPT disklabels.
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space,all found partitions, or a particular partition  
  #打印 分区表,可用设备,可用空间,所有分区或特定分区
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  #恢复 START END 之间丢失的分区
  resizepart NUMBER END                    resize partition NUMBER
  #调整分区号NUMBER
  rm NUMBER                                delete partition NUMBER
  #删除指定编号 NUMBER 的分区。
  select DEVICE                            choose the device to edit
  #选择需要编辑的设备
  disk_set FLAG STATE                      change the FLAG on selected device
  #更改选定设备上的 FLAG
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  #切换选定设备上的FLAG状态
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  #指定编号 NUMBER 的分区设置分区标记 FLAG。
  # FLAG 可有如下值:"boot"[(Mac, MS-DOS, PC98) 引导], “hidden”(隐藏), “raid”(软RAID磁盘阵), “lvm”(逻辑卷), “lba” (LBA,Logic Block Addressing模式)。
  #FLAG:"bios_grub"[(GPT)GRUB BIOS], "legacy_boot"[(GPT) 引导],"palo"."swap", "root"
  #状态STATE 的取值是:on 或 off
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  #切换分区号NUMBER上的FLAG状态
  unit UNIT                                set the default unit to UNIT
  #设置默认输出时表示磁盘大小的单位为 UNIT,UNIT 的常用取值可以为:‘MB’、‘GB’、‘%’(占整个磁盘设备的百分之多少)、‘compact’(人类易读方式,类似于 df 命令中 -h 参数的用)、‘s’(扇区)、‘cyl’ (柱面)、‘chs’ (柱面cylinders:磁头 heads:扇区 sectors 的地址)
  version                                  display the version number and copyright information of GNU Parted
Report bugs to [email protected]

命令结构明细

1
parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]
  • OPTION

    • -h, --help #显示此求助信息
    • -l, --list #列出所有block设备上的分区
    • -m, --machine #displays machine parseable output
    • -s, --script #从不提示用户
    • -v, --version #显示版本
    • -a, --align=[none|cyl|min|opt] #分区的对齐检查方式
  • DEVICE #block设备

  • COMMAND

    • align-check TYPE N

      检查分区N是否满足类型 TYPE(min|opt)的约束 (完整检查|最小化检查) 也就是检查分区是否对齐

      此处注意:一般是检查分区的文件系统类型是否满足,一般在格式化后操作

    • help [COMMAND] #打印 COMMAND 命令的帮助信息

    • mklabel,mktable LABEL-TYPE

      创建新的磁盘标签 (创建分区表)

      • LABEL-TYPE

        标签类型有 LABEL-TYPE:“aix”, “amiga”, “bsd”, “dvh”, “gpt”, “loop”, “mac”,“msdos”, “pc98”, “sun”

        常用的有 “gpt”, “msdos”

    • mkpart PART-TYPE [FS-TYPE] START END

      创建新分区

      • PART-TYPE

        分区类型

        • primary(主分区)、extended(扩展分区)、logical(逻辑分区)
      • FS-TYPE

        ext2、ext3、ext4、fat16、fat32、NTFSReiserFS、JFS、XFS、UFS、HFS、swap

        (此选项可以省略,在格式化时指定文件系统类型后,parted会自动更改分区类型)

      • START END

        新分区开始和结束的具体位置

    • name NUMBER NAME

      将编号为 NUMBER 的分区命名为 NAME ,仅用于Mac,PC98,and GPT disklabels.

    • print [devices|free|list,all|NUMBER]

      打印 分区表,可用设备,可用空间,所有分区或特定分区

    • quit

      退出分区工具

    • rescue START END

      恢复 START END 之间丢失的分区

    • resizepart NUMBER END

      调整分区号NUMBER

    • rm NUMBER

      删除指定编号 NUMBER 的分区。

      次处于fdisk有一个不同之处,parted删除分区1后,分区2不会变成1

    • select DEVICE

      选择需要编辑的设备

    • disk_set FLAG STATE

      更改选定设备上的 FLAG

      • FLAG

      • STATE

        状态STATE 的取值是:on 或 off

    • disk_toggle [FLAG]

      切换选定设备上的FLAG状态

      • FLAG
    • set NUMBER FLAG STATE

      指定编号 NUMBER 的分区设置分区标记 FLAG

      • NUMBER #分区编号

      • FLAG

      • STATE

        状态STATE 的取值是:on 或 off

    • toggle [NUMBER [FLAG]]

      取消或开启分区标志

    • unit UNIT

      设置默认输出时表示磁盘大小的单位为 UNIT,UNIT 的常用取值可以为:‘MB’、‘GB’、‘%’(占整个磁盘设备的百分之多少)、‘compact’(人类易读方式,类似于 df 命令中 -h 参数的用)、‘s’(扇区)、‘cyl’ (柱面)、‘chs’ (柱面cylinders:磁头 heads:扇区 sectors 的地址)

    • version

    Report bugs to [email protected]

FLAG

根据磁盘标签来选取分区的FLAG

  • bios_grub

    (GPT) 启动此FLAG的分区是一个GRUB BIOS分区

  • legacy_boot

    (GPT) 使用此FLAG的分区告诉专用软件此分区可以启动,或者说可以用BIOS(非UEFI)方式引导该分区

  • boot

    (Mac, MS-DOS, PC98) 分区启动标志,磁盘标签不同意义不同

    对于MS-DOS只能启动一个分区,如果要安装LILOon,则该分区必须是可引导的.对于PC98磁盘标签,所有ext2分区都必须可引导(这由Parted强制规定的)

  • msftdata

    (GPT) 此标志标识包含Microsoft文件系统(NTFS或FAT)的分区。可以选择在Linux文件系统上进行设置,以模拟parted 3.0及更早版本创建的配置类型,其中GPT磁盘上没有单独的Linux文件系统类型代码。此标志只能在parted内通过替换为competingflag(如boot或msftres)来删除。

  • msftres

    (MS-DOS,GPT) 此标志标识Windows使用的“Microsoft Reserved”分区。请注意,此标志通常不应位于Windows文件系统分区(包含NTFS或FAT文件系统的分区)上

  • irst

    (MS-DOS, GPT) 此标志是识别Intel Rapid Start Technologypartition(英特尔快速启动技术).

  • esp

    (MS-DOS, GPT) 此标志标识UEFI系统分区,在GPT上,它是boot的别名

  • lba

    (MS-DOS) 此标志可用于告诉MS DOS、MS Windows 9x和MS Windows ME操作系统使用线性(LBA)模式

  • root

    (Mac) 如果分区是Linux要使用的根设备,则应启用此标志。

  • swap

    (Mac) 如果分区是要由Linux使用的交换分区设备,则应启用此标志。

  • hidden

    (MS-DOS, PC98) 此标志可用于隐藏Microsoft操作系统中的分区。

  • raid

    (MS-DOS) 启用此标志来告诉linux分区是软RAID分区。

  • LVM

    (MS-DOS) 启用此标志来告诉linux分区是物理卷。

  • PALO

    (MS-DOS) 启用此标志,以便Linux/PA-RISC引导加载程序palo可以使用分区。

  • PREP

    (MS-DOS, GPT) 可以启用此标志,以便该分区可以用作PowerPC PReP或IBM RS6K/CHRP硬件上的PReP引导分区。

  • DIAG

    (MS-DOS) 启用此选项表示分区可以用作诊断/恢复分区。

fdisk

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
fdisk -h
用法:
 fdisk [选项] <磁盘>    更改分区表
 fdisk [选项] -l <磁盘> 列出分区表
 fdisk -s <分区>        给出分区大小(块数)

选项:
 -b <大小>             扇区大小(512、1024、2048或4096)
 -c[=<模式>]           兼容模式:“dos”或“nondos”(默认)
 -h                    打印此帮助文本
 -u[=<单位>]           显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)
 -v                    打印程序版本
 -C <数字>             指定柱面数
 -H <数字>             指定磁头数
 -S <数字>             指定每个磁道的扇区数
 
帮助:
 
  DOS (MBR)
   a   开关 可启动 标志
   b   编辑嵌套的 BSD 磁盘标签
   c   开关 dos 兼容性标志
 
  GPT
   M   进入 保护/混合 MBR
 
  常规
   d   删除分区
   F   列出未分区的空闲区
   l   列出已知分区类型
   n   添加新分区
   p   打印分区表
   t   更改分区类型
   v   检查分区表
   i   打印某个分区的相关信息
 
  杂项
   m   打印此菜单
   x   更多功能(仅限专业人员)
 
  脚本
   I   从 sfdisk 脚本文件加载磁盘布局
   O   将磁盘布局转储为 sfdisk 脚本文件
 
  保存并退出
   w   将分区表写入磁盘并退出
   q   退出而不保存更改
 
  新建空磁盘标签
   g   新建一份 GPT 分区表
   G   新建一份空 GPT (IRIX) 分区表
   o   新建一份的空 DOS 分区表

例子:新建一个GPT标签的磁盘,分配第一个分区大小为512M,第二个分区大小为24G,将第一个分区类型改为EFI,第二个分区类型默认为Linux filesystem

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
fdisk /dev/sda
命令(输入 m 获取帮助):g
 
已创建新的 GPT 磁盘标签(GUID: 3A60FB68-50C7-FC43-A633-6F603EA6DE7A)。
The old gpt signature will be removed by a write command.
 
命令(输入 m 获取帮助):n
分区号 (1-128, 默认  1):
第一个扇区 (2048-100663262, 默认 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-100663262, 默认 100663262): +512M
 
命令(输入 m 获取帮助):n
分区号 (2-128, 默认  2):
第一个扇区 (1050624-100663262, 默认 1050624):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1050624-100663262, 默认 100663262): +24G
 
创建了一个新分区 2,类型为“Linux filesystem”,大小为 24 GiB。
 
命令(输入 m 获取帮助):l
  1 EFI System                     C12A7328-F81F-11D2-BA4B-00A0C93EC93B
 19 Linux swap                     0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
 20 Linux filesystem               0FC63DAF-8483-4772-8E79-3D69D8477DE4
 
命令(输入 m 获取帮助):t
分区号 (1,2, 默认  2): 1
分区类型(输入 L 列出所有类型):1
 
已将分区“Linux filesystem”的类型更改为“EFI System”。
 
命令(输入 m 获取帮助):w