Восстановление из потерянного + найденного

На карте EXT4 FS / memory возникла проблема, а после и fsck все файлы были помещены в lost + found.

Вопрос : как восстановить старое имя файла / иерархию из потерянного + найденного? Или это невозможно? Не считая восстановления из резервной копии.

В прошлый раз, когда я должен был это сделать – много лет назад, вы должны были угадать, основываясь на содержимом файла. Я сомневаюсь, что сегодня есть лучший способ.

Программа «файл» может помочь здесь, так как она даст вам представление о типе данных, поэтому вы можете использовать это для правильного просмотра файлов для начала.

Вы не можете найти исходное имя и местоположение файла в /lost+found потому что это то , о чем lost+found : это где fsck помещает фрагменты файлов, которые он не смог подключить нигде в дереве каталогов. Если местоположение было известно, fsck оставил бы файл, где он должен был быть.

Теоретически возможно, что fsck может иметь только частичную информацию, такую ​​как имя файла, но не местоположение каталога, но это не происходит с обычной файловой системой.

Вы можете найти подсказки в самом файле. Команда file , по крайней мере, сообщит вам, какой именно файл (если он ее распознает). Некоторые файлы содержат дополнительную информацию внутри; например, изображения JPEG и TIFF могут содержать данные EXIF , файлы MP3 могут содержать теги ID3 и т. д.

Настоящий ответ заключается в том, что вы не должны пытаться. Вы не представляете, завершено ли содержимое. Вы должны восстановить с известной хорошей копии.

 root@root:/media/eluhuj/_/lost+found# for file in $(cat /root/list.dir | awk -F ' ' '{print " " $1}' | sed "s/://g" | sed 's/#/\\#/g'); do echo $cmd $file; done > lost.sh root@root:/media/eluhuj/_/lost+found# cat lost.sh #! /bin/bash set -v sudo ls -lRas \#11272193 sudo ls -lRas \#12582913 sudo ls -lRas \#1310721 sudo ls -lRas \#14680065 sudo ls -lRas \#15466497 sudo ls -lRas \#15990785 sudo ls -lRas \#20709377 sudo ls -lRas \#2097153 sudo ls -lRas \#21495809 sudo ls -lRas \#22806529 sudo ls -lRas \#23855105 sudo ls -lRas \#24117249 sudo ls -lRas \#25165825 sudo ls -lRas \#25427969 sudo ls -lRas \#25690113 sudo ls -lRas \#25690420 sudo ls -lRas \#25690504 sudo ls -lRas \#25690844 sudo ls -lRas \#25697502 sudo ls -lRas \#25697729 sudo ls -lRas \#25698320 sudo ls -lRas \#27787265 sudo ls -lRas \#27787346 sudo ls -lRas \#27792798 sudo ls -lRas \#27792830 sudo ls -lRas \#28311553 sudo ls -lRas \#28573713 sudo ls -lRas \#28573715 sudo ls -lRas \#28573718 sudo ls -lRas \#28573721 sudo ls -lRas \#6815745 sudo ls -lRas \#786433 sudo ls -lRas \#9699329 root@root:/media/eluhuj/_/lost+found# chmod a+x lost.sh root@root:/media/eluhuj/_/lost+found# ./lost.sh 1> /tmp/dir.out 2>&1 

Имена файлов и иерархия нет, но использование файла может помочь вам восстановить некоторые вещи. Я использую редактор Joe, который имеет прямоугольные выделения, если вы включите их. Поэтому я мог бы выполнить «ls> ques», а затем «search-replace», чтобы превратить его в список утверждений типа «файл» # 133024 «> 133024.txt». Я запускал это как скрипт sh, тогда я мог бы сделать «grep PDF * .txt> pdflist». Открыв это в средстве просмотра mc и еще один mc в другом терминале, я просмотрел файл pdflist.txt и переместил все PDF-файлы в их собственный каталог. Вы можете сделать то же самое с текстовыми файлами ASCII и тем, что он идентифицирует.

Есть также неожиданные сюрпризы, такие как «# 410423: сжатые данные gzip, был« x264_git.tar ». Вы можете также «cat * .txt> filelist», чтобы получить описания в одном файле.