Собственно сабж! Подскажите плс если можно поподробнее я только учусь.
Вопрос некорректен.Какова конечная цель?
FreeBSD 4.8 мне надо получить номера свободных инодов для того, что бы просмотреть их данные. Ну грохнул я дофига чего(файлы большие и их много ) :( ... Ищу описание ffs(видно плохо ищу, толкового ничего...). Пока я знаю что при удалении стирается значение di_mode(в моем случае это не кретично) и количество ссылок в di_nlinc приравнивает нулю еще меняет время изменения методанных. Но материал у меня старый и куций ... Какие записи еще изменяются я пока
не знаю, стираются ли блоки косвенной адресации... в общем пока много чего не знаю. И Си я почти не знаю, и руки у меня кривые, и вообще с моими вопросами в больницу!PS: Конечная цель: ----> Мне надо восстановить файлы.
ffs описана у Макьюзика.Можешь посмотреть код восстановления файлов на ext2 (часть Midnight Commander). Будет довольно полезно, т.к. ffs от ext2 мало чем отличается.
А некорректен изначально потому, что на всех современных файловых системах нет никаких списков i-узлов, они выделяются динамически (и inode map может быть truncated).
>FreeBSD 4.8 мне надо получить номера свободных инодов для того, что бы
>просмотреть их данные. Ну грохнул я дофига чего(файлы большие и их
>много ) :( ... Ищу описание ffs(видно плохо ищу, толкового ничего...).
> Пока я знаю что при удалении стирается значение di_mode(в моем
>случае это не кретично) и количество ссылок в di_nlinc приравнивает нулю
>еще меняет время изменения методанных. Но материал у меня старый и
>куций ... Какие записи еще изменяются я пока
>не знаю, стираются ли блоки косвенной адресации... в общем пока много чего
>не знаю. И Си я почти не знаю, и руки у
>меня кривые, и вообще с моими вопросами в больницу!
>
>PS: Конечная цель: ----> Мне надо восстановить файлы.Попробуй посмотреть в сторону /usr/ports/sysutils/ffsrecov/ Однако, она работает только с ufs1.
Удачи!
В частности количество инодов постоянно с создания файловой системы.
в моем разделе их должно быть 23604590 если не ошибся в подсчетах.
Если стандартным вызовом нельза получить список, то можно ли как-то иначе его получить? По идее надо перебрать все иноды... (насколько я понимаю так работает debugfs, но она только под linux)Но вот как это сделать... исходники fsck'а помогли бы но я их опять не могу найти.
ffsrecov вещь хорошая, я бы сказал необходимая, но ...ffsrecov -p -o 364576 /dev/ad0s1d
ошибка симентации (core dumped)
и
qbic# ffsrecov -p /dev/ad0s1d
WARNING: field fs_bmask is invalid, superblock may be corrupt.
doesn't have magic
field fs_bmask does not match parent value.
sblkno: 77204 cblkno: 8 iblkno: 77208 dblkno: 8
cgoffset: 77212 size: 8 dsize: 77220 ncg: 8
bsize: 77224 fsize: 8 frag: 77228 minfree: 8
maxcontig: 77244 maxbpg: 8 fsbtodb: 8 nindir: 8
csaddr: 77276 cssize: 8 cgsize: 77280 ncyl: 77288
cpg: 8 ipg: 77292 fpg: 8 flags: 0
inodefmt: -159010699fsmnt:
time: Thu Jan 1 21:26:56 1970 UTCне думаю что именно такие данные в суперблоке.
При этом fsck говорить что все впорядке да и монтируется все ок.
Или в 4.8 уже по умолчанию ufs2 воткнули, а я и не заметил...PS: