gzipで圧縮されたdd画像を動的にマウントできますか?

gzipで圧縮されたdd画像を動的にマウントできますか?

システムを初めてバックアップするときにイメージバックアップを作成したいと思います。最初から、rsync増分バックアップを実行しました。

私の一般的なイメージのバックアップは次のとおりです。

  • 空のスペースをインストールしてゼロにします。

    dd if=/dev/zero of=temp.dd bs=1M
    rm temp.dd
    
  • ddドライブのマウント解除と圧縮

    dd if=/dev/hda conv=sync,noerror bs=64K | gzip -c  > /mnt/sda1/hda.ddimg.gz
    
  • システムを再び正常に戻すには、通常、次の手順を実行します。

    gzip -dc /mnt/sda1/hda.img.gz | dd of=/dev/hda conv=sync,noerror bs=64K
    

これは非常に簡単で、「フルドライブ」を保存できますが、実際には使用されているスペースだけを節約するだけです。

それが問題だ。上記の作業を行いましたが、きれいなシステムでは実行せず、rsyncバックアップ速度が十分に高速ではなく、アクセスしたいイメージにファイルがあるとします。実際にdd画像を解凍してドライブに保存するための記憶領域はありませんが、画像をマウントして個々のファイルをインポートしたいとします...これは可能ですか?

通常、人々は画像を圧縮しませんdd。これにより、次のようにイメージをインストールできます...-o loopしかし、私の場合はそうではありません...

インスタントで圧縮されたimgをインストールするための提案はありますか?

使用するAVFSgzファイルを「インストール」してから内部dd.imgをインストールすると動作します(そうではないと思いますが…確認が必要です…)?

ベストアンサー1

ディスクイメージが完全なディスクイメージであるか、それとも単純なパーティションかによって異なります。

パーティションのクリーニング

ディスクが正常に動作している場合、ディスクの空き領域をゼロにクリーンアップすると圧縮性能が向上します。ディスクに障害が発生した場合は、この手順をスキップしてください。

ディスク全体をイメージングする場合は、ディスク上のすべてのパーティションをクリーンアップする必要があります。

警告する:気をつけて、君もofそうしたい文書マウントされたパーティションではパーティション自体ではありません!

mkdir image_source
sudo mount /dev/sda1 image_source
dd if=/dev/zero of=image_source/wash.tmp bs=4M
rm image_source/wash.tmp
sudo umount image_source

パーティションイメージの作成

mkdir image
sudo dd if=/dev/sda1 of=image/sda1_backup.img bs=4M

sdaデバイス名、および1パーティション番号です。他のデバイスやパーティションをミラーリングするには、システムに合わせて調整してください。

フルディスクイメージの作成

mkdir image
sudo dd if=/dev/sda of=image/sda_backup.img bs=4M

sdaデバイス名はどこにありますか?他のデバイスを画像化するには、システムに合わせて調整します。

圧縮

圧縮されていない完全な画像を含む「squashfs」画像を作成します。

sudo apt-get install squashfs-tools
mksquashfs image squash.img

ストリーミングメディア圧縮

ディスク全体のサイズを占める別の一時ファイルを作成したくない場合は、イメージにストリーミングできますsquashfs

mkdir empty-dir
mksquashfs empty-dir squash.img -p 'sda_backup.img f 444 root root dd if=/dev/sda bs=4M'

圧縮パーティションイメージのマウント

  • まずsquashfs、イメージをマウントしてから、マウントされたイメージに保存されているパーティションイメージをマウントしますsquashfs
    mkdir squash_mount
    sudo mount squash.img squash_mount
    
  • これで、圧縮された画像をマウントしたので、画像自体(つまりsquashfs画像の内側)をマウントします。
    mkdir compressed_image
    sudo mount squash_mount/sda1_backup.img compressed_image
    
  • これで画像がにインストールされましたcompressed_image

編集:この時点でディスクddイメージをパーティションに復元するには(コンテンツを参照または読み取るためにマウントする代わりに)。squash_mount/sda1_backup.imgmount

圧縮されたフルディスクイメージのマウント

これには、というパッケージを使用する必要がありますkpartxkpartxディスクイメージ全体に個々のパーティションをマウントできます。

sudo apt-get install kpartx
  • まず、ディスクイメージ全体を含む圧縮パーティションをマウントします。

    mkdir compressed_image
    sudo mount squash.img compressed_image
    
  • これで、ディスクイメージ全体の各パーティションのデバイスを作成する必要があります。

    sudo kpartx -a compressed_image/sda_backup.img
    

    これにより、ディスクイメージ全体にパーティション用のデバイスが作成されます。/dev/mapper/loopNpPNループバックデバイスに割り当てられた番号。Pはパーティション番号です(例:  /dev/mapper/loop0p1この番号を見つけることができます。N出力からlosetup --list。最後に生成されたループバックデバイスは最大値を持つ必要があります。N 数字。

  • これで、ディスクイメージ全体に個々のパーティションをマウントできます。

    mkdir fulldisk_part1
    sudo mount /dev/mapper/loop0p1 fulldisk_part1
    

おすすめ記事