
ハード ドライブがセクターに 4096 バイトの物理ブロック サイズを使用している場合、4096 バイトの論理ブロック サイズを使用する方法について読んでいました。そこで、予備のハード ドライブに 1 つ作成しようとしたのですが、最後のプロンプトの警告が理解できません。以下を参照してください。
~$ cat /sys/class/block/sda/queue/physical_block_size
4096
~$ cat /sys/class/block/sda/queue/logical_block_size
512
server@Server:~$ sudo parted /dev/sda
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: ATA WDC WD30EFRX-68A (scsi)
Disk /dev/sda: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
(parted) mklabel gpt
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes
(parted) mkpart primary 4096B 3001GB
Warning: You requested a partition from 4096B to 3001GB.
The closest location we can manage is 17.4kB to 3001GB.
Is this still acceptable to you?
Yes/No? n
なぜ 4096 ブロック サイズを使用できないのですか?
答え1
物理ブロックと論理ブロック (セクター) のサイズは、どちらもディスク ハードウェアによって決定され、変更できません。現在、ほとんどのハード ディスクは 512 バイトの論理セクターを使用していますが、一部のハイエンド ディスクでは 4096 バイトの論理セクターが使用されていると聞きました。一部の外付けエンクロージャも、論理セクター サイズを 4096 バイトに再マップします。
512 バイトの論理セクターと 4096 バイトの物理セクターの組み合わせは、パーティションが 8 セクターの倍数に揃えられていない場合、パフォーマンスの問題を引き起こす可能性があります。今日のほとんどのパーティション ツールはこれを自動的に処理します。実際、通常は 2048 セクター (1 MiB) の倍数に揃えられます。これはもちろん 8 セクターの倍数なので、うまく機能します。(2048 セクターの揃え方は、8 より大きい 2 の累乗値に揃える必要がある多くの RAID および SSD 製品でも機能します。これが 2048 がデフォルトである理由です。) 古いツールは「シリンダ」境界に揃えていました。遠い昔 (1980 年代頃) には、シリンダの揃え方によってパフォーマンス上の利点が得られました。しかしその後、「シリンダ」は便利な概念になり、次に不便な概念になり、最後には深刻な問題になりました。Linux ツールはこれらの変更にかなりゆっくりと適応しましたが、今日ではすべての主要なプログラムがシリンダを無視し、デフォルトで 2048 セクターの揃え方を使用しています。
配置値を好きなように調整できます。エキスパートメニューに移動するには、とgdisk
入力し、配置値を変更するにはと入力する必要があります。このオプションはx
d
専門家'メニューを使用する理由: 自分が何をしているのかを完全に理解していないと、この機能を使用して問題を解決するよりも、問題を引き起こす可能性が高くなります。たとえあなたが専門家であっても、2048 セクター アラインメントから 8 セクター アラインメントに変更することで節約されるスペースはわずか (1MiB 未満) なので、私でさえこれをほとんど行いません。(私はgdisk
の著者です。)
答え2
Warning: You requested a partition from 4096B to 3001GB.
The closest location we can manage is 17.4kB to 3001GB.
Is this still acceptable to you?
これは、ドライブの先頭にある他の要素(パーティションスキームに関するメタデータなど)により、ディスクの先頭に最も近づくことができるのは17.4kBであることを示しています。しないこれを望んでいます。4KiB 境界から開始したいのです。したがって、キャンセルして再試行し、今度はそのポイントを超えた最初の 4096B 境界からパーティションを開始するように要求します (20480B を試してください)。
これを手動で実行する必要があるのは、低レベルのパーティションツールを使用しているためです。gpartedパーティションの開始を丸い数字に自動的に揃えます。最近では、このようなツールの多くは、パーティションを 1MiB (1024x1024 バイト) の倍数に揃えます。これにより、512 バイトと 4096 バイトの境界が適切に解決され、USB フラッシュ ドライブなどのブロックに揃えられるためです。
答え3
計算は単にparted
パーセントを単位として使用します。
mkpart primary 0% 100%
これにより、パーティションが整列されます。
(parted) print
Model: ATA SAMSUNG MZ7LM3T8 (scsi)
Disk /dev/sdb: 3841GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 3841GB 3841GB primary
答え4
GPTはディスクの最初の34セクターを保存するために必要です
- 最初のセクター(LBA 0)の保護MBR、
- 第2セクターのプライマリGPTヘッダー(LBA 1)
- 次の 32 セクター (LBA 2 - LBA 33) に最大 128 個のパーティション テーブル エントリ
これらのセクターは予約されており、他のデータはこれらのセクターに保存できず、どのセクターでもパーティションを開始することはできません。
34 セクター、サイズ 512B = 17408B = 17.4kB
そのため警告が表示されますThe closest location we can manage is 17.4kB to 3001GB
。
ここで続行しないでください。パーティションの配置が悪くなります。これは、受け取った他の回答ですでに説明されています。
ディスクの最後の 33 セクターも、プライマリ GPT ヘッダーとパーティション テーブル エントリのコピーを保持するために予約されていることに注意してください。