да, но ...
Завершение процесса закрывает его файлы, но это не редкость для kill
процесса, подключенного через сокет или другое сетевое соединение (используется с базами данных, например), чтобы не удалось немедленно убить процесс. Вы увидите процесс, ожидающий закрытия, например, с помощью ps
.
После извлечения интересующей вас файловой системы (с помощьюdd
)просто измените размер файла (967424 *4096=3962568704):
$ truncate -s 3962568704 trunc.img
А потом просто:
$ sudo mount -o loop trunc.img /tmp/img/
$ sudo find /tmp/img/
/tmp/img/
/tmp/img/u-boot-spl.bin
/tmp/img/u-boot.img
/tmp/img/root.ubifs.9
/tmp/img/root.ubifs.4
/tmp/img/root.ubifs.5
/tmp/img/root.ubifs.7
/tmp/img/root.ubifs.2
/tmp/img/root.ubifs.6
/tmp/img/lost+found
/tmp/img/root.ubifs.3
/tmp/img/boot.ubifs
/tmp/img/root.ubifs.0
/tmp/img/root.ubifs.1
/tmp/img/root.ubifs.8
Другим более простым решением является усечение непосредственно исходного файла img:
$ truncate -s 3964665856 nand_2016_06_02.img
$ sudo mount -o loop,offset=2097152 nand_2016_06_02.img /tmp/img/
Где 3962568704 + 2097152 = 3964665856
Поскольку truncate
из этот ответ не решил проблему, я немного поэкспериментировал. В в каком-то месте я нашел предложение использовать resize2fs
для исправления изображения (resize2fs <image> <size>
, например. resize2fs nand_2016_06_02.img 3779M
с учетом приведенных выше данных ), но это тоже не сработало для меня (, утверждая, что размер уже был таким ).
Для меня следующие два шага решили эту проблему:
e2fsck -y -f nand_2016_06_02.img
(можно сначала без y
проверить, есть ли ошибки вообще — если нет, то это не нужно)testdisk nand_2016_06_02.img
, пройтись по меню (продолжить › (таблица разделов )нет › расширенные › создание образа )и позволить testdisk создать образ. Образ, созданный testdisk (, носит имя image.dd
), смонтирован идеально, а затем:
sudo mount image.dd /tmp/img -t ext4 -o loop,ro
(Я знал, что это ext4, и я явно хотел, чтобы он был смонтирован для чтения -только для того, чтобы случайно не изменить его — и в моем случае это был не загруженный образ, а «спасенная» SD-карта, которая отказалась от меня., данные извлечены с помощью myrescue -r 1000 -b 4096 /dev/sdf2 sdpart2.img
, что заняло около 24 часов для раздела размером 8 ГБ с 1014 сбойными блоками )