2つのパーティションがある未加工のSDカードイメージをダウンロードしました。
SDカードに直接ddしようとすると、ファイルシステムエラーが発生しました。カードに欠陥があるのか、画像なのかわかりません。
物理的なカードに書き込まずにこの画像を調べる方法はありますか?パーティションを個別にマウントしようとしたり、テーブルをチェックしたりしますか?
kpartx または partx イメージ上のパーティションのループデバイスを作成し、マウントします。だからどちらか:
$ Sudo kpartx -v -a file.iso
add map loop0p1 (253:17): 0 8382464 linear 7:1 2048
$ mount /dev/mapper/loop0p1 ./mnt_point
... do something with the partition ...
$ umount ./mnt_point
$ kpartx -d -v file.iso
del devmap : loop0p1
loop deleted : /dev/loop0
または:
$ Sudo partx -a -v file.iso
partition: none, disk: file.iso, lower: 0, upper: 0
Trying to use '/dev/loop0' for the loop device
/dev/loop0: partition table type 'dos' detected
range recount: max partno=1, lower=0, upper=0
/dev/loop0: partition #1 added
$ mount /dev/loop0p1 ./mnt_point
... do something with the partition ...
$ umount /dev/loop0p1 ./mnt_point
$ Sudo partx -d -v /dev/loop0
partition: none, disk: /dev/loop0, lower: 0, upper: 0
/dev/loop0: partition #1 removed
losetup -Pf
in util-linux> = 2.21(Ubuntu 16.04)
Sudo losetup -Pf disk.img
Sudo mkdir /mnt/loop0p1
Sudo mount /dev/loop0p1 /mnt/loop0p1
losetup(8) のマニュアルページと https://askubuntu.com/questions/69363/mount-single-partition-from-image-of-entire-disk-device/673257#673257
losetup -P
自動化
ここにさらに自動化する関数があります。使用法:
$ 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 -t type -o loop ./image/mnt
「type」= fs type、「image」はダウンロードしたファイルの名前
この回答 ServerFaultでの提案:
losetupを使用して/ dev/loopを取得しますか?デバイス、次にそのデバイスでkpartxを使用して、イメージファイル内のパーティションのdevマッピングを作成します。