Вам необходимо получить доступ к так называемой «мета» информации о диске - информация о информации на диске - не обычная информация. Для этого вам нужно открыть сам диск, а не любой файл или каталог внутри диска.
Если вы говорите о i-узлах, то вы находитесь в Linux и файловой системе ext, поэтому имя диска будет чем-то вроде /dev/sdb
. Будьте осторожны: это весь диск, а не один раздел/том/фрагмент внутри него. Это можно назвать /dev/sdb2
или что-то - разные типы Linux называет их разными вещами.
Как только вы откроете раздел, вы можете обрабатывать его как файл (очень большой!): Последовательность байтов, которые случайно совпадают с секторами на жестком диске. Вы можете искать любую позицию и читать данные там. Если вы хотите перезаписать его, вы можете - но, как вы говорите:
Вы можете полностью уничтожить данные на своем жестком диске!
Возможно, смонтировать USB-накопитель (на нем ничего не значимого) и поэкспериментировать с этим? И сделайте ОЧЕНЬ убедитесь, что вы открыли имя ITS, а не имя своего основного диска!
Как вы прочитали конкретный индекс и распечатали его содержимое? Я думаю, вы бы проанализировали метаданные файловой системы, такие как superblock, root inode для этого. – Fazlin
@Fazlin: Да, я сделал то же самое – harrythomas
После того, как вы проанализировали метаданные файловой системы, чтобы прочитать содержимое inode, с какими проблемами вы сталкиваетесь при написании его обратно? Вы узнаете смещение, из которого вы прочитали конкретный индекс. Измените локальный struct inode и запишите его с тем же смещением. – Fazlin