Debian 10のクリーンバージョンをインストールできるように、現在Debian 9サーバーOSパーティションをバックアップしたいと思います。
しかし、Debian 10をインストールした後、必要に応じてファイルを参照して復元できるように、古いOSイメージをマウントしたいと思います。
CloneZillaを使用すると思いましたが、生成されたイメージを直接インストールすることはできません。
答え1
e2image
使用中のセクタのみをコピーしながら、ext4ファイルシステムのイメージを生成するために使用できます。
e2image -ra /dev/sda1 /path/to/file.img
file.img
スパースファイルとして生成されるため、見かけのサイズはファイルシステムの容量を反映しますが、ファイルシステムで実際に使用されるスペースだけを占めます。ファイルシステムイメージのように直接マウントできます。
mount /path/to/file.img /path/to/mountpoint
e2image
以下を使用してQCOW2イメージを作成することもできます。
e2image -Qa /dev/sda1 /path/to/file.qcow2
これにより、以下を使用してインストールを続行できる圧縮ファイルが作成されますqemu-nbd
。
qemu-nbd --connect=/dev/nbd0 /path/to/file.qcow2
mount /dev/nbd0 /path/to/mountpoint
どちらの画像も圧縮できますが、これによりファイルを直接削除できなくなります。
答え2
ルートとして、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
backup.img
Stdoutはstdinに書き込まれたりstdinから読み取られたりしないため、他のシステムで使用するには、それをコピーscp
(NFSマウントなど)または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
に入っています。ただし、1つのパーティションではなくディスク全体のイメージをインポートすると、古いマシンを新しいマシンで仮想マシンとして実行できます。qemu-nbd
qemu-utils
もう一つのオプションは、2番目のディスクをマウントし、ここにDebian 10をインストールすることです。その後、新しいシステムのどこかに古いドライブを取り付けることができます。あるいは、Debian 9とDebian 10の間のデュアルブートも可能です。
個人的には、イメージのバックアップではなくファイルのコピー(またはまたはtar
使用rsync
など)を使用することをお勧めします。cp -a
より便利で、どこにいても簡単に抽出することができ、空または未使用のセクタをコピーするのにスペースや時間を無駄にしません。
イメージのバックアップは、(ほぼ常に)ファイルシステムをバックアップする最悪の方法です。
答え3
ext4 パーティションを次のようにマウントします。/whatever
mkisofs -o /somehwere_else/whatever.iso /whatever
今あなたはどんなに大きくてもとにかく.iso。当然、移動する場所のディスク領域に注意する必要があります。
その iso にアクセスするには、次のようにします。
mount -o loop /somewhere/whatever.iso /anywhereyoulike/mywhateveriso/
/whatever
これで、フォルダの下のすべてのアイテムにアクセスできます。読み取り専用下に/anywhwereyoulike/mywhateveriso/
パーティションがあるという事実ext4
は、コンテナこれはさまざまなファイルシステム形式。したがって、データがext4、xfs、またはbtrfsパーティションにあるかどうかは重要ではありません。なぜなら、この時点では、すでにそのデータにアクセスできるLinuxカーネルファイルシステムのサポートがあるからです。
次のように対応するisoコンテナにデータを入れると、MKISOFこれは非常に汎用性があります。 isofsは普遍的なので、ほぼどこでもデータにアクセスできます。コンピュータがcd / dvd [iso9660 / udf]を読み取ることができる場合は、everything.isoにアクセスできます。 .isoを作成すると、移植性が非常に高くなります。
問題になる可能性があるファイルシステムを使用またはcat
保存しますtar
。dd