我们正在重新分区虚拟磁盘以增加 LVM 物理卷的大小。
这是我们最初的执行方式:
$ fdisk /dev/sdb
# delete partition
fdisk> d
? 1
# create new partition
fdisk> n
? p
? 1
first cylinder? [ENTER]
last cylinder? [ENTER]
# set LVM type
fdisk> t
? 8e
fdisk> w
这导致 Linux 无法识别 LVM。我感到很困惑,于是查看了备份。两个分区表都从 1 开始,所以这似乎不是问题所在。但是,如果我将单位(fdisk 命令u
)从磁柱更改为扇区,我注意到备份从扇区 13 开始,但新分区从扇区 128 开始。
当我们纠正了分区的开头后,一切都顺利了。
我无法理解单位转换的差异。有人能帮我理解一下吗?
答案1
fdisk 是一个旧工具,默认使用旧式柱面模式。这将根据伪造的硬盘固件提供的 cilinder/track/head 数据。大多数工具(自从 LBA 分区出现以来)都与它无关。
您可以使用命令切换到基于扇区的模式u
。
您的分区表可能是由另一个工具生成的(可能是由安装程序的重新分区功能生成的),该工具默认使用这种基于扇区的分区。
Gpart、parted 以及许多其他工具在这方面做得更好,尽管它们都没有旧 fdisk 那样纯粹、干净的精度。