一,parted的用途
parted是GNU發布的強大的分區工具,
parted命令可以划分單個分區大於2T的GPT格式的分區,也可以划分普通的MBR分區。
因為fdisk命令對於大於2T的分區無法划分,所以用fdisk無法看到parted划分的GPT格式的分區
說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest
對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/
說明:作者:劉宏締 郵箱: 371125307@qq.com
二,兩種分區表:MBR分區表/GPT分區表的比較
MBR分區表:(MBR含義:主引導記錄)
所支持的最大卷:2T (T: terabytes,1TB=1024GB)
對分區的設限:最多4個主分區或3個主分區加一個擴展分區。
GPT分區表:(GPT含義:GUID Partition Table,即GUID分區表)
支持最大卷:18EB,(E:exabytes,1EB=1024TB)
每個磁盤最多支持128個分區
所以如果要大於2TB的卷或分區就必須得用GPT分區表
三,parted命令所屬的包及安裝
1,所屬的包
[root@blog ~]# whereis parted parted: /usr/sbin/parted /usr/share/man/man8/parted.8.gz /usr/share/info/parted.info.gz [root@blog ~]# rpm -qf /usr/sbin/parted parted-3.2-36.el8.x86_64
2,如果找不到parted命令,可以用yum安裝
[root@blog ~]# yum install parted
四,查看parted的版本和幫助
1,查看版本
[root@blog ~]# parted --version parted (GNU parted) 3.2 Copyright (C) 2014 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by <http://git.debian.org/?p=parted/parted.git;a=blob_plain;f=AUTHORS>.
2,查看幫助
[root@blog ~]# parted --help
五,例子一:打印磁盤與分區列表:
# --list: lists partition layout on all block devices
列出所有塊設備上的分區安排
[root@blog ~]# parted --list Error: /dev/vdb: unrecognised disk label Model: Virtio Block Device (virtblk) Disk /dev/vdb: 537GB Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags: Model: Virtio Block Device (virtblk) Disk /dev/vda: 107GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 107GB 107GB primary xfs boot
說明:通過上面的命令輸出我們可以看到:
一共有兩塊磁盤: /dev/vdb: 537GB
/dev/vda 107GB
在生產環境中我們也是通用的做法:系統盤和數據盤分開,
避免系統對數據有影響
/dev/vda的Partition Table是msdos,
已經經過了分區,
可以看到它的分區表:File system也已格式化成了xfs文件系統
/dev/vdb的Partition Table是unknown
說明它還沒有做分區
六,例子二:用parted給/dev/vdb創建一個指定大小的分區
1,進入parted
[root@blog ~]# parted /dev/vdb
2,查看幫助
(parted) help 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) mkpart PART-TYPE [FS-TYPE] START END make a partition name NUMBER NAME name partition NUMBER as NAME 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 resizepart NUMBER END resize partition NUMBER rm NUMBER delete partition NUMBER select DEVICE choose the device to edit disk_set FLAG STATE change the FLAG on selected device disk_toggle [FLAG] toggle the state of FLAG on selected device set NUMBER FLAG STATE change the FLAG on partition NUMBER toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER unit UNIT set the default unit to UNIT version display the version number and copyright information of GNU Parted
3,打印分區的信息
(parted) print Error: /dev/vdb: unrecognised disk label Model: Virtio Block Device (virtblk) Disk /dev/vdb: 537GB Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags:
4,創建一個新的gpt類型的空磁盤分區表
# mklabel用來指定分區表的類型
(parted) mklabel gpt (parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 537GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags
已可以看到分區表的類型被指定為gpt
但還沒有分區
5,創建分區
#mkpart primary 創建一個主分區類型
(parted) mkpart primary 0 537GB Warning: The resulting partition is not properly aligned for best performance: 34s % 2048s != 0s Ignore/Cancel? C
上面提到分區沒有按照最優的性能對齊,我們選Cancel,
換一個方式指定分區大小
解決辦法:
#mkpart primary 0% 100% 使用百分比可以解決對齊的問題
(parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 537GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags (parted) mkpart primary 0% 100% (parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 537GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 537GB 537GB primary
檢查一下:
#align-check optimal 1 檢查分區的對齊情況,提示aligned則表示已對齊
(parted) align-check optimal 1 1 aligned
6,刪除一個分區
# rm 加分區的Number,用來刪除一個分區
(parted) rm 1 (parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 537GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags
刪除后可以見到分區已經不見了
7,檢查指定的分區是否對齊?
# align-check 用來檢查分區是否對齊,提示aligned表示已對齊
(parted) align-check optimal 1 1 aligned
8,退出
(parted) quit
Information: You may need to update /etc/fstab.
七,創建分區成功后,可以用fdisk -l 或parted --list查看:
1,用parted --list查看分區
[root@blog ~]# parted --list Model: Virtio Block Device (virtblk) Disk /dev/vdb: 537GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 537GB 537GB primary
...
2,用 fdisk -l查看分區
[root@blog ~]# fdisk -l ... Disk /dev/vdb: 500 GiB, 536870912000 bytes, 1048576000 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 46C9B0B7-0D78-43D2-9C2D-0059E02F9635 Device Start End Sectors Size Type /dev/vdb1 2048 1048573951 1048571904 500G Linux filesystem
八,分區創建成功后,還沒有做格式化,請查看這一篇文章了解xfs文件系統
九,查看centos的版本
[root@blog databak]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core)