パーティションが63ではなくセクター2048で始まるのはなぜですか?


54

2つのドライブを同じパーティションに分割し、それぞれで2つのRAIDパーティションを実行しました。

1人が死亡し、同じモデルの保証期間中に交換しました。

パーティションを作成する際、最初のパーティションは、以前の63個ではなく、2048個のセクタでのみ開始できます。ドライブのジオメトリは、以前のものと残りのものとは異なります。(より少ないヘッド/より多くのシリンダー)

古いドライブ:

$ sudo fdisk -c -u -l /dev/sdb 

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 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
Disk identifier: 0x000aa189

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          63   174080339    87040138+  83  Linux
/dev/sdb2       174080340   182482334     4200997+  82  Linux swap / Solaris
/dev/sdb3       182482335  3907024064  1862270865   fd  Linux raid autodetect

保証から受け取った再生ドライブ:

$ sudo fdisk -c -u -l /dev/sda

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
81 heads, 63 sectors/track, 765633 cylinders, total 3907029168 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
Disk identifier: 0x000d0b5d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048  ...

何故ですか?


1
出力は、これがAdvanced Format 4Kドライブであることを示していませんSector size (logical/physical): 512 bytes / 512 bytes
bwDraco

1
なぜこれがダウン投票されたのですか?
bwDraco

1
私は下票に同意せず、軌道調整の誤解にも気づかず、JdeBPの情報は有効であり、有効な質問に関連しています。
ギャレット


新しいディスクドライブを使用する場合、デフォルトで開始セクターとして使用するGPTをお勧め2048します。古いディスクはおそらく古いユーティリティでフォーマットされ、非GPTパーティションテーブル形式を使用しています。新しい「Advanced Format 4K」ディスクをパーティション分割するには、GPT fdiskUtilitiesを使用します。RAIDの場合は、タイプを使用しfd00 Linux RAID、パーティションに適切なラベルを付けてください。
TrinitronX

回答:


44

古いディスクはLinuxなどの古いユーティリティでパーティション分割されていたため、fdisk報告された完全に偽のディスクジオメトリを使用してトラックのアライメントを無用に実装し、新しいディスクは(デフォルト)代わりに1MiB境界に揃えます。

参考文献


7
言い換えると、LBAセクター番号63は、シリンダー0、ヘッド1、CHS形式のセクター1に対応します。これは、MBR形式で使用できる最初のセクターです。ただし、63という数字は8で割り切れないため、4Kドライブで問題が発生するため、最新のツールの中には、最初のパーティションを2048で開始するものがあり、将来のGPT互換性も提供されます。
-billc.cn

8
コメント、特に他の人が自分の口に完全なエラーを入れようとするコメントをマークダウンする方法に憧れることがあります。それらの「他の言葉」は間違っているので、私が書いものではないのです。MBRパーティションテーブルを持つプライマリパーティションに(複数の人が持っているように)使用できる最初のセクターはLB#2であり、IBMのLVMなどとの互換性を必要としない場合はLB#1です。また、1MiBのアライメントは、EFIパーティションテーブルの互換性とは関係ありません
JdeBP

最初の部分については間違いを犯したと思いますが、2番目の部分については、2048から始めると、将来ドライブをGPTに変換するのに問題がないことを意味します。 。
-billc.cn

5
それはまだ間違っています。とにかく問題はありません。算術を行います。(偽の)トラック境界に対する元のアライメントでさえ、十分なスペースを提供します。これらの60個の512バイトセクターは、240個のEFIパーティションテーブルエントリを保持できます。繰り返しますが、1MiBのアライメントは、EFIパーティションテーブルの互換性とは関係ありません
JdeBP

4
fdisk「古いユーティリティ」ではなく、積極的にメンテナンスされています。-c=dos(デフォルトではオフになっています!)経由で「偽のディスクジオメトリ」を使用しないでください。CHSはディスコとして死んでいるので、マンページはそれを行うことに対して明示的に警告します。JdBPのページへのリンクは機能していませんが、1MiB(2048セクター)アライメントの履歴は、WikipediaエントリLogical Disk Managerにあります。Windows Vistaのワート:「1-MiBアライメント境界を使用すると、Vista Disk Mgtでパーティションテーブルをより安全に編集できます。」
デビッドトンホーファー

