私はCUDAを自分のシステムで動作させようとしていて、nvidiaドライバーをいじる過程で、ubuntuをひどく壊してしまい、ドライブパーティションを何度も再フォーマットする必要がありました。 ddを使用してすべてのツールやプログラムなどをインストールしたら、パーティションをバックアップしようとするほど、そのスティックに何度もぶつかりました。
しかし、私が走ったとき
sudo dd if=/dev/sda4 of=~/backup.img
最終的に、ドライブの容量が不足するというエラーが発生しました。パーティションが非常に大きく、いくつかの(小さな)プログラムと一緒に新しいubuntuをインストールしているだけなので、これは私には奇妙でした。
何が起こっているのかは、すでに書き込んだもののコピーを再帰的に書き込もうとしていることだと考えたので、代わりにファイルを別のパーティションに直接書き込もうとしました:
sudo dd if=/dev/sda4 of=/media/Ye\ Olde\ Data/ubuntu\ reinstall\ backup/backup.img
しかし、これには永遠に時間がかかり、ファイルのサイズが大きくなりすぎて、必要なデータだけを含めることができないと確信していたので、プロセスを中止しました。
何が起こっている? / mediaには他のパーティションがマウントされているため、他のパーティションは/ dev / sda4の一部として扱われますか? ddは、実際にファイルが含まれているバイトを無視して、パーティション全体をバイト単位でコピーするのですか?
そして、どのような場合でも、私がやろうとしていることを正しく行うにはどうすればよいですか?
ああ、それが重要な場合に備えて、これが私のディスク情報です:
sudo sfdisk -l /dev/sda
Disk /dev/sda: 62260 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/sda1 * 0+ 12- 13- 102400 7 HPFS/NTFS/exFAT
/dev/sda2 12+ 14602- 14590- 117187500 7 HPFS/NTFS/exFAT
/dev/sda3 29192+ 62260- 33069- 265622493+ 5 Extended
/dev/sda4 14602+ 29191- 14590- 117193728 83 Linux
/dev/sda5 61228+ 62260- 1032- 8287232 82 Linux swap / Solaris
/dev/sda6 29192+ 61227 32036- 257329138+ 7 HPFS/NTFS/exFAT
承認された回答:
dd
を使用してパーティションをコピーする場合 、出力ファイルはパーティションと同じ大きさになります。 dd
ディスクの物理的なコピーを実行しますが、空白や使用済みスペースについての知識はありません。
結果ファイルを圧縮すると、多くのスペースを節約できますが、空白スペースは非常によく圧縮されるためです(注意してください。これは計算上非常に 重い)。 dd
の出力を圧縮することもできます その場で、dd if=/dev/sdaX | gzip -c > compressed_file.gz
。
本当に重要:
さらに、あなたはできません (決して)
dd
を実行しない ライブ(マウントされた)
パーティションでは、記録されたデータは完全に一貫性がなく、
バックアップにはまったく役立ちません。考えてみてください。データのブロックは
継続的に割り当て、移動、削除されます。動くターゲットに長時間露光して
写真を撮るようなものです。
dd
を使用してパーティションをコピーするには 別のものから起動する必要があります–
ライブUSBなど。
手元の問題を解決するために私は何をしますか(注意、あなたが何をしているのかを知る必要があるので、一般的な指示だけです)
関連:同じコンピューター上の複数のDropboxアカウント?最初のオプション Norton Ghostを購入するか、オープンソースオプションであるpartimageとclonezillaを調べてください(自分でテストしたことはありません)。
2番目のオプション 手動で行う:
-
バックアップ用に追加のパーティションを作成し、それを/ dev / sdXと呼びます(または、共通のデータパーティションを使用します)。
-
バックアップする:
- ライブUSBで起動
- 実際のルートパーティションを/realにマウントします
- 追加のパーティションを/extraにマウントします
-
(cd /real && tar cvf /extra/mybck.tar.gz)
の行で大きなtarを実行します
-
復元するには
- ライブUSBで起動
- 実際のルートパーティションを/realにマウントします
- 追加のパーティションを/extraにマウントします
-
(cd /real && tar xvpf /extra/mybck.tar.gz)
の行で復元します 、p
に注意してください メタデータを保持するオプション - /realのchroot
- 使用しているgrubまたはブートローダーを更新します
tar
に置き換えることができます 好みのアーカイバを使用して、ファイルの所有権/モードを尊重することを確認してください。 rsync
探索する価値があります。