ソースより小さいターゲットで dd を使用する

ソースより小さいターゲットで dd を使用する

笑う人もいるでしょうが…

私は、VirtualBox の VDI を 50 GB ではなく 50 TB にサイズ変更するというミスを犯しました。Vbox ではサイズを縮小する方法がないため (新しいスペースがそのままであっても)、正しいサイズである 50 G の新しい VDI を作成し、両方を Ubuntu VM にマウントしました。

ここで、「50TB」ソースから 50GB ターゲットに dd を実行しようと考えます。ターゲットの終了時に dd がエラーで停止することを期待しています。明らかに小さいためです。

私の仮定は正しいでしょうか、それとも dd は小さいターゲットを周期的に上書きするのでしょうか (これは望ましくありません)?

答え1

どのようなシステムをインストールしていますか? Linux をインストールしている場合は、すべてのファイルを TAR し、他のパーティションに移動することができます。

詳細はこちら:http://tuxilero.blogspot.cz/2014/02/linux-backup-your-linux-installation.html

dd に戻ります。ターゲットのスペースが不足すると、DD は停止するはずです。ただし、MBR が破損すると思います。

gparted をダウンロードしてパーティションのサイズを変更したほうが良いでしょうか?

私なら、異なるサイズのパーティションに対して dd を避けるようにします...

答え2

短い答え:
50 TB の VDI をそのままにして、その汎用性をお楽しみください。

長い回答と説明:
ddドライブがいっぱいになるとI/Oエラーが発生するまで、ドライブを少しずつクローンすることができます。また、 とbsオプションcountを使用してdd、これらのいずれかの操作を行うことで、一定量のデータだけをコピーすることもできます。望んだ結果が得られない

おそらく50TBのディスクは動的に拡張するディスクとして定義されており、新しい50GBも動的に拡張したことでしょう。ddこれらのドライブを使用すると、実際にそれらにアクセスします。つまり、VDIに未使用だがゼロではないデータブロックがある場合、両方のディスクが身体的に成長する最大50GBのサイズです。

これを回避するには、巨大なドライブから小さなドライブにファイルをコピーし、その後ブート セクターを復元する方がよいでしょう。

しかし、仮想 50 TB ハード ドライブは仮想的にそのサイズであるだけなので、これさえも必要ないかもしれません。実際に 50 GB を超えるデータをそこに保存した後でのみ、50 GB ドライブよりも多くの物理スペースが必要になります。その場合、ディスクを拡張しなくても引き続き使用できるのは便利であることがわかるでしょう。

関連情報