/ devに対応するデバイスファイルがあるドライブをマウントする方法は知っていますが、物理デバイスを表さず、/ devに類似体がないディスクイメージ(たとえば、 ISOファイルまたはフロッピーイメージ)。 Mac OS XでFinderのディスクイメージのアイコンをダブルクリックしてこれを実行できることを知っています。これにより、ドライブが自動的にマウントされますが、ターミナルから実行できるようにしたいと考えています。これを行う一般的なUnixの方法があるかどうか、またはこれがプラットフォーム固有のものかどうかはわかりません。
MBRパーティションテーブルを含むハードドライブイメージの場合、マウントする必要のあるパーティションのオフセットを見つけるためにイメージをfdiskします。
fdisk -lu /path/disk.img
次に、オフセットを渡してマウントします。
mount -o loop,offset=xxxx /path/disk.img /mnt/disk.img.partition
オフセット値はバイト単位ですが、fdisk
はブロック数を示すため、fdisk
出力の「Begin」または「Start」列の値に512
を乗算する必要があります(またはブロックサイズが何であれ)マウントするオフセットを取得します。
最新のGNUシステムでは、mount
コマンドがそれを処理できます:
mount -o loop file.iso /mnt/dir
アンマウントするには、umount
コマンドを使用するだけです
umount /mnt/dir
OSにこのオプションがない場合は、 ループデバイス を作成できます。
losetup -f # this will print the first available loop device ex:/dev/loop0
losetup /dev/loop0 /path/file.iso #associate loop0 with the specified file
mount /dev/loop0 /mnt/dir #It may be necessary specify the type (-t iso9660)
マウント解除するには、-d
:
umount /mnt/dir
losetup -d /dev/loop0
ファイルにHDイメージなどのパーティションがある場合は、-P
パラメータ(OSによって異なります)は、ファイルコンテンツのパーティションをマップします。
losetup -P /dev/loop0 /path/file.iso # will create /dev/loop0
ls /dev/loop0p* #the partitions in the format /dev/loop0pX
losetup -P
マルチパーティションイメージの自動化
コマンドラインからディスクイメージをマウントする方法?| Unix&Linux Stack Exchange 言及losetup -P
、そしてここに、物事をさらに自動化するためのいくつかの便利なBash関数があります。使用法:
$ los my.img
/dev/loop0
/mnt/loop0p1
/mnt/loop0p2
$ ls /mnt/loop0p1
/whatever
/files
/youhave
/there
$ Sudo losetup -l
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO
/dev/loop1 0 0 0 0 /full/path/to/my.img
$ # Cleanup.
$ losd 0
$ ls /mnt/loop0p1
$ ls /dev | grep loop0
loop0
ソース:
los() (
img="$1"
dev="$(Sudo losetup --show -f -P "$img")"
echo "$dev"
for part in "$dev"?*; do
if [ "$part" = "${dev}p*" ]; then
part="${dev}"
fi
dst="/mnt/$(basename "$part")"
echo "$dst"
Sudo mkdir -p "$dst"
Sudo mount "$part" "$dst"
done
)
losd() (
dev="/dev/loop$1"
for part in "$dev"?*; do
if [ "$part" = "${dev}p*" ]; then
part="${dev}"
fi
dst="/mnt/$(basename "$part")"
Sudo umount "$dst"
done
Sudo losetup -d "$dev"
)
試してください:
mount -o loop /path/to/file.iso /mnt
loop
の後に追加します。
-t msdos
フロッピー用-t iso9660
CD-ROMイメージの場合Linuxは通常、ファイルの種類を推測しようとします。