Как найти тип файла img и смонтировать его?
Мне нужно установить файл .img, но я не знаю, какой тип .img. Как я могу определить, какой тип файла .img это?
# mount -t auto -o ro,loop gmapsupp.img /mnt/iso/
mount: you must specify the filesystem type
# file -k gmapsupp.img
gmapsupp.img: x86 boot sector, code offset 0x0
#
2 ответа
1
Современная версия команды file
сообщает о запуске более удобного способа, чем fdisk или parted:
file $img
Armbian_jw.img: DOS/MBR boot sector; partition 1 : ID=0x83, start-CHS (0x40,0,1), end-CHS (0x3ff,3,32), startsector 8192, 2883584 sectors
Этот однострочный вывод может быть написан следующим образом:
startsector=$(file $img | sed -n -e 's/.* startsector *\([0-9]*\),.*/\1/p')
offset=$(expr $startsector '*' 512)
echo $offset
4194304
sudo mount -o loop,offset=$offset $img /mnt
ответил Jürgen Weigert 3 FebruaryEurope/MoscowbSat, 03 Feb 2018 00:35:47 +0300000000amSat, 03 Feb 2018 00:35:47 +030018 2018, 00:35:47
0
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"
)
Протестировано в Ubuntu 16.04.
ответил Ciro Santilli 新疆改造中心 六四事件 法轮功 5 J0000006Europe/Moscow 2018, 15:20:14