web-dev-qa-db-ja.com

512Bから4KiB(Advanced Format)ddを使用したHDDクローン作成

ddを使用して既存のセクターあたり512バイトのHDD(特定のパーティションではなくディスク全体)を最新のセクターあたり4キビバイトのAdvanced Formatドライブに複製するためのベストプラクティスは何ですか?どのオプションを使用する必要がありますか?それらはまったく重要ですか?

1

それはどのような高度なフォーマットのドライブですか? 「AF」ロゴ(ドライブがインターフェイスに512バイトのセクターを表示することを意味します。つまり、実際には「512e」ドライブです)または「4Kn」ロゴがありますか?

前者の場合、特別なことをする必要はありません。適切なパーティションの配置は良い考えですが、レガシードライブと同じように扱うことができます(パフォーマンスに大きな違いをもたらす可能性があります)。

後者の場合、ファイルシステムのメタデータを変更する必要があるため、できません「変更せずに」コピーします。たとえば、512eの「4GB」ドライブのLBNは0〜約7,812,500,000ですが、真の4Kネイティブの「4GBドライブ」のLBNは最大で約976,562,500になります。したがって、セクターあたり512バイトのドライブのメタデータ内のLBNは、4Knドライブでは意味がありません。

1
Jamie Hanrahan

さて、私が自分でしたことを答えとして投稿する価値があると思います。

次のコマンドを使用して、ドライブのクローンを作成しました。

dd if=/dev/sda of=/dev/sdb ibs=512 obs=4096

ここで、最初のオプションibsddに、一度に512バイトをソースから読み取り、obsに4096バイトを一度に宛先に書き込むように指示します。 。

手順全体は問題なく進みました。それが完了した後、私は以前のドライブを切断し、新しいドライブから起動しようとしました。起動し、すべてのパーティションが正しく表示されました。

位置合わせがこのAdvancedFormatドライブに適しているかどうかを確認するために、WesternDigitalのWebサイトからWD Alignツールをダウンロードしました。すべてが正しく位置合わせされていることが示されています。これは、スクリーンショットです。

enter image description here

ただし、追加のオプションがこれに役立つかどうかはわかりません。

1

512eドライブを使用しているため、ddの例は不要です。 dd if =/dev/sda of =/dev/sdb bs = 2M(私がよく使うもの)を使用することもできます。本当の問題は512nから4Knになり、基本的にはカットアンドドライではありません。ほとんどの場合、ブートローダーの再構成などに加えて、パーティションを再作成してcp-aすべてを元に戻すのがおそらく最善です。

最小限の非破壊的な再パーティション化で512nと4Knの間を行き来できるかどうかは、パーティショニングに8の512倍数(512 * 8 = 4096)を使用/使用したかどうかによって異なります。

例:

512n partition under gdisk:

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            4095   1024.0 KiB  EF02  linux-bios
   2            4096        41943006   20.0 GiB    8E00  linux-lvm

4Kn translation after dd'ing (from 512 to 4096 physical and logical),
then re-repartitioning:

Number  Start (sector)    End (sector)  Size       Code  Name
   1             256             511   1024.0 KiB  EF02  linux-bios
   2             512        5242875.75 20.0 GiB    8E00  linux-lvm

おっと!小数点(41943006 + 1/8)に注意してください。それはうまくいきません。

唯一の方法は、新しいドライブに20.0 GiBを超え、4knセクター(5242875 + 1)を追加してから、基になるファイルシステムやlvmなどのサイズを変更する場合です。

ここで、8の倍数を使用して512nドライブをパーティション分割した場合、上記の最初の(512n)パーティションテーブルは次のようになります。

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            4095   1024.0 KiB  EF02  linux-bios
   2            4096        41942999   20.0 GiB    8E00  linux-lvm

And the proper 4Kn translation would look like this:

Number  Start (sector)    End (sector)  Size       Code  Name
   1             256             511   1024.0 KiB  EF02  linux-bios
   2             512         5242875   20.0 GiB    8E00  linux-lvm

(41942999 + 1)/ 8 = 5242875

話の教訓:将来4Knドライブを使用する予定がある場合は、8の倍数を使用して512nドライブをパーティション分割し、それに応じてパーティションテーブルを再作成する限り問題ありません。

注:ディスク識別子だけでなく、パーティションGUIDについても、可能なGUIDクローン作成を忘れないでください。

0
rayzinpwr