Поиск по сайту:

Как восстановить удаленный файл в Linux


Это когда-нибудь случалось с вами? Вы поняли, что удалили файл по ошибке — либо с помощью клавиши Del, либо с помощью rm в командной строке.

В первом случае вы всегда можете зайти в Корзину, найти файл и восстановить его в исходное местоположение. А как насчет второго случая? Как я уверен, вы, наверное, знаете, командная строка Linux никуда не отправляет удаленные файлы — она УДАЛЯЕТ их. Бездельничать. Они ушли.

Рекомендуется к прочтению: Как восстановить удаленные файлы/каталоги с помощью инструмента «Скальпель»

В этой статье мы поделимся советом, который может помочь предотвратить подобное с вами, а также инструментом, который вы можете использовать, если в какой-то момент вы все равно будете достаточно неосторожны, чтобы сделать это.

Создайте псевдоним для «rm -i»

Переключатель -i при использовании с rm (а также с другими инструментами работы с файлами, такими как cp или mv) вызывает появление запроса перед удалением файла.

То же самое относится к копированию, перемещению или переименованию файла в месте, где уже существует файл с таким же именем.

Это приглашение дает вам второй шанс подумать, действительно ли вы хотите удалить файл — если вы подтвердите запрос, он исчезнет. В таком случае извините, но этот совет не защитит вас от вашей же невнимательности.

Чтобы заменить rm псевдонимом 'rm -i', выполните:

alias rm='rm -i'

Команда alias подтвердит, что rm теперь имеет псевдоним:

Однако это будет продолжаться только во время текущего сеанса пользователя в текущей оболочке. Чтобы сделать изменение постоянным, вам необходимо сохранить его в ~/.bashrc (в некоторых дистрибутивах вместо этого может использоваться ~/.profile), как показано ниже:

Чтобы изменения в ~/.bashrc (или ~/.profile) вступили в силу немедленно, создайте файл из текущей оболочки:

. ~/.bashrc

Инструмент криминалистики – Foremost

Надеемся, вы будете осторожны со своими файлами и вам нужно будет использовать этот инструмент только при восстановлении утерянного файла с внешнего диска или USB-накопителя.

Однако, если вы понимаете, что случайно удалили файл в своей системе и собираетесь паниковать — не делайте этого. Давайте, прежде всего, взглянем на инструмент криминалистики, который был разработан для такого рода сценариев.

Прежде всего, чтобы установить CentOS/RHEL 7, вам необходимо сначала включить Repoforge:

rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
yum install foremost

Тогда как в Debian и его производных просто выполните

aptitude install foremost

После завершения установки давайте приступим к простому тесту. Начнем с удаления файла изображения с именем nosdos.jpg из каталога /boot/images:

cd images
rm nosdos.jpg

Чтобы восстановить его, используйте в первую очередь следующее (сначала вам нужно будет определить базовый раздел — в этом случае /dev/sda1 находится там, где находится /boot):

foremost -t jpg -i /dev/sda1 -o /home/gacanepa/rescued

где /home/gacanepa/rescued — каталог на отдельном диске — имейте в виду, что восстанавливать файлы на том же диске, где находились удаленные, — неразумный шаг.

Если при восстановлении вы займёте те же сектора диска, где раньше находились удалённые файлы, восстановить что-либо может оказаться невозможным. Кроме того, перед выполнением восстановления важно прекратить всю свою деятельность.

После завершения выполнения восстановленный файл (если восстановление было возможно) будет найден в каталоге /home/gacanepa/rescued/jpg.

Краткое содержание

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

Как всегда, не стесняйтесь сообщать нам, если у вас есть вопросы или комментарии. Не стесняйтесь оставить нам сообщение, используя форму ниже.