使用sgdisk進行磁盤分區


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM