手元にない古いディスクから、partimage
を使用してwinxp.imgという名前のファイルを作成しました。ファイル名が示すように、パーティションにはWindows XPが含まれ、NTFSでフォーマットされています。
(ファイルには、ディスク全体ではなく、4.6 GiB NTFSパーティションのみが含まれています。)
物理ディスクに復元せずに、このイメージ内のファイルにアクセスするにはどうすればよいですか?
partimage documentation で述べたように1、
(...)画像からファイルを抽出することも不可能です。
しかし、絶望する必要はありません! Unix哲学の力( "Everything is a file")を使用すると、個別のパーティションにディスク領域を割り当てる必要なく、ファイルにアクセスできます。そしてここに方法があります:
..0。 partimage
で作成したイメージの名前はwinxp.img
であり、4.6 GiBのバックアップを保持するとしますNTFSパーティション。いいね。 Linuxシステムに4.6以上のGiB空き領域がありますか?完璧です!(そうでなければ、空き領域を確保してください。)partimage
の内容を復元できます実際のパーティションのふりをする「ダミー」ファイルにアーカイブします。
最初に、少なくとも4.6の空のファイルを作成する必要がありますGiB size:
dd if=/dev/zero of=dummy_disk.raw bs=1M count=4711
(count
パラメータの値は、4.6 GiBを超える値を達成するために1024*4.6
を切り上げたものです。正確な値を得るには、元のパーティションのバイトサイズを知る必要がありますが、十分な空き領域がある場合は、安全のため、代わりに5K
を使用してください。)
ここで、partimage
にNTFSファイルシステムをそのダミースペースに復元するように伝えます。何?通常のファイルをハードドライブパーティションとして扱うことを拒否しますか?問題ありません-Unixが "Everything is a file"と言った場合、/dev/sda1
などのディスクハンドルもファイルなので、この状況を元に戻す必要があります。 「ブロックデバイス」タイプのファイルをpartimage
に提供します。これがloopback device構成が便利な場所です(読みます)。
新しく作成したダミーディスクに接続されたループバックデバイスを作成します(ほとんどのシステムではroot権限が必要であるため、Sudo
が使用されます):
Sudo losetup -f --show dummy_disk.raw
コマンドは、/dev/loop0
のようなものを出力します。これは、実際のパーティションではなくpartimage
に指定する必要があるループバックデバイス名です。 losetup -a
を実行して、ループバックデバイスがファイルに接続されていることを確認することもできます。これはもちろんオプションです。
partimage
を実行して、アーカイブファイルシステムをrestoreダミーファイルに変換します(/dev/loop0
を前の手順で取得した名前に置き換えます)。
partimage restore /dev/loop0 winxp.img
正常に完了すると、dummy_disk.raw
ファイルに復元されたNTFSファイルシステムが含まれます。ファイルにアクセスするには、今すぐマウントする必要があります。
Mountダミー。これには空のディレクトリが必要です。 mkdir mountpoint
で作成するか、既存のものを使用できます。ファイルシステムをマウントするには、2つの代替方法があります。
Sudo mount -t ntfs-3g /dev/loop0 mountpoint
(/dev/loop0
を以前に取得したデバイス名に置き換えます)
[〜#〜]または[〜#〜]
Sudo mount -o loop -t ntfs-3g dummy_disk.raw mountpoint
前者の方法は既存のループバックデバイスを使用しますが、後者は自動的に新しいものを作成します(リソース使用量の違いは無視できます)。
それでおしまい!これで、アーカイブの内容にmountpoint
ディレクトリからアクセスできます。
サイドノート:ファイルシステムをアーカイブする将来のタスクについては、 FSAsarchiver などのより最新のツールの使用を検討してください。完璧だと言っているわけではありませんが、少なくともまだ維持されています。これら2つのツールの違いは FSArchiver wikiページ で確認できます。
1 ソフトウェアがメンテナンスされておらず、 ウェブサイトにそのドキュメントのページが「古い」と記載されている であるため、これは少し不正確な場合があります。
私が認識している「partimagefs」ソリューションがないため、これを直接行うことはできないと思います。 Fuseツールを確認することもできますが、もっと簡単な方法があると思います...
仮想ディスク(KVM、qemu、VirtualBoxを使用)を使用して、partimageでイメージを解凍できます。 rawフォーマットを使用する場合は、安全にマウントできます。
必要な手順を説明します ここ
NTFSボリュームが手元にないのですが、これは転送に役立つ場合があります。
mount -t ntfs -o loop,ro /path/to/winxp.img /mnt
どこ /mnt
は未使用のマウントポイントです。多くのディストリビューションには/mnt
利用可能ですが、必要に応じて簡単に別のものを作成できます。 ro
は「読み取り専用」を示します。これは、イメージを変更したくない場合に適したプランです。