Введение
Работа с chroot позволяет изолировать приложения от основной системы, но потеря данных внутри такого окружения может стать серьёзной проблемой. Эта инструкция расскажет, как быстро и безопасно вернуть удалённые файлы из lost+found, отремонтировать файловую систему и проверить результат. После выполнения руководства у вас останутся рабочие копии данных и понятный план на случай подобных инцидентов.
Требования / Подготовка
- Хост с Linux (Ubuntu 22.04, Debian 11, Fedora 36 и т.д.)
- Размонтированный или смонтированный
chroot(например,/mnt/ubuntu) - Права
sudo - Установленные утилиты
rsync,tar,fsck
Пошаговая инструкция
Шаг 1: Подготовка chroot-окружения
Убедитесь, что chroot смонтирован правильно и доступен для чтения/записи. Проверьте наличие lost+found, где хранятся удалённые файлы:
sudo ls -la /mnt/ubuntu/lost+found
Если каталог отсутствует, вероятно, файловая система была отформатирована — первым делом запустите fsck.
Шаг 2: Запуск fsck для проверки целостности
Перед копированием файлов проверьте и, при необходимости, исправьте ошибки файловой системы:
sudo chroot /mnt/ubuntu /usr/bin/fsck -y /dev/sdb1
Замените /dev/sdb1 на устройство, которое использует chroot. Подтвердите запросы fsck, чтобы предотвратить дальнейшее повреждение данных.
Шаг 3: Копирование файлов из lost+found
Рекомендуемый способ — rsync, так как он сохраняет права доступа и символические ссылки:
rsync -av /mnt/ubuntu/lost+found/ /home/user/restored/
Если rsync не установлен, используйте cp -a:
sudo cp -a /mnt/ubuntu/lost+found/. /home/user/restored/
Шаг 4: Восстановление с помощью tar (альтернативный метод)
Если rsync не подходит (например, для архивации всего дерева), создайте архив и распакуйте его:
tar -C /mnt/ubuntu lost+found -cf /tmp/lost+found.tar
tar -xf /tmp/lost+found.tar -C /home/user/restored/
Шаг 5: Проверка результата
После копирования проверьте целостность восстановленных файлов:
ls -l /home/user/restored/
find /home/user/restored/ -type f -name "*.txt" -print
Убедитесь, что нужные файлы присутствуют и имеют корректные права доступа. При необходимости скорректируйте их:
chmod 644 /home/user/restored/*.txt
Проверка результата
Если список файлов теперь содержит ранее удалённые данные, восстановление успешно. Рекомендуем создать бэкап chroot в будущем, чтобы избежать подобных ситуаций:
rsync -av /mnt/ubuntu/ /backup/chroot_backup/
Возможные проблемы
- Отсутствие
lost+found: Это означает, что удалённые данные не сохранились. Восстановите систему из снимка или выполните глубокое восстановление с помощьюtestdisk. fsckтребует ручного вмешательства: Если устройство заблокировано, размонтируйте его (sudo umount /mnt/ubuntu) перед запускомfsck.- Недостаточно места для восстановления: Убедитесь, что целевая директория имеет свободное пространство, иначе копирование прервётся.
- Повреждённые символьные ссылки:
rsyncавтоматически исправляет их; при использованииcpвручную проверьтеreadlink.
Следуйте этим советам, и вы сможете безопасно восстановить данные из chroot-окружения в любой ситуации.