fdisk創建MBR分區,sgdisk創建GPT分區
gdisk軟件包中包含sgdisk命令。 需要事先安裝gdisk
Debian/Ubuntu: apt-get install gdisk RedHat/CentOS: yum install gdisk OpenSuSE: yast install gdis
1、新建分區
命令: sgdisk --help | grep new
幫助: -n, --new=partnum:start:end create new partition
-n 創建一個分區, -n后的參數分別是: 分區號:起始地址:終止地址
分區號為0:代表使用第一個可用的分區號;
起始地址和終止地址為0:0代表第一個可用地址和最后一個可用地址;
起始地址和終止地址可以為+/-xxx:代表偏移量,+代表在起始地址后的xxx地址,-代表在終止地址前的xxx地址;
①一塊盤全部用於創建一個分區:
sgdisk -n 0:0:0 /dev/sdb
查看: lsblk | grep sdb
②創建一個從默認起始地址開始的10G的分區
sgdisk -n 2:0:+10G /dev/sdb
lsblk | grep sdb
③創建分區2,扇區從2048到10485760,type code為8300。
sgdisk -n 2:2048:10485760 -t 2:8300 -p /dev/sdb
例如一塊盤創建4個分區
#sgdisk -n 1:0:+5 /dev/sdb Creating new GPT entries. The operation has completed successfully. #sgdisk -n 2:0:+5 /dev/sdb The operation has completed successfully. #sgdisk -n 3:0:+5 /dev/sdb The operation has completed successfully. #sgdisk -n 4:0:0 /dev/sdb The operation has completed successfully. #lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─centos-root 253:0 0 44.2G 0 lvm / └─centos-swap 253:1 0 4.8G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 2.5K 0 part ├─sdb2 8:18 0 2.5K 0 part ├─sdb3 8:19 0 2.5K 0 part └─sdb4 8:20 0 2.5K 0 part
2、查看分區詳情
命令:sgdisk --help | grep info
幫助:-i, --info=partnum show detailed information on partition
-i 顯示某個分區詳情
①查看第一分區詳情
sgdisk -i 1 /dev/sdb
sgdisk --info=1 /dev/sdb
②查看所有GPT分區
sgdisk -p /dev/sdb
3、修改分區的 type code
命令:sgdisk --help | grep typecode
幫助:-t, --typecode=partnum:{hexcode|GUID} change partition type code
-t 修改某個分區的type code
①指定第一分區的type code
命令:sgdisk -t 1:0FC63DAF-8483-4772-8E79-3D69D8477DE4 /dev/sdb
查看:sgdisk -i 1 /dev/sdb
4、修改分區名
命令:sgdisk --help | grep change-name
幫助:-c, --change-name=partnum:name change partition's name
-c 修改某個分區的分區名
①指定第一分區的分區名
sgdisk -c 1:"test data" /dev/sdb
查看:sgdisk -i 1 /dev/sdb
實例如下
# sgdisk -n 0:0:+5G -t 0:ef02 -c 0:grub /dev/sdb Creating new GPT entries. Setting name! partNum is 0 REALLY setting name! The operation has completed successfully. # sgdisk -n 0:0:+5G -t 0:ea00 -c 0:boot /dev/sdb # sgdisk -n 0:0:+2G -t 0:8200 -c 0:swap /dev/sdb # sgdisk -n 0:0:0 -t 0:8300 -c 0:root /dev/sdb #lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 5G 0 part ├─sdb2 8:18 0 5G 0 part ├─sdb3 8:19 0 2G 0 part └─sdb4 8:20 0 8G 0 part #sgdisk -p /dev/sdb Disk /dev/sdb: 41943040 sectors, 20.0 GiB ...... Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 10487807 5.0 GiB EF02 grub 2 10487808 20973567 5.0 GiB EA00 boot 3 20973568 25167871 2.0 GiB 8200 swap 4 25167872 41943006 8.0 GiB 8300 root
5、清除分區數據
命令:sgdisk --help | grep zap
幫助:-z, --zap zap (destroy) GPT (but not MBR) data structures
①清除第一分區
sgdisk -z /dev/sdb1
6、刪除分區
命令:sgdisk --help | grep delete
幫助:-d, --delete=partnum delete a partition
-d 刪除一個分區
①刪除第一分區
sgdisk --delete=1 /dev/sdb sgdisk -d 1 /dev/sdb lsblk | grep sdb
②刪除所有分區
sgdisk --zap-all --clear --mbrtogpt /dev/sdb sgdisk --zap-all /dev/sdb
7、生產環境中,一般會用sgdisk將磁盤的分區方案寫入文件,備份存儲。
sgdisk --backup=/root/sda.partitiontable /dev/sda
sgdisk --backup=/root/sdb.partitiontable /dev/sdb
如果發生故障,可以使用sgdisk命令的--load-backup選項還原分區表。
從/dev/sda復制分區方案到/dev/sdb。
sgdisk -R /dev/sdb /dev/sda
新的硬盤上的GUID隨機化,以確保它們是唯一的。
sgdisk -G /dev/sdb
檢查兩個硬盤驅動器現在是否具有相同的分區。
sgdisk -p /dev/sda sgdisk -p /dev/sdb
8、列出分區類型代碼
#sgdisk --list-types 0700 Microsoft basic data 0c01 Microsoft reserved 2700 Windows RE 3000 ONIE boot 3001 ONIE config 4100 PowerPC PReP boot 4200 Windows LDM data 4201 Windows LDM metadata 7501 IBM GPFS 7f00 ChromeOS kernel 7f01 ChromeOS root 7f02 ChromeOS reserved 8200 Linux swap 8300 Linux filesystem 8301 Linux reserved 8302 Linux /home 8400 Intel Rapid Start 8e00 Linux LVM a500 FreeBSD disklabel a501 FreeBSD boot a502 FreeBSD swap a503 FreeBSD UFS a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID a580 Midnight BSD data a581 Midnight BSD boot a582 Midnight BSD swap a583 Midnight BSD UFS a584 Midnight BSD ZFS a585 Midnight BSD Vinum a800 Apple UFS a901 NetBSD swap a902 NetBSD FFS a903 NetBSD LFS a904 NetBSD concatenated a905 NetBSD encrypted a906 NetBSD RAID ab00 Apple boot af00 Apple HFS/HFS+ af01 Apple RAID af02 Apple RAID offline af03 Apple label af04 AppleTV recovery af05 Apple Core Storage be00 Solaris boot bf00 Solaris root bf01 Solaris /usr & Mac Z bf02 Solaris swap bf03 Solaris backup bf04 Solaris /var bf05 Solaris /home bf06 Solaris alternate se bf07 Solaris Reserved 1 bf08 Solaris Reserved 2 bf09 Solaris Reserved 3 bf0a Solaris Reserved 4 bf0b Solaris Reserved 5 c001 HP-UX data c002 HP-UX service ea00 Freedesktop $BOOT eb00 Haiku BFS ed00 Sony system partitio ed01 Lenovo system partit ef00 EFI System ef01 MBR partition scheme ef02 BIOS boot partition fb00 VMWare VMFS fb01 VMWare reserved fc00 VMWare kcore crash p fd00 Linux RAID
9、ceph中用sgdisk工具進行分區--------固定uuid
ceph通過uuid來區分你是osd分區還是journal分區之后,再決定數據放在哪里
ceph中創建journal分區和data分區:
sgdisk -n {part num}:0:+{part size}G {disk} -t {part num}:4fbd7e29-9d25-41b8-afd0-062c0ceff05d -c {part num}:”ceph data”
sgdisk -n {part num}:0:+{part size}G {disk} -t {part num}:45b0969e-9b03-4f30-b4c6-b4b80ceff106 -c {part num}:”ceph journal”
root@host1:~# sgdisk -n 1:0:+20G /dev/nvme0n1 -t 1:45b0969e-9b03-4f30-b4c6-b4b80ceff106 -c 1:"ceph journal" Creating new GPT entries. The operation has completed successfully. root@host1:~# sgdisk -n 2:0:+20G /dev/nvme0n1 -t 2:45b0969e-9b03-4f30-b4c6-b4b80ceff106 -c 2:"ceph journal" The operation has completed successfully. root@host1:~# sgdisk -n 3:0:+150G /dev/nvme0n1 -t 3:4fbd7e29-9d25-41b8-afd0-062c0ceff05d -c 3:"ceph data" The operation has completed successfully. root@host1:~# sgdisk -n 4:0:+150G /dev/nvme0n1 -t 4:4fbd7e29-9d25-41b8-afd0-062c0ceff05d -c 4:"ceph data" The operation has completed successfully. root@host1:~# ceph-disk list /dev/nvme0n1 : /dev/nvme0n1p1 ceph journal /dev/nvme0n1p2 ceph journal /dev/nvme0n1p3 ceph data, unprepared /dev/nvme0n1p4 ceph data, unprepared
10、格式化、掛載
# partprobe
將磁盤分區表變化信息通知內核,請求操作系統重新加載分區表
格式化
mkfs.xfs /dev/sdb1 mkfs.xfs /dev/sdc1 #SDBUUID=$(blkid | grep -E '/dev/sdb1'| awk '{print $2}' |awk -F"\"" '{print $2}') #echo $SDBUUID 5ed06824-e1da-475f-9a15-9a89bc5fed30 #SDCUUID=$(blkid | grep -E '/dev/sdc1'| awk '{print $2}' |awk -F"\"" '{print $2}')
使用UUID掛載
echo -e "${SDBUUID} /mnt/data xfs defaults 0 0" >> /etc/fstab echo -e "${SDCUUID} /mnt/ssd xfs defaults 0 0" >> /etc/fstab