最近、ディスクパーティションでdd操作を行いました。仮想マシンでディスクとして使用したいです。ディスクにパーティションテーブルがないためできません。
ループデバイス用のパーティションテーブルを持つことはできますか?どのように?
明らかに同様の問題がここにあります。すべてのデータをコピーせずにこれを行う方法を知っている人がいれば良いでしょう。
私がやった dd if=/dev/sda1 of=myfile
sdaディスクが大きすぎるため、sdaディスク全体をコピーできません。
答え1
元のドライブがまだ残っている場合は、イメージを削除して次のコマンドを使用して再作成します。
dd if=/dev/sda1 of=myfile bs=512 seek=2048
これにより、後でパーティションテーブルを追加するために最初に通常1MiBのスペースが残ります。
未使用のチャンクにすべてのジャンクを含むフルネイティブイメージファイルの代わりに、イメージにqcow2を使用することを検討することもできます。
答え2
このような?
sda1_size=$((`blkdev --getsize64 /dev/sda1`/1024/1024+1))
dd if=/dev/sda of=myfile bs=1M count=$(($sda1_size+1))
sda全体のddを起動しますが、最初のパーティションを上書きするまでのみコピーします。これは、数に+1MiBを追加することによって達成されます。これは、sda1がディスクの先頭にあると仮定します。 1MiBを超える間隔がある場合は、上に+1を追加してください。
数学に加えて、パーティションプログラムを見て、パーティションのMiBサイズを確認して、もう少し余裕を持って追加できます。