web-dev-qa-db-ja.com

partimageを使用して作成されたNTFSイメージファイルをマウントする

手元にない古いディスクから、partimageを使用してwinxp.imgという名前のファイルを作成しました。ファイル名が示すように、パーティションにはWindows XPが含まれ、NTFSでフォーマットされています。

(ファイルには、ディスク全体ではなく、4.6 GiB NTFSパーティションのみが含まれています。)

物理ディスクに復元せずに、このイメージ内のファイルにアクセスするにはどうすればよいですか?

4
Alois Mahdal

partimage documentation で述べたように1

(...)画像からファイルを抽出することも不可能です。

しかし、絶望する必要はありません! Unix哲学の力( "Everything is a file")を使用すると、個別のパーティションにディスク領域を割り当てる必要なく、ファイルにアクセスできます。そしてここに方法があります:

..0。 partimageで作成したイメージの名前はwinxp.imgであり、4.6 GiBのバックアップを保持するとしますNTFSパーティション。いいね。 Linuxシステムに4.6以上のGiB空き領域がありますか?完璧です!(そうでなければ、空き領域を確保してください。)partimageの内容を復元できます実際のパーティションのふりをする「ダミー」ファイルにアーカイブします。

  1. 最初に、少なくとも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構成が便利な場所です(読みます)。

  2. 新しく作成したダミーディスクに接続されたループバックデバイスを作成します(ほとんどのシステムではroot権限が必要であるため、Sudoが使用されます):

    Sudo losetup -f --show dummy_disk.raw
    

    コマンドは、/dev/loop0のようなものを出力します。これは、実際のパーティションではなくpartimageに指定する必要があるループバックデバイス名です。 losetup -aを実行して、ループバックデバイスがファイルに接続されていることを確認することもできます。これはもちろんオプションです。

  3. partimageを実行して、アーカイブファイルシステムをrestoreダミーファイルに変換します(/dev/loop0を前の手順で取得した名前に置き換えます)。

    partimage restore /dev/loop0 winxp.img
    

    正常に完了すると、dummy_disk.rawファイルに復元されたNTFSファイルシステムが含まれます。ファイルにアクセスするには、今すぐマウントする必要があります。

  4. 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 ソフトウェアがメンテナンスされておらず、 ウェブサイトにそのドキュメントのページが「古い」と記載されている であるため、これは少し不正確な場合があります。

4
rozcietrzewiacz

私が認識している「partimagefs」ソリューションがないため、これを直接行うことはできないと思います。 Fuseツールを確認することもできますが、もっと簡単な方法があると思います...

仮想ディスク(KVM、qemu、VirtualBoxを使用)を使用して、partimageでイメージを解凍できます。 rawフォーマットを使用する場合は、安全にマウントできます。

必要な手順を説明します ここ

0
unode

NTFSボリュームが手元にないのですが、これは転送に役立つ場合があります。

mount -t ntfs -o loop,ro /path/to/winxp.img /mnt

どこ /mntは未使用のマウントポイントです。多くのディストリビューションには/mnt利用可能ですが、必要に応じて簡単に別のものを作成できます。 roは「読み取り専用」を示します。これは、イメージを変更したくない場合に適したプランです。

0
jippie