
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
このため、LVM は Linux によって認識されませんでした。困惑した私はバックアップを調べました。パーティション テーブルは両方とも 1 から始まっていたので、それが問題であるようには思えませんでした。しかし、単位をu
シリンダからセクターに変更すると (fdisk コマンド)、バックアップはセクター 13 から始まっているのに、新しいパーティションはセクター 128 から始まっていることに気付きました。
パーティションの先頭を修正すると、すべて正常に動作しました。
単位の変換の矛盾が理解できません。誰か理解するのを手伝ってくれませんか?
答え1
fdiskは古いツールであり、デフォルトで古いスタイルのシリンダスキーマを使用します。これは、偽物ハードディスクのファームウェアによって提供されるシリンダ/トラック/ヘッド データ。ほとんどのツール (LBA パーティションが存在するため) はこれとは何の関係もありません。
コマンドを使用してセクターベース モードに切り替えることができますu
。
パーティション テーブルは、おそらく別のツール (おそらくインストーラーの再パーティション機能) によって生成され、このセクター ベースのパーティションがデフォルトで使用されました。
Gpart、parted など、多くのツールがこれをより良く実行しますが、古い fdisk のような純粋でクリーンな精度を持つツールはありません。