Проблема при просмотре суперблока в файловой системе ext3

2251
user29218

Я попытался просмотреть суперблок командой "dd" в файловой системе ext3.

dd if=/dev/sda3 bs=4096 skip=1 count=1 of=superblock 

Но результат в файле суперблока неверный (я сравниваю значение количества Inodes, которое я получил от dumpe2fs). Файл устройства / dev / sda3 запускается в загрузочном блоке, а затем в суперблоке группы 0? И еще один вопрос: размер блока загрузки и размер суперблока имеют размер BLOCKSIZE (здесь 4096)? Формат диска ext2 / ext3 (я думаю, что они одинаковы) показаны ниже:

альтернативный текст

1

2 ответа на вопрос

2
Diego Torres Milano

Загрузочный блок файловой системы 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 

получит суперблок.

0
user29218

Спасибо за ответ 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

Похожие вопросы