Страница 1 из 1

Как корректно восстановить файлы из папки lost+found?

Добавлено: 06 дек 2022, 08:51
Restart1566
Прогнал на сбойнувшем диске программу fsck.ext2.
Все файлы оказались в папке lost+found. Но названия папок не соответствуют исходным, хотя внутри всё правильно.
Как вернуть правильные имена, если, конечно, это возможно?

Как корректно восстановить файлы из папки lost+found?

Добавлено: 06 дек 2022, 12:41
slant
Никак. Только руками переименовывать каждый. В 90% случаев в эту папку файл попадает именно потому, что оказывается потерян из-за повреждения метаданных о себе. И имя как раз в них входит.
Либо повреждается таким же образом запись о каталоге, нарушая цепочку имен, и пропадает все его содержимое. Вот это содержимое, обычно, свои имена сохраняет во время находки - сами то они целые, просто неизвестно где должны быть, из-за нарушенной цепочки.

Как корректно восстановить файлы из папки lost+found?

Добавлено: 06 дек 2022, 12:52
Restart1566
slant писал(а):
06 дек 2022, 12:41
Никак. Только руками переименовывать каждый.
Жаль...
Я, в общем-то, так и предполагал, но был лучик надежды...

Но всё равно спасибо!

Как корректно восстановить файлы из папки lost+found?

Добавлено: 06 дек 2022, 13:28
madesta
Restart1566 писал(а):
06 дек 2022, 08:51
на сбойнувшем диске
Недаром говорилось, что много резервных копий не бывает. Ну и сбойнувший диск ведь не вдруг сам по себе сбойнул, что-то, видимо, копилось. Иногда, вероятно, полезно посматривать на smart диска. Глядишь ‒ временами и соломку вовремя подстелить удастся.

Как корректно восстановить файлы из папки lost+found?

Добавлено: 06 дек 2022, 16:47
slant
madesta,
ext4(и тем более 3 и 2), к сожалению, может и сама по себе вот так метаданные попортить. С низкой вероятностью, при нештатном отключении питания, например. А XFS - вообще половину содержимого потерять, причем не только имена но и содержимое файлов попортить, и с низким шансом потом вытащить назад.
Так что да, мало резервных копий не бывает. :)

Хотя btrfs, именно от этой проблемы защищает полностью. :) Но тут свои уже собственные варианты накосячить имеются, тоже не панацея.

Как корректно восстановить файлы из папки lost+found?

Добавлено: 07 дек 2022, 16:44
Restart1566
slant писал(а):
06 дек 2022, 16:47
Но тут свои уже собственные варианты накосячить имеются, тоже не панацея.
Привет!
А что например?

Это у меня был диск на torrent-клиенте, ничего страшного, в общем-то не произошло. Но пришлось заново отформатировать.

М.б. перейти на btrfs?

Как корректно восстановить файлы из папки lost+found?

Добавлено: 07 дек 2022, 17:32
rogoznik
Restart1566 писал(а):
07 дек 2022, 16:44
М.б. перейти на btrfs?
Для торрента лучше не надо

Как корректно восстановить файлы из папки lost+found?

Добавлено: 07 дек 2022, 20:39
slant
Restart1566 писал(а):
07 дек 2022, 16:44
Это у меня был диск на torrent-клиенте, ничего страшного, в общем-то не произошло. Но пришлось заново отформатировать.

М.б. перейти на btrfs?
btrfs в "базовом алгоритме" работы плохо подходит для задач где много т.н. random write. Это базы данных, образы дисков подключенные к виртуальной машине и торренты - в первую очередь. Происходит это из-за того, как именно она пишет, точнее - перезаписывает данные. Допустим, надо переписать кусок файла в середине (образ для VM)
1. Написать новые данные на свободном месте диска.
2. Записать новые метаданные в новом месте области метаданных.
3. Перебросить указатель о данных со старых метаданных на новые (атомарная операция).
4. Стереть (обозначить как стертое) старые метаданные.
5. Стереть (обозначить как стертое) старые данные самого файла.

Т.е. на каждом этапе на диске всегда лежат целые данные, когда бы не оборвался процесс - мы имеем корректное состояние FS. А вот обратной стороной этого - является дикая фрагментация. Т.к. при перезаписи, в пунктах 1 и 2 используется НОВОЕ место. А старое освобождает в пунктах 4 и 5, причем оно будет совсем не там - а "дыркой" в середине файла. Это почти не имеет значения для SSD, но на hdd убивает производительность в хлам.

Лечение (кроме использования SSD) тоже есть. Во первых, для btrfs возможна дефрагментация - штатно. К сожалению, там тоже есть небольшой подводный камень - при дефрагментации снапшоты будут разделены физически, что приведет к некоторой потере места.
А во вторых - есть режим NOCOW, который можно включать как для всего диска (глупо), так и для отдельного каталога или файла.
В режиме NOCOW запись начинает работать как на классических FS вроде ext4. Т.е. перезаписывая сразу поверх. Но при этом теряется вся неубиваемость данных. При сбое во время записи, произойдет то же самое что на ext4 в таком случае - попытка восстановить/откатить через журнал (да, у btrfs еще и журнал тоже есть), а при неудаче - удаление всего файла/каталога. Но только lost+found там нет. Такой файл будет удален с концами сразу.

Так что, для torrent-ов, преимуществ у этой файловой системы нету. Другое дело, если на диске-файлопомойке есть много чего помимо торрентов. Тогда выдав торрентам каталог с NOCOW чтоб не портили картину, можно для остального использовать ее положительные стороны. Например - сжатие на лету. Или снапшоты. Или возможность динамически добавлять/убирать диски/разделы и перестраивать структуру raid прямо во время работы...

Как корректно восстановить файлы из папки lost+found?

Добавлено: 08 дек 2022, 09:19
Restart1566
slant писал(а):
07 дек 2022, 20:39
Так что, для torrent-ов, преимуществ у этой файловой системы нету.
С добрым утром!

Спасибо!
У меня на этом диске только торренты, поэтому...