web-dev-qa-db-ja.com

パーティション(ext4)のイメージを作成し、後でマウントしてファイルを参照/復元するにはどうすればよいですか?

Debian 10のクリーンバージョンをインストールできるように、現在のDebian 9サーバーOSパーティションをバックアップしたいと思います。

ただし、Debian 10をインストールした後、必要に応じてファイルを参照および復元できるように、古いOSイメージをマウントしたいと思います。

CloneZillaを使用すると思いましたが、作成したイメージを直接マウントすることはできません。

2
SofaKng

Rootとして、パーティションを別のパーティションにcat付けます:cat /dev/sdXn > /dev/sdYi

またはファイルへ:cat /dev/sdXn > backup.img

または、別のマシンのファイルまたはパーティション:cat /dev/sdXn | ssh user@Host 'cat > backup.img'

ddの代わりにcatを使用することもできますが、使用する正当な理由はありません。

dd if=/dev/sdXn of=backup.img

または、コピー中にプログレスバーが必要な場合や、コピー中に使用されるバッファリングの量を制御する場合は、pvを使用できます。

pv /dev/sdXn > backup.img

パーティションに読み取りエラーがある場合は、ddrescueの代わりにcatを使用できます。

ddrescue /dev/sdXn /dev/sdYi

または

ddrescue /dev/sdXn backup.img

ddrescueはstdoutへの書き込み(またはstdinからの読み取り)を行わないため、必要な場合はbackup.img別のマシンでは、後でそれを(たとえばscpを使用して)コピーするか、NFSマウントに書き込む必要があります。

または、コメントでuser1133275によって言及されているように、 プロセス置換 を使用できます。

ddrescue /dev/sdXn >(ssh user@Host 'cat > backup.img')

最後に、圧縮されたマウント可能なファイルシステムが必要な場合は、qemu-img

qemu-img convert -c -O qcow2 /dev/sdXn backup.qcow2

マウントするには:

qemu-nbd --connect=/dev/nbd0 /path/to/backup.qcow2
mount /dev/nbd0 /mnt

両方とも qemu-imgおよびqemu-nbdqemu-utils パッケージ。ところで、単にパーティションではなくディスク全体のイメージを取得した場合、古いシステムをVMとして新しいシステムで実行できます。


もう1つの方法は、2番目のディスクをインストールし、その上にDebian 10をインストールすることです。次に、古いシステムを新しいシステムのどこかにマウントします。あるいは、Debian 9とDebian 10の間のデュアルブートです。


個人的には、ファイルのコピーをお勧めします(例:tarまたはrsyncまたはcp -a)イメージバックアップではなく。より便利で、どこにでも簡単に抽出でき、空きスペースや未使用のセクターをコピーするスペースや時間を無駄にしません。

イメージバックアップは、(ほとんどの場合)ファイルシステムをバックアップするための最悪の方法です。

3
cas

e2imageは、使用中のセクターのみをコピーしながら、ext4ファイルシステムのイメージを作成するために使用できます。

e2image -ra /dev/sda1 /path/to/file.img

file.imgはスパースファイルとして作成されるため、見かけのサイズがファイルシステムの容量を反映していても、ファイルシステムで実際に使用されるスペースのみを占有します。

e2imageを使用してQCOW2イメージを生成することもできます。

e2image -Qa /dev/sda1 /path/to/file.qcow2

これにより、マウント可能なコンパクトファイルが作成されます。

どちらのイメージも圧縮できますが、直接マウントできないファイルになります。

2
Stephen Kitt

ext4パーティションを/whateverとしてマウントする

mkisofs -o    /somehwere_else/whatever.iso    /whatever

今、あなたはどんなに大きなwhatever.isoを持っています。移動先のディスク容量に注意する必要があります。

そのISOにアクセスするには、あなたは単に行うでしょう

mount -o loop /somewhere/whatever.iso   /anywhereyoulike/mywhateveriso/

フォルダ/whateverの下にあったものすべてにアクセスできるようになります読み取り専用/anywhwereyoulike/mywhateveriso/の下

ext4パーティションがあるという事実は、そのデータをコンテナにダンプするため、ほとんど関係ありません。これは別のファイルシステム形式になります。そのため、データがext4、xfs、btrfsパーティションのいずれであるかは問題ではありません。その時点では、最初にアクセスするLinuxカーネルファイルシステムのサポートがすでにあるためです。

かなり普遍的なmkisofsを介してそのISOコンテナーにデータを格納すると、isofsは普遍的なため、ほぼどこからでもそのデータにアクセスできます... コンピューターがCDを読み取れる場合/ dvd [iso9660/udf]すると、whatever.isoにアクセスできるようになります。 .isoを実行すると、移植性が非常に高くなります。

catまたはtarまたはddを使用すると、問題のあるファイルシステムが保持されます

0
ron