У меня сломана файловая система внутри qnap. Когда я пытаюсь fsck, он переходит в бесконечный цикл на одном inode. К сожалению, у qnap нет команды debugfs. Можно ли удалить (очистить) inode через dd?
Удалить поврежденный inode EXT4 без отладок
1 ответ
Это возможно но это очень опасно. Если ты облажаешься, ты можешь нанести больше вреда. Трюк заключается в вычислении смещения к конкретному inode, учитывая выходные данные dumpe2fs. Как только вы вычислите смещение, это просто:
dd if=/dev/zero of=/dev/BLOCKDEVICE seek=OFFSET bs=1 count=INODESIZE
See исходный код debugfs для функции do_imap:
исходное положение в таблице инф. узлов (что ext2fs_inode_table_loc() возвращает) можно найти выход dumpe2fs, как и размер inode. После того, как вы найдете номер блока и смещение, вы можете использовать вычислить смещение, используемое в команде dd выше через:
OFFSET = (block * BLOCKSIZE) + offset
, где block и offset - значения, вычисляемые do_imap.
возможно, вы захотите практиковать, видя, если вы можете правильно повторить расчет do_imap вручную, практикуя через dumpe2fs и потом сверяю с команду IMAP активные на системе Linux (если вы можете работать Linux.)
все это, как говорится, может быть полезно попробовать скомпилировать e2fsprogs с нуля для qnap, а затем использовать отладочные файлы, созданные для qnap.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]