.imgファイルをマウントできません - 「ディレクトリではありません」エラー

.imgファイルをマウントできません - 「ディレクトリではありません」エラー

Ubuntu 12.04システムで次のコマンドを実行してみました。

sudo mount minix203.img -o loop -t minix /mnt/myminix/

minixパーティションを使用して.imgファイルをマウントすると、次のエラーが発生します。

mount: Not a directory

私のコマンドに問題がありますか?

ベストアンサー1

ブルースが言ったのは本当だと思います。これにはパーティション表全体が含まれます。それならここでは使えないものはありません。次のコマンドでは、util-linuxバージョン2.21以降が必要です。

sudo losetup --find --show -P minix203.img

これにより、画像がループバックデバイスに接続され、画像が接続されているループバックデバイスが表示されます(たとえば/dev/loop0)。仮想的には、fdisk -l /dev/loop0パーティションテーブルとデバイス名はマウントできるように表示する必要があります。だからあなたは次のように終わります:

sudo mount /dev/loop0p1 -t minix /mnt/myminix

動作する必要があります。このloopオプションは消えたので、losetupそのセクションで作業してください。

util-linuxただし、正しいバージョンのパッケージがない場合は、fdisk手動で使用して実行できますlosetup(または外部ソースからパッケージをインストールすることをお勧めします)。この場合、いくつかの計算を行うだけです。まず、ドライブ全体のイメージを添付することです。

sudo losetup --find --show part.img

これはデバイス名を教えてくれます/dev/loop0。その後、fdisk -lパーティションレイアウトを取得するには、次のようにします。

fdisk -l /dev/loop0

私のファイルの場合、次の結果が表示されます。

Disk /dev/loop0: 67 MB, 67108864 bytes, 131072 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: 0x2645940b

      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1            2048       63487       30720   83  Linux
/dev/loop0p2           63488      131071       33792   83  Linux

だまされないでください。既存のデバイス名ではない可能性があります。このテーブルを使用して、マウントするパーティションを決定する必要があります。サイズやファイルシステムの種類によっては、いくつかの前提が必要です。

これで計算時間です。パーティションのオフセットとサイズが必要です。セクタサイズに単位サイズを掛けて結果(バイト)を得ることができます。私のセクタサイズが512バイトであることがわかるので、fdiskマウントしたい場合/dev/loop0p1(2048 * 512)バイトで始まります。これは1048576と同じオフセットです(もちろんこの例では)。

セクタサイズにはend_sector_number - start_sector_number + 1この数字が含まれているため(最終セクタはそのサイズ内にあります)。ここでは、61440セクタ== 31457280バイトに等しい。それが私たちに必要なすべてです。

ループバックデバイスを取り外して再接続して、マウントしたい特定のパーティションにサイズを制限することができます(この数字を必要なものに置き換えます)。

sudo loopback -d /dev/loop0
sudo loopback -f --show -o 1048576 --sizelimit 31457280 part.img

に接続できます/dev/loop0。これで安全にインストールできます。

mount -t minix /dev/loop0 /mnt/myminix

これは、ドライブ全体のMBRが通常影響を受ける状況(例:mkfsでフォーマット)を除いて、ほぼ完全に機能するはずです。

どのように動作しますか?

MBRパーティションテーブルのレイアウトは簡単です。まず、パーティションの始まりと終わりの場所に関する512バイトの説明とデータがあります。拡張パーティションの場合、これはやや難しいかもしれません。通常のハードドライブに対してカーネルが直接実行するパーティション制限を手動で設定できます。

おすすめ記事