Linux
為什麼我從 parted 和 fdisk 得到不同的輸出?
注意:我是一名 Linux 初學者,並試圖從以下書籍中學習:Linux 工作原理
執行
parted -l
我得到:Model: KBG30ZMV256G TOSHIBA (nvme) Disk /dev/nvme0n1: 256GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 538MB 537MB fat32 EFI System Partition boot, esp 2 538MB 256GB 256GB ext4
跑步時
fdisk-l
我得到:... Disk /dev/nvme0n1: 238,5 GiB, 256060514304 bytes, 500118192 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: BCB099F2-0FCD-4A90-83C2-A76C3E49682D Device Start End Sectors Size Type /dev/nvme0n1p1 2048 1050623 1048576 512M EFI System /dev/nvme0n1p2 1050624 500117503 499066880 238G Linux filesystem
執行時我注意到的另一件事
lsblk -a
:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT ... nvme0n1 259:0 0 238,5G 0 disk ├─nvme0n1p1 259:1 0 512M 0 part /boot/efi └─nvme0n1p2 259:2 0 238G 0 part /
我對使用 fdisk 和 parted 創建分區的區別有了基本的了解;但是,我很好奇:為什麼我在 fdisk 和 parted 之間得到不同的輸出(和分區大小)?
我的系統資訊正在執行
uname -a
:Linux 5.3.0-28-generic #30~18.04.1-Ubuntu SMP Fri Jan 17 06:14:09 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
輸出
parted
和輸出fdisk
有些不同,但並不矛盾。
parted
顯示以您在其輸出中看到的單位表示的值 (kB
,MB
,GB
)。fdisk
顯示以物理扇區表示的值,在您的情況下為 size512 bytes
。後面的值是嚴格的。它們的粒度是一個扇區。您不需要更好的粒度(例如以字節為單位),因為分區不能從扇區中間開始或包含小數扇區。您可以根據需要將值重新計算為字節。
以 kB 或 MB 等單位表示的值不僅是四捨五入的,而且存在歧義:請參閱1 MB 是否可以表示 1000000 字節、1024000 字節或 1048576 字節是真的嗎?由於這種模糊性,
256GB
(fromparted
) 和238G
(fromfdisk
) 的大小都是“正確的”,只是它們使用不同的單位。採取嚴格的大小
/dev/nvme0n1p2
,它是 499066880 個扇區。乘以扇區大小(512 字節)。結果是 255522242560。除以 10 9並對結果進行四捨五入。你得到256。現在取 255522242560,除以 1024 3並對結果進行四捨五入。你得到238。