
У нас есть специальная плата на базе Beaglebone Black с 4 ГБ eMMC и 256 МБ ОЗУ.
eMMC разделена следующим образом
# parted --list
Model: MMC MMC04G (sd/mmc)
Disk /dev/mmcblk0: 3842MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 131kB 262kB 131kB
2 262kB 393kB 131kB
3 393kB 524kB 131kB
4 524kB 1573kB 1049kB
5 1573kB 2621kB 1049kB
6 2621kB 3146kB 524kB
7 3146kB 3277kB 131kB
8 3277kB 8520kB 5243kB
9 8520kB 13.8MB 5243kB
10 13.8MB 19.0MB 5243kB
11 19.0MB 19.3MB 262kB
12 19.3MB 19.5MB 262kB
13 19.5MB 19.8MB 262kB
14 21.0MB 32.5MB 11.5MB
15 33.6MB 243MB 210MB ext4
16 243MB 453MB 210MB ext4
17 453MB 558MB 105MB ext4
18 558MB 621MB 62.9MB ext4
19 621MB 830MB 210MB ext4
20 830MB 867MB 36.7MB ext4
21 867MB 3827MB 2960MB ext4
Теперь мы хотели бы сделать дамп разделов eMMC и прочитать данные из него. Это в основном для отладки любых полей, возвращаемых платами. Например, я мог бы прочитать один из разделов в двоичном файле, смонтировать его и прочитать его данные.
например, возьмем раздел 20 (который является разделом ext4), я могу прочитать его u-boot
или использовать Lauterbach debugger
в имени файла, скажемpart20.bin
Я могу получить этот файл Ubuntu PC
и смонтировать его на устройстве loop, чтобы получить... Я сделал это следующим образом
cat part20.bin > part20.iso
sudo losetup /dev/loop0 part20.iso
Эта команда монтирует раздел 20 и показывает его содержимое.
Теперь идем дальше, когда я считываю все содержимое eMMC в двоичном файле с помощью Lauterbach
отладчика. Теперь я не уверен, монтирую ли я все разделы так же, как и раньше. Заражение У меня есть двоичный файл 4 ГБ на моем компьютере с Ubuntu, и я попробовал команды выше, все работает нормально (без ошибок), но я не вижу никаких смонтированных разделов. Я знаю, что raw
в таблице разделов eMMC есть разделы, поэтому может быть невозможно прочитать все разделы таким же образом, однако мой вопрос заключается в следующем:
Есть ли способ увидеть все разделы из дампа eMMC и прочитать из него данные?