Проблема при просмотре суперблока в файловой системе ext3
Я попытался просмотреть суперблок командой "dd" в файловой системе ext3.
dd if=/dev/sda3 bs=4096 skip=1 count=1 of=superblock
Но результат в файле суперблока неверный (я сравниваю значение числа Inodes, которое я получил от dumpe2fs). Файл устройства /dev/sda3 запускается в загрузочном блоке, а затем в суперблоке группы 0? И еще один вопрос: размер блока загрузки и размер суперблока имеют размер BLOCKSIZE(здесь 4096)? Формат диска ext2/ext3(я думаю, что они одинаковы) показаны ниже:
2 ответа
Загрузочный блок файловой системы ext2/ext3 имеет длину 1024 байта, а не 4096. Использование
$ sudo tune2fs -l /dev/sda3
видеть параметры файловой системы как размер блока, и
$ sudo dumpe2fs -hx /dev/sda3
чтобы получить суперблок. Также
$ sudo dd if=/dev/sda3 bs=1k skip=1 count=4
получит суперблок.
Спасибо за ответ dtmilano. Я уже попробовал это, прежде чем задавать вопрос. Но я думаю, что результат неправильный. Проблема в том, что я забываю конвертировать немного порядка байтов!
Ниже я запишу мои шаги для вашей справки:
$ sudo dd if = / dev / sda3 bs = 1k skip = 1 count = 4
Первая строка в суперблоке: 0000000: 0000 3a04 fdc4 3904 a616 3600 45f6 fc00 ..:...9...6.E...
Таким образом, согласно декларации struct ext3_super_block в ext3_fs.h: / 00 / __le32 s_inodes_count; / * Количество инодов / __le32 s_blocks_count; / Количество блоков */
Количество инодов 043a0000 = 70909952 (0000 3a04 следует преобразовать в 043a0000) Количество блоков 0439c4fd = 70894845
Это то же самое, что и вывод dumpe2fs: Количество узлов: 70909952 Количество блоков: 70894845