36
fdisk -c=dos

パーティションの作成時に古いDOSパーティションテーブルを使用しました。新しいバージョンのfdiskdosは、デフォルトでdos互換モードを使用しません。


3
受け入れられた答えにはいくつかの貴重な情報がありますが、この答えには問題を解決するために必要な宝石が含まれています。
jcbwlkr

fdiskは、私は、この引数なしのセクター2048から始まるパーティションを再作成することはできないだろう-私が得たFirst sector (3072-314572799, default 3072):
tomfanning

5
これは、パーティションのサイズを変更する場合に重要です。fdiskでは、パーティションを削除して再作成することを意味します。同じ場所からパーティションを開始する必要があります。
mcr

もう動作しませんfdisk from util-linux 2.28:/
akostadinov

1
fdisk -c=dos -u=cylinders /dev/sdb要点で見つけた-gist.github.com/jkullick/febf46756435f1fa99dc56f00782de03
akostadinov

7

ここにコメントを追加すると役に立つかもしれません。LUKSパーティションの場合、同じ場所でパーティションを削除して再作成すると言われていますが、を呼び出す前に大きくしcryptsetup resizeます。しかし、ずっと前にパーティションを作成したときは、セクター63から始まります。fdiskを使用すると、パーティションが間違ったオフセットで再作成され、パーティションが失われます。

fdisk -c=dos問題なくセクター63からパーティションを作成できるようにすることで、それを回復することができました。


1

そもそも63で始まった理由はわかりませんが、fdiskによると、セクターサイズは512です。

したがって、パーティション、したがってクラスターを整列させる場合、開始オフセットは512で割り切れるはずです。最近では2048がかなり一般的です。

セクターの位置がずれている場合は、GPartを使用してパーティションを63に戻すことができます。

編集:

おっと。RAIDがあることを知りませんでした。RAIDとストライプサイズをポストする必要があります。


1
63はバイナリで111111です。PCのBIOSでは、セクター番号は6ビットでエンコードされていたため、トラックあたりの最大数は111111(63)セクターになりました。この最大値は、引き続き仮想CHSジオメトリに使用されます。
クリスリード

1

実際の質問には答えられたと思いますが、63対2048の最初のシリンダーの問題に対する簡単な修正は次のようなものです。

sfdisk -d /dev/sdb | sfdisk --force /dev/sda

(同じサイズのドライブがあると確信している場合)

その後、さまざまなパーティションをRAIDに追加し直すと、63/2048の開始シリンダーの違いにより最終的なパーティションサイズが失われるため、パーティションが同じサイズではないという苦情を受けます。


あなたはそれが何をするのか、ソースデスティネーションを説明する必要がありますか?
パウエルシオック

0

1 MiB(2048 * 512バイトのエミュレートブロックサイズ)の選択は、さまざまなハードウェアストレージ構成に最適です。通常、ファイルシステムのデータ構造はパーティションの開始点に合わせられるため、これはストレージの読み取り/書き込み速度を最大化するために重要です。

例えば:

RAIDは、サイズが16〜256 KiBのデータストライプを使用する場合があります。1 MiBはこれの整数倍であるため、1 MiBでパーティションを開始すると、基盤となるRAIDモデルと互換性があります。

SSDの消去ブロックサイズは通常、128〜256 NANDページで、ドライブによっては256 KiBまたは512 KiBになります。したがって、ここでも、1 MiBでパーティションを開始することは、基盤となるSSDストレージの特性と互換性があります。

Advance Format 512e回転HDDの物理ブロックサイズは4 KiBであり、やはり1 MiBはこの整数倍です(かなり大きいとはいえ)。

そのため、AFドライブがあり、GPTとしてパーティション分割している場合、LBAブロック40(HDDの各物理ブロック内の8つの論理ブロックの整数倍)から始まる最初のパーティションに完全に満足するかもしれません。ワールドストレージは、LBAブロック2048(1 MiB)から開始するだけで失われます。これは、ほとんどすべてのハードウェア構成に適しているため、ソフトウェアをデフォルトにパーティション分割するためのより柔軟な値です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.