SSDが2つあります。私のシステム(Ubuntu 12.04)が1つにインストールされており、別のシステムにクローンを作成したいと思います。問題は、システムが現在128GBドライブ上にあり、新しいドライブは120GBしかないことです。 dd
を使用して容量の小さいドライブにイメージを作成することは可能ですか?
あなたがしたいことをする方法:
gpartedを使用して、システムパーティションのサイズを120GB未満に変更します...できれば、可能であれば、かなり120GB未満にして、実際に以下にあることを確認します。ターゲットドライブの合計サイズ。
dd if=/dev/sda bs=8M of=/dev/sdb
、ソースドライブとターゲットドライブがそれぞれsdaとsdbであると仮定します。これは、通常のマルチユーザーログインで実行されているソースOSからではなく、セーフモードまたはライブブート環境から実行します。
[〜#〜]または[〜#〜]、ライブブート環境にネットワークアクセスがあり、ソースにユニバースがある場合:apt-get install pv ; pv < /dev/sda > /dev/sdb
。このコマンドとddコマンドの違いは、ここでの目的のために、これがP-R-O-G-R-E-S-SB-A-Rを与えることです... :)
しかし、あなたが本当にやりたいことをするためのおそらくより良い方法:
ターゲットドライブにUbuntuのベアインストールを実行します。 (新しいドライブにブートセクタを取得するためのより効率的な方法がありますが、ここでは「noob-friendly」を目指します。)
ライブブート環境から両方のドライブをマウントし、rsync -harv --progress /path/to/source/ /path/to/target/
。実行中のシステムではなく、ここで本当にライブブート環境になりたいことに注意してください。そうしないと、rsync中にファイルが変更/消失する可能性があることは言うまでもなく、devfs、procfsなどを処理する必要があります。
手順
可能であれば、ソースドライブ(128Gb)のバックアップを作成します。
Gparted USBを使用して起動し、それを使用してソースドライブ(128Gb)のパーティションをターゲットドライブサイズ(120Gb)未満に縮小します。フルドライブ、たとえばスペースがまったくない128Gbがある場合は、データファイルの一部を圧縮(Zip)するか、別の一時USBにコピーして120Gb(ターゲットドライブのサイズ)未満にする必要があります。 。そうしないと、ソースの内容をターゲットドライブに収めることができません。それは単に適合しません。
念のために余分な空き容量を残してください(ジオメトリの変換などのために1Gbかもしれません。私のドライブは1つのサイズですが、dd
とGpartedは異なるサイズで、わずかに異なります)。
ソースドライブのパーティションがターゲットドライブのサイズ未満に縮小されたら、dd
を実行できます。ソースをターゲットにコピーしていることを確認してください。そうしないと、非常に不幸になります。 (ソースが/ dev/sdaの場合、パーティションが120Gb未満の128Gbドライブであることを確認してください...ターゲットは/ dev/sdb新しい120Gbドライブです。)
dd if=/dev/sda of=/dev/sdb bs=4096 conv=notrunc,noerror
ここで、必要に応じて、Gpartedに戻り、ソースドライブで、パーティションのフルサイズを最大許容数まで拡張できます。
Gpartedは、パーティションを縮小するのに最適で、使用されているスペースを表示するため、使用されているスペースより上の任意のサイズに縮小できます。 Gpartedを使用してパーティションをコピーして貼り付けようとしましたが、機能しませんでした。 Gpartedを使用してパーティションを縮小し、dd
を使用してコピーを実行します。
終了すると、スペースが不足していると表示される場合があります。それは正常です。小さいディスクにコピーしています。ただし、小さいパーティションをコピーしているため、すべてのデータがコピーされます。 dd
はすべての128Gbを120Gbにコピーしようとし、エラーをスローします。心配しないでください。ドライブへの損傷はありません。次に、Gparted USBを取り外し、ソースドライブを取り外して、新しい120Gbディスクを起動し、内容を確認します。空き容量が残っている場合は、以前に圧縮したファイルを解凍できます。
各ドライブにはパーティションが1つしかない、またはあると想定しています。
dd
は、パーティションとファイルシステムを128GBを使用するように定義するデータを含め、物理的に1つのドライブにあるデータの各ブロックを別のドライブにコピーするため、希望どおりに使用できません。また、最初のドライブの最後に保存されているデータのブロックはすべて失われます。
コメントでOttavioCampanaによってほのめかされた1つの簡単な解決策:
cp -a
を使用して古いものを新しいものにコピーします次に、新しいドライブがメインドライブになる場合は、新しいドライブにブートローダー(GRUBなど)をインストールする必要があります。
ベニーヒルのコメントは、他の解決策を提供する回答とともに、同様の質問へのリンクを提供します。
私が考えることができる唯一の実行可能なオプションは、ext4パーティションのサイズを変更して、最後に119GBのデータと9GBの空き領域が続くようにすることです。次に、bs =およびcount =コマンドでDDを使用して、120GBのデータをドライブにコピーできます。 (空き領域が1 GB残っているので、サイズを変更できます(安全のためにこれを行っただけです))