Raw形式でのディスクイメージのマウント


11

次のコマンドを使用してRaw(dd)形式でディスクイメージをマウントしようとしているとき

mount  nps-2010-emails.dd /media/manu/

次のエラーメッセージが表示されます

mount: you must specify the filesystem type

使用-tすることでファイルシステムを指定できることを知っていますが、RAW(dd)ファイルの用語は何ですか。これは、mountコマンドに引数として渡すことができます。このファイルシステムをマウントする私の方法が間違っている場合、同じことをするのを手伝ってください。

$ file -s nps-2010-emails.dd
nps-2010-emails.dd: x86 boot sector; 
partition 1: ID=0xb, starthead 254, startsector 1, 20479 sectors, extended partition table (last)\011, code offset 0x0

$ fdisk -l nps-2010-emails.dd
Disk nps-2010-emails.dd: 10 MB, 10485760 bytes
255 heads, 63 sectors/track, 1 cylinders, total 20480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

             Device Boot      Start         End      Blocks   Id  System
nps-2010-emails.dd1               1       20479       10239+   b  W95 FAT32 

コマンドの出力をfile -s nps-2010-emails.dd投稿に追加してください。
スチールドライバー14年

私はあなたのプロフィールを見て、他の質問を見ました。おそらく、このブログ投稿が役に立つかもしれません。
ムル

@steeldriver出力が追加されました...
spaceman_spiff

マウントの簡単なオプション-利用可能/ここで説明: askubuntu.com/questions/69363/…–
Hannu

回答:


16

http://major.io/2010/12/14/mounting-a-raw-partition-file-made-with-dd-or-dd_rescue-in-linux/から、オフセットを使用する提案があります。最初にオフセットを取得してからfdisk(8)offsetオプションで指定しますmountfdiskパーティションの開始セクターとセクターサイズを決定するために使用します。次に、開始セクタ番号とバイト単位のセクタサイズを使用して、バイト単位でオフセットを計算します。例については、ディスク(デバイス)全体のイメージから単一パーティションマウントするをご覧ください。最後に:

mount -o offset=<offset in bytes> nps-2010-emails.dd /media/manu/

典型的なハードディスクでは、データを保持するセルはグループ化されています。このグループはセクターと呼ばれます。通常のパーティション分割方法では、最初のいくつかのセクターは、パーティションに関する情報を提供するために確保され、ギャップが生じます。したがって、ディスク全体のイメージがある場合、これらのセクターも含まれます。現在、mountパーティションは最初のバイトから開始されないため、コマンドは最初のバイトから直接開始できません。だから、私たちは伝える必要がありますmount(追加情報を回避できるように)スキップして実際のパーティションに到達するバイト数。これはオフセットと呼ばれます。現在、各セクターはバイト単位で一定量の情報を保存できます。これはセクターのサイズと呼ばれます。セクターのサイズにセクター数のギャップのサイズを掛けることにより、このギャップに格納できる情報の合計サイズを取得します。

そこからの出力から、fdiskセクターサイズが512バイトであり、セクター1から始まることがわかります。したがって、オフセットは1 * 512 = 512です。次のコマンドを試してください。

mount -t vfat -o offset=512 ps-2010-emails.dd /media/manu/

fdiskFAT32として指定したため、ファイルシステムタイプを追加しました。書き込み用-o offset=512,rwにもマウントするには、代わりに使用します。


私はあなたが投稿した最初のリンクの記事を読みましたが、オフセットセクター番号、その他の概念についてはあまり理解していませんでした。可能であれば、このトピックについて詳しく説明するか、同じ研究のための参考文献を投稿してください。ありがとう
spaceman_spiff

の出力を含むように投稿を更新しましたfdisk -l nps-2010-emails.dd
spaceman_spiff

おかげで、私の背景は理論的なコンピューターサイエンス(私は数学専攻です)でしたが、一般的なメモでこのトピックを理解するための参照はありますか?
spaceman_spiff

「この」トピックは、ディスク、セクター、ファイルシステムなどすべてですか?おそらく、Tannenbaumのようなオペレーティングシステムの教科書のIO / Storageの章から始めることができます。それらの基本とFAT32マウントタイプを除き、答えに投稿したものはすべてtholinksからのものです。
ムル

10

ここで説明するように、ダンプ内のすべてのパーティションをコンピューターに自動的にスキャンさせ、すべてのループデバイスを自動的に準備させることもできます

だから、/dev/sdaと呼ばれるものに全体をダンプしたとしましょうsda.img。次のようにパーティションにアクセスできます。

losetup -f -P sda.img

私のシステムでは、次のように表示されます。

sda生画像

非GUI環境では、作成したデバイスをlosetup -lでリストできます。これにより、ループデバイスの名前がわかります。例:

# losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /path/mmcblk0

次に、最初のパーティションを次のようにマウントできます。

mount /dev/loop0p1 /mnt/mypartition

お役に立てば幸いです。


私のために完璧に働いた。
プラヴェーンパサーク

2
これらの同じ行に沿って、Ubuntu 18.04では、「gparted backup.img」を実行してパーティションのリストを取得するのに問題はありませんでした。「fdisk -l backup.img」も有用な情報を示しています。
RoundSparrow hilltx

1
losetupコマンドを元に戻すにはどうしますか?
フリム

1

評判がないためコメントを追加できませんが、GPTディスクをfdiskでテストするときにGPTディスクを持っている人に伝えたいので、代わりにgdsikを使用して開始セクターを取得し、適切なオフセットをカウントします。助けてくれました。

fdisk -l 私にくれた:

      Device Boot      Start         End      Blocks   Id  System
vm2080737.bak1   *           1        3901    31457279+  ee  GPT

そして、エラー 'mount:filesystem typeを指定する必要があります'で512オフセットでマウントできませんでした

gdisk -l 私に良い結果を与えました:

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34             545   256.0 KiB   A501  gpboot
   2             546          993825   485.0 MiB   A502  swap
   3          993826        62914526   29.5 GiB    A503  rootfs

1
またはを使用しますparted
ムル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.