LINUX.ORG.RU
решено ФорумAdmin

Получить файл с образа прошивки

 


0

1

Есть китайский образ прошивки update.img. Хочу на ней проверить наличие кое-каких бинарников. Как мне это сделать?

Мои попытки:

fdisk никакой ценной информации не даёт:

$ fdisk -l update.img
Disk update.img: 128.84 MiB, 135102464 bytes, 263872 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

А вот cfdisk:

                         Disk: update.img
        Size: 128.84 MiB, 135102464 bytes, 263872 sectors
                            Label: sun

    Device       Start    End Sectors   Size Id Type         Flags
>>  update.img1      0 160649  160650  78.4M 83 Linux native      
    update.img2 160650 257039   96390  47.1M 82 Linux swap	u
    update.img3      0 257039  257040 125.5M  5 Whole disk
    Free space  258048 263871    5824   2.8M

Делаю:

# mount -t sysfs update.img mnt/
$ ls mnt
block  bus  class  dev  devices  firmware  fs  hypervisor  kernel  module  power

Содержимое директории, судя по всему, это /sys, но что с этим дальше делать – не знаю.

Также взял как некий нормальный образец образ для orange pi orange_upd.img с официального. С ним, в общем, всё примерно также, единственно, fdisk даёт нормальный выхлоп:

$ fdisk -l orange_upd.img 
Disk orange_upd.img: 6.7 GiB, 7189037056 bytes, 14041088 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: EFD5B137-007F-B448-BAD1-0EDE7C40EAA0

Device            Start      End  Sectors  Size Type
orange_upd.img1   61440  2158591  2097152    1G Linux extended boot
orange_upd.img2 2158592 14041054 11882463  5.7G Linux filesystem

mount -t sysfs update.img mnt/

Не понял, что ты пытался этим сделать, но ты примонтировал sysfs своего компа на /mnt. В данном случае аргумент «update.img» роли не играет, это чисто символическое имя, обычно для sysfs используют «none».

Можешь через losetup подключить сразу нужный раздел, указав offset и size, но по-моему удобнее выдернуть нужный раздел через dd и примонтировать:

dd if=update.img of=update.img2 bs=512 skip=160650 count=96390
mount update.img2 /mnt

(подставть нужные тебе параметры в skip и count)

anatole
()
Ответ на: комментарий от anatole

но ты примонтировал sysfs своего компа на /mnt

Сначала тоже так подумал, но:

$ tree /sys
...
9817 directories, 47806 files
$ tree mnt/
...
9395 directories, 38454 files

Но, наверное, первоначальная мысль была правильная…

Jullyfish
() автор топика
Ответ на: комментарий от anatole

(подставть нужные тебе параметры в skip и count)

Сперва сейчас попробовал с образом для апельсинки. С ним получилось.

но тут походу образ без человеческой таблицы разделов

А как быть с бесчеловечным образом сходу непонятно.

Jullyfish
() автор топика