为什么 fdisk 和 lsblk 显示不同的分区大小?

问题描述

如果我们看到 fdisk 中 sdb2 的大小为 39.5GB,而 lsblk 输出中的大小为 1k。这可能是什么原因?

disk /dev/sdb: 300 GiB,322122547200 bytes,629145600 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: dos
disk identifier: 0x674589c1

Device     Boot   Start      End  Sectors  Size Id Type
/dev/sdb1  *       2048   999423   997376  487M 83 Linux
/dev/sdb2       1001470 83884031 82882562 39.5G  5 Extended
/dev/sdb5       1001472 83884031 82882560 39.5G 8e Linux LVM


root@ubuntu1604:~# lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0                         2:0    1    4K  0 disk
sda                         8:0    0  300G  0 disk
sdb                         8:16   0  300G  0 disk
├─sdb1                      8:17   0  487M  0 part /boot
├─sdb2                      8:18   0    1K  0 part
└─sdb5                      8:21   0 39.5G  0 part
  ├─ubuntu1604--vg-root   252:0    0 35.5G  0 lvm  /
  └─ubuntu1604--vg-swap_1 252:1    0    4G  0 lvm  [SWAP]
sr0                        11:0    1 1024M  0 rom
root@ubuntu1604:~#

解决方法

lsblk 以 IEC 单位(GiB、MiB 等)显示大小。千兆字节 (GiB) 大于千兆字节 (GB)
fdisk 以 SI(GB、MB 等)显示大小。