GNU/Linux >> Linux の 問題 >  >> Ubuntu

バックアップディスクイメージを作成しようとすると、Ddは巨大なファイルを作成しますか?

私は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番目のオプション 手動で行う:

  1. バックアップ用に追加のパーティションを作成し、それを/ dev / sdXと呼びます(または、共通のデータパーティションを使用します)。

  2. バックアップする:

    • ライブUSBで起動
    • 実際のルートパーティションを/realにマウントします
    • 追加のパーティションを/extraにマウントします
    • (cd /real && tar cvf /extra/mybck.tar.gz)の行で大きなtarを実行します
  3. 復元するには

    • ライブUSBで起動
    • 実際のルートパーティションを/realにマウントします
    • 追加のパーティションを/extraにマウントします
    • (cd /real && tar xvpf /extra/mybck.tar.gz)の行で復元します 、pに注意してください メタデータを保持するオプション
    • /realのchroot
    • 使用しているgrubまたはブートローダーを更新します

tarに置き換えることができます 好みのアーカイバを使用して、ファイルの所有権/モードを尊重することを確認してください。 rsync 探索する価値があります。


Ubuntu
  1. Linux –フォーマットされたパーティションイメージファイルを最初から作成する方法は?

  2. Tar.gzを作成するときに余分なファイルを避けますか?

  3. イメージバックアップの作成(クローン作成)

  1. パーティションの作成時に認識されないディスク ラベル

  2. Linux でマルチパーティション ディスク イメージをマウントする方法は?

  3. ハード リンクの作成が役立つのはどのような場合ですか?

  1. .tar.gz ファイルの作成時にディレクトリを除外する

  2. btrfs を使用して ssd ディスクにスワップファイルを作成する方法

  3. Linux で Windows パーティションのイメージを作成する