Linux 磁盘管理 | parted

1. 介绍

      parted命令是由GNU组织开发的一款功能强大的磁盘分区和分区大小调整工具,与fdisk不同,它支持调整分区的大小。作为一种设计用于Linux的工具,它没有构建成处理与fdisk关联的多种分区类型,但是,它可以处理最常见的分区格式,包括:ext2、ext3、fat16、fat32、NTFS、ReiserFS、JFS、XFS、UFS、HFS以及Linux交换分区。

1
fdisk

不能处理 2T 以上的此案,因此不如直接使用

1
parted

命令

1
parted

命令主要有 2 种模式:命令行模式和交互模式

1.1 MBR与 GPT

1
MBR(Main Boot-loader Record)

主引导记录。最大支持 2T 的卷,且对分区有限制,只能 4 个主分区或 3 个主+一个逻辑分区。Windows 常用这种模式;

1
GPT(GUID Partition Table)

即 GUID 分区表,突破 4 个主分区的限制,每个磁盘最多支持 128 个分区,支持大于 2T 的分区。最大卷为 18EB

2. 命令详解

1
parted [选项]... [设备 [命令 [参数]...]...]

将带有“参数”的命令应用于“设备”。如果没有给出“命令”,则以交互模式运行

2.1 帮助

命令  
-h(–help) 显示此求助信息
-l(–list) 列出所有设别的分区信息
-i(–interactive) 在必要时,提示用户
-s(–script) 从不提示用户
-v(–version) 显示版本
 

2.2 操作

命令 描述
check minor-num 执行文件系统检查
cp from to 将文件系统复制到另一个分区
set FLAG STATE 对指定编号的分区设置分区标记 FLAG,FLAG可为 boot/hidden/raid/lvm 等,STATE 为 on/off
print {free|NUM|all} 显示分区表或指定编号的分区表
mkpart PART-TYPE START END 创建新分区,PART-TYPE支持primary, extended, logical, START-END 为分区起始和结束位置
rm NUM 删除指定编号 NUM 的分区
检查MINOR 对文件系统进行一个简单的检查
mklabel LABEL 为分区表创建磁盘标签
mkfs MINOR 文件系统类型 在 MINOR 创建类型为“文件系统类型”的文件系统
mkpart 分区类型 [文件系统类型] 起始点 终止点 创建一个分区
mkpartfs 分区类型 文件系统类型 起始点 终止点 创建一个带有文件系统的分区
move MINOR 起始点 终止点 移动编号为 MINOR 的分区
name MINOR 名称 将编号为 MINOR 的分区命名为“名称”(MAC & PC 支持)
rescue 起始点 终止点 挽救临近“起始点”、“终止点”的遗失的分区
resize MINOR 起始点 终止点 改变位于编号为 MINOR 的分区中文件系统的大小
rm MINOR 删除编号为 MINOR 的分区
select 设备 选择要编辑的设备
 

3. 实例

3.1 查询类

  1. 打印某磁盘分区表
    1
    parted -s /dev/sda print

    结果:


1
2
3
4
5
6
7
8
9
Model: AVAGO AVAGO (scsi)
Disk /dev/sda: 599GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt  # 分区表格式为 gpt
Disk Flags:

Number  Start   End    Size   File system  Name     标志
 1      1049kB  512MB  511MB               primary  bios_grub
 2      513MB   599GB  598GB  ext4         primary  启动

可知磁盘 sda 一共有 2 个分区。

注意
MBR支持的磁盘最大容量为2 TB,GPT最大支持的磁盘容量为18 EB,使用大于2 TB的磁盘容量,分区形式请采用GPT。当磁盘已经投入使用后,此时切换磁盘分区形式时,磁盘上的原有数据将会清除,因此在磁盘初始化时谨慎选择磁盘分区形式。

3.2 删除分区

1
parted -s /dev/sda rm 1

 删除分区 1

3.3 建立分区

  1. 指定分区格式

    1
    parted -s /dev/sda -- mklabel gpt

  2. 做 SWAP 分区

    1
    parted -s /dev/sda -- mkpart swap 2048s 2000

    这里的

    1
    2048s

    表示 2048个扇区(sector),而非 2048 字节等,后面的 2000 表示磁盘截止容量。表示创建了个 2G 的 swap 分区,这里的单位为 MB


1
2
3
4
5
6
7
8
Model: AVAGO AVAGO (scsi)
Disk /dev/sda: 299GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system     Name     标志
 1      1049kB  2000MB  1999MB  linux-swap(v1)  swap
 2      2001MB  299GB   297GB   ext4            primary  启动

1
2
3
    /sbin/parted -s /dev/sda -- mkpart swap   2048s  2000
    /sbin/parted -s /dev/sda -- mkpart primary   2001 2500
    /sbin/parted -s /dev/sda -- mkpart primary  2501 -1

当针对多个磁盘执行分区命令是,那么磁盘编号会依次递进,如 sda1, sda2 等。划分完后

1
partprobe

执行生效

  1. 格式化成指定文件类型
    1
    mkfs.ext4 -F -b 4096 -i 8192 -I 256 -m0 /dev/sda2

    对于大磁盘分配

    1
    inode

     节点会占用大量磁盘空间,因此一般会人工制定。

  • -i:指定多大磁盘空间分配一个 
    1
    inode

    ,这里设置为8192 字节/inode

  • -b: 指定 block 大小,默认 4096
  • -I: 指定 inode大小,默认 256
  • -m:指定保留 block 占用总数百分比,默认 5%
  • -F:强制格式化
  1. 挂载分区
    1
    parted -s /dev/sda set 3 boot on

    表示 将sda分区编号为 3 的分区设置为 boot 分区,状态为 on

评论已关闭。