デバイスからパーティションテーブル(MBRまたはGPT)を読み取るとき、論理ブロックサイズの単位で、または公称512バイトのセクタ数ですか?驚いたことに、私はグーグルで標準的な答えを見つけることができませんでした。パーティションテーブルは、論理ブロックサイズまたは512バイトを単位として使用しますか?
答えて
結論は、さらなる調査に基づいて反転された
ほぼすべてのドライブが512バイトの論理セクタを使用しているが、現代のパーティションテーブルは、LBAアドレスを使用し、LBA単位のサイズはデバイスの論理セクタサイズであります今日は4096バイトにもなります。
最終的に、ユニットサイズについての質問をメインのGNU parted(パーティションエディタ)メーリングリストに投稿し、this responseを受け取りました。具体的には
"LBAは常にドライブのブロックサイズを参照するため、ドライブのレポート内容に応じて、512または4096 またはその他の値になる可能性があります。
間違った以前の回答のバージョン:[[MBRとその他のパーティションテーブル]は、512バイトのブロック/論理セクタを参照しています。例えばディスクの物理ディスクのセクタサイズのhttps://en.wikipedia.org/wiki/Master_boot_record#PTE.]]
背景情報
のレポートを参照してください。特に、「デバイスを識別する」コマンド、基本的にATA-8仕様のコマンドを介して行われているようです。互換性の問題(よく説明されることが多い)は、I/O操作のアラインメントです。明らかに、ほとんどのドライブは512バイト整列を処理しますが、512バイト整列I/Oをまったくサポートしない "4kネイティブ"または "4kn"として宣伝されているドライブもありますが、パフォーマンス上の不利益があります。一般に物理4kセクターのドライブは、「アドバンストフォーマット」と呼ばれるものを使用しています。詳細情報が必要な場合は、検索に役立ちます。
この記事https://linuxconfig.org/linux-wd-ears-advanced-formatには、特にLinuxユーザーの場合、比較的明確な議論があります。 Linux上では、 "parted -l"コマンドは物理的および論理的なセクタサイズを報告し、partedはパーティションをAdvanced Formatデバイスに適切に配置する方法も知っています。
また、この資料では、http://www.seagate.com/tech-insights/advanced-format-4k-sector-hard-drives-master-ti/が問題を情報提供して安心できると感じるかもしれません。
- 1. Python - NumPy Arrayバイト単位の論理XOR演算
- 2. バイト配列のビット単位の論理和
- 3. 0b1111_1111のバイト単位のビット単位の演算は何をしますか?
- 4. c、ビット単位、論理式
- 5. Hadoopファイル単位のブロックサイズ
- 6. なぜブール論理をバイト単位で行うことができないのですか? C#(3.5)では
- 7. バインディングElementName。ビジュアルツリーまたは論理ツリーを使用しています
- 8. プログラムは論理アドレスを連続的に使用しますか?
- 9. Javaコードを使用したResultSetのサイズ(バイト単位)の取得
- 10. JavaScriptを使用したフォームのサイズ(バイト単位)?
- 11. C++はEOLのサイズ(バイト単位)を取得します
- 12. Memory_usedはバイト単位で測定されていますか?
- 13. HTMLタグを使用してJSPページにバイト単位でイメージを表示する方法はありますか?
- 14. MATLABでFINDと論理ORを使用しますか?
- 15. ギャラリーから画像(バイト単位)。また、データはバイト単位で。アンドロイドのFacebookブックアップロードの場合
- 16. mcryptとsha-512を使用して復号化を暗号化しますか?
- 17. マルチプロセスは単一の論理コアを使用しているようです
- 18. COBOLのビット単位論理演算子?
- 19. マイクロコントローラでのビット単位の論理
- 20. Paint.setStrokeWidth()はどの単位を使用しますか?
- 21. これはMySQLストアドプロシージャを論理的に使用していますか?
- 22. IVブロックサイズの問題C#でRijndaelManagedを使用しました。
- 23. itemscontrolを使用したScrollviewer論理スクロール
- 24. logiQLを使用した論理データモデリング
- 25. .erase(C++)を使用した論理エラー
- 26. デルファイは440バイトのCreateFileまたはWriteFileを使用します
- 27. ビット単位のサイクルを排除し、全体としてバイトを処理する方法は?
- 28. filter()とArgumentsオブジェクトを使用します。論理エラー?
- 29. ディレクトリの私は(バイト単位)のサイズを計算したいC++
- 30. 論理式を使用した索引は文字列に対して機能しますか?
あなたがリンクしているWikipediaの記事は、あなたの答えと矛盾しているようです:「アドレスは**セクター値**です...」セクターサイズ**は以前は512で固定されていました[emphasis mine]。また、「USB外付けドライブなどのセクタサイズが512バイト以外のディスクの場合、セクタサイズが4,096の場合、MBRを使用して定義できるパーティションのサイズが8倍になります」 –
はい、私が見つけたドキュメンテーションのほとんどは、物理ブロックサイズを考慮してパーティションテーブルを書き込む方法について話していますが、512以外の論理ブロックサイズを持つドライブで何をするべきかは決して言いません。その分野でこのような獣を見つけたことは一度もありませんでした。ストレージデバイスが512バイトの論理ブロックサイズを長期間提示すると思われますが、後でなくすぐにこれを解決することで将来的に自分のコードを保証したいと思います。 –
本当に、これはすべてかなり混乱していて、あなたのポイントは意味があります。 LBAアドレッシングの使用に基づいて、パーティションテーブルがユニットとして512バイトを使用することは、私にはまだ分かりません。記事https://en.wikipedia.org/wiki/Logical_block_addressingによれば、「2003年にATA-6規格で導入された現在の48ビットLBA方式は、最大128 PiBのアドレス指定が可能です」 http://t13.org/Documents/UploadedDocuments/project/d1410r3b-ATA-ATAPI-6.pdfの標準文書では、48ビットのアドレス指定では「約144ペタバイト」が許容されています。だから私は512バイトが単位だと再び信じています。 –