現階斷多數電腦使用UEFI+GPT分區的方式,GPT英文全稱爲GUID Partition Table其含義爲“全局唯一標識磁盤分區表,是一個實體硬盤的分區表的結構佈局的標準,GPT標準的EFI標準取代了早期藍色巨人IBM發明的BIOS固件形式,有時候希望瞭解一下GPT的結構,就需要拿一個實例來探索,最直接的方法是直接獲取GPT分區表來慢慢學習,具體可以參考以下內容。
1. 在 Linux 系統下打開終端(ubuntu 快捷鍵 Ctrl + Alt + T)
在終端下執行如下命令
sudo dd if=/dev/sda of=gpt.bin bs=512 count=32
說明:
sudo
:提升權限以執行後面的命令
dd
:直接對磁盤進行操作的命令,用於磁盤備份或者還原
if
:參數,用於制定輸入源,可以是塊設備文件或者普通文件
os
:參數,用於制定複製的輸出文件,這裏輸出爲 gpt.bin 的文件
bs
:爲一次操作多少個字節,這裏時512個字節,即單個物理扇區的大小
count
:複製的次數,這裏指定了32次,即總的輸出文件的大小爲 512*32 = 16384 字節 = 16KB.
GPT的標準結構爲32個扇區,每個扇區是512字節,共計16KB
這裏將從磁盤地址爲 0x00 到 0x3ff 共 16384 個字節的gpt扇區內容完整複製了出來.
可以查看一下文件,正好是16KB = 16384B。
ls -l | grep gpt.bin
-rw-r--r-- 1 root root 16384 Jan 17 21:30 gpt.bin
接下來就可以使用 16 進制查看器來查看導出的GPT 分區表了.
hexdump -C gpt.bin | less
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001c0 01 00 ee fe ff ff 01 00 00 00 2f 60 38 3a 00 00 |........../`8:..|
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.|
00000200 45 46 49 20 50 41 52 54 00 00 01 00 5c 00 00 00 |EFI PART....\...|
00000210 40 94 94 ca 00 00 00 00 01 00 00 00 00 00 00 00 |@...............|
00000220 2f 60 38 3a 00 00 00 00 22 00 00 00 00 00 00 00 |/`8:....".......|
*號表示這段偏移量全部爲空
可以看到,開頭的是一個MBF保護分區,在地址 0x1fe 和 0x1ff 的位置分別是 55 AA 作爲第一個扇區的結束,和MBR分區上保持了一致性作爲兼容.
接下來是GPT頭,以UEFI PART作爲頭標識字符。更多的結構知識,可以慢慢藉助獲得的二進制GPT數據進行學習。
運行 sudo fdisk -l
可以查看到當前系統中所有磁盤的信息