ディスクイメージ内のすべてのファイルにアクセスするには?

ディスクイメージ内のすべてのファイルにアクセスするには?

リモートサーバーをバックアップするために、ローカルコンピュータで次のコマンドを実行しました。ssh user@remote "dd if=/dev/vda | gzip -1 -" | dd of=image.gz

その後、解凍し、image.gzすべてがあることを確認するためにダブルクリックして(例:DiskImageMounter.appを介して)インストールを試みました。

解凍したイメージファイルのサイズはほぼ同じですが(サーバーのディスク容量は50GB)、イメージをマウントするとファイルエクスプローラに表示されるのは「UEFI」ディレクトリだけです。このディレクトリはサーバーのディスクよりはるかに小さく、含まれていません。たとえば、サーバーのホームディレクトリです。

MacOSのディスクユーティリティから得たものは次のとおりです(必要なのは「disk10s1」と仮定しますが、これまでは「UEFI」にのみアクセスできます)。

ディスクユーティリティGUI

ベストアンサー1

その後、image.gzを解凍し、すべてがあることを確認するためにダブルクリックして(たとえばDiskImageMounter.appを介して)マウントしようとしました。

現在持っているのはフルディスクバックアップです。あなたいいえただし、rwにマウントされている間にこれを使用すると、/dev/vda少なくともわずかに破損する可能性があります。 rwにも常駐すると、バックアップ中にファイルシステムが大幅に変更されるため、重大な損傷を受ける可能性がありimage.gzます。/dev/vda

つまり、データを含むファイルシステムを含めるだけでなく、パーティションテーブルから始まり、UEFIブートパーティションを含むように見えます。

ダブルクリックすると、DiskImageMounterは少なくともまともなパーティションを認識しているようです。

他のものは認識されても認識されない場合もあります。お使いのオペレーティングシステムには、対応するファイルシステムドライバがまったくない場合があります。

つまり、そのイメージのデータにアクセスするには、そのディスクを使用して仮想マシンをローカルに起動します。

もっと便利なバックアップが必要な場合は、単にバックアップしておくことをお勧めします。文書、いいえ生ディスクイメージ(実際にVM全体をコピーしたい場合を除き)、ファイルとその属性に加えてファイルシステムには何もないので、ファイルをバックアップするだけでは失われることはありません。

これは直接使用して非常に簡単に達成できます。

ssh user@remote tar cpf - --xattrs --acls --zstd / > backup.tar.zst

tarターゲットシステムで実行され、すべてのファイルをアーカイブしてすぐにzstd圧縮し(リモートシステムにインストールする必要があります)、pすべてのファイルプロパティを保存し、xattrs結果aclssshローカルシステムにパイプしてローカルシステムに直接書き込みます。ファイルbackup.tar.zst

mksquashfs後でダウンロードするには(インストールが必要)、リモート内のすべてのファイルの小さなアーカイブをリモート自体のファイル(バックアップ自体は含まれていません)に保存することもできます。

mksquashfs / backup-$(date --utc -Ihours).squashfs -wildcards -exclude '... backup-*.squashfs' -comp zstd

ここでの利点は、バックアップ自体に含まれるすべてのバックアップファイルを簡単に除外することができ、mksquashfs良い圧縮によって基本的に多くのスペースが節約され、同じファイルの内容が一度だけ保存されることです。

もう一つの素晴らしい側面は、これらのsquashfsアーカイブを直接(少なくともLinuxでは)マウントできることです。解凍する必要はありません。 MacOSではunzipをインストールできますsquashfs-tools考える(一度も試したことはありません)。をmacFUSE使用してインストールできますsquashfuse。楽しくお過ごしください!

おすすめ記事