Как восстановить (восстановить) удаленный файл на разделе btrfs?
Я еще не сделал снимок, поэтому я не могу использовать эту функцию. Я знаю, что есть некоторые инструменты для других файловых систем Linux, но Google не нашел ничего специфического для btrfs. Я наткнулся на одно смутное упоминание о том, что в btrfs есть инструмент для восстановления, но я не могу его найти. Прежде чем пробовать инструменты для другой файловой системы, я спрашиваю здесь.
Больше информации:
- (Два) удаленных файла были удалены удаленной
rsync
командой, которая пошла не так. - Это были небольшие текстовые файлы.
- Я знаю имена файлов.
- Я мог бы вспомнить некоторые строки в файлах.
- Диск является обычным жестким диском, но он большой (2 ТБ).
- Я использую Kubuntu 12.04 (бета2) со всеми последними обновлениями.
- Я не записал никаких новых данных в раздел, из которого были удалены файлы.
- У меня нет снимка или резервной копии этих файлов. (Последняя резервная копия всего на несколько часов старше этих файлов.)
- Как ни странно, файловая система COW, кажется, имеет меньше вариантов восстановления файлов, чем ext3 / 4 ...
источник
Если на вашем диске btrfs есть дочерние тома, вам нужно передать дополнительную
-r <subvol-id>
опциюbtrfs restore
. К сожалению, сценарии, подобные тому, который опубликовал пользователь user414471 ( http://oelkers.de/tips/undeleteBtrfs.sh ), не имеют возможности сделать это, но их, вероятно, можно адаптировать к этому.Если вы хотите сделать это вручную, вам нужно получить правильный subvol-id, либо с помощью:
или альтернативно:
После этого вы используете
btrfs-find-root
номер блока, к которому хотите вернуться (обычно тот, который находится непосредственно перед максимальным, который является текущим корнем). Для этого вам нужно сначала установить подобъем по умолчанию на тот, из которого вы хотите восстановить файлы (и впоследствии отменить это изменение):Наконец, вы можете использовать
btrfs restore
с-r <subvol-id>
для восстановления (изначально с--dry-run
аргументом, если хотите):Больше информации обо всем этом здесь: https://btrfs.wiki.kernel.org/index.php/Restore
источник
btrfs-find-root
шаг никогда не завершается (т. Е. Выполняется на 100% ЦП в течение 3 часов при <250 ГБ FS). Смотрите также похожую историю spinics.net/lists/linux-btrfs/msg61361.html .