Просмотр .img без монтажа

13

Есть ли способ просмотреть файл .img без его монтирования? У меня есть файл .img, который я сгенерировал из снимка раздела clonezilla. У меня почему-то возникают проблемы с монтированием файла командой mount -o loop sda5.img /mnt/.

dmesg | tail показывает мне следующую ошибку:

[1325.395286] EXT4-fs (loop0): неверная геометрия: число блоков 11221248 превышает размер устройства (11218432 блоков)

Кто-нибудь получил идею, как просматривать без подключения или что может быть причиной этой ошибки?

Ahatius
источник
Это выглядит плохо .
Ури Эррера
связанные: unix.stackexchange.com/questions/32008/…
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件

Ответы:

18

Если это образ всего жесткого диска или, как в вашем случае, это может быть образ расширенного раздела, вам необходимо знать расположение разделов и смещения каждого раздела в файле, чтобы их можно было смонтировать.

Для этого вам понадобится partedинструмент, вы можете установить его с помощью следующей команды:

apt-get install parted

После установки partedзапустите его, указав путь к файлу изображения. partedСтрока будет показана:

$ parted /path/to/image/file/sda5.img
GNU Parted 2.3
.....
(parted)

В этом приглашении (с префиксом (parted)) введите следующие команды:

(parted) unit B
(parted) print
.....
Number  Start          End            Size           Type     File system  Flags
 1      1048576B       1573912575B    1572864000B    primary  ntfs         boot
 2      1573912576B    156774694911B  155200782336B  primary  ntfs
 3      156774694912B  171454758911B  14680064000B   primary  ntfs
 4      171454758912B  180044693503B  8589934592B    primary

(parted) q

Таблица в выводе скажет вам смещения каждого раздела в файле и тип файловой системы в каждом разделе. Например, чтобы смонтировать первый раздел в приведенном выше примере, вам нужно будет ввести следующую команду:

sudo mount -o loop,ro,offset=1048576 /path/to/image/file/sda5.img /mnt/partition

Убедитесь, что он /mnt/partitionсуществует первым.

клещи
источник
1
Хорошо, я думаю, что проблема может заключаться в том, что я получаю ошибку при выполнении команды печати, потому что она говорит неизвестную таблицу разделов. Угадай изображение сломано?
Ахатиус
Очень похоже, что он сломан. Но попробуйте сначала найти ошибку в Google.
Бендер
1
Can't have a partition outside the disk!ошибка с расстались как с gparted ...
Филипп Гачу
8

Я получил эту же проблему с изображением ext4, сгенерированным из снимка Clonezilla.

На самом деле мне удалось расширить файл до размера, указанного в таблице разделов, с использованием усечения. Ошибка dmesg в моем случае была:

[15687.653868] EXT4-fs (loop0): bad geometry: block count 18482176 exceeds size
  of device (18352672 blocks)

Поэтому я скорректировал длину файла с помощью:

truncate -o -s 18482176 /path/to/partition.img

(обратите внимание, что это первое и большее из двух чисел в журнале)

После этого маунт был счастлив, и я смог получить доступ к своим данным.

Энтони Лентон
источник
Это сработало для меня, хотя размер был неправильным, я думаю, размеры блоков были разными, поэтому мне пришлось указать размер в байтах. Будьте осторожны, поскольку вы можете потерять данные, если урежете файл изображения до размера, который меньше исходного размера.
Голимар
1
Как вы знаете правильный размер? пожалуйста, добавьте команды здесь.
Хунсу
@Hunsu Размер сообщается в сообщении об ошибке (dmesg).
Мелебиус