首頁  >  文章  >  系統教程  >  Linux 系統中恢復已刪除檔案的方法

Linux 系統中恢復已刪除檔案的方法

王林
王林轉載
2024-01-14 18:48:05547瀏覽
導讀 當使用者意外地刪除了一個仍然需要的檔案時,大多數情況下,是沒有簡單的方法可以重新找回或重建這個檔案。不過,幸運的是文件是可以透過一些方法恢復的。當用戶刪除了一個文件,該文件並沒有消失,只是被隱藏了一段時間。

Как это работает, объясняется здесь. В файловой системе есть так называемая таблица размещения файлов, которая отслеживает расположение файлов в единицах хранения (таких как жесткие диски, карты MicroSD, флэш-накопители и т. д.). Когда файл удаляется, файловая система выполнит одну из двух задач в таблице размещения файлов: пометит запись файла в таблице размещения файлов как «свободное пространство» или удалит запись файла в таблице размещения файлов и соответствующее пространство. помечается как свободное пространство. Теперь, если новый файл необходимо поместить в место хранения, операционная система поместит файл в место, помеченное как пустое. После того, как новый файл будет записан в это пустое пространство, удаленный файл полностью исчезнет. Когда необходимо восстановить удаленный файл, пользователь никогда не должен снова работать с каким-либо файлом, поскольку, если «пустое пространство», соответствующее файлу, занято, файл невозможно будет восстановить.

怎样在 Linux 系统中恢复被删除文件

Как работает программа восстановления?

Большинство файловых систем просто помечают пространство как пустое (при удалении файлов). В этих файловых системах программа восстановления просматривает таблицу размещения файлов, а затем копирует удаленные файлы в другое хранилище. Если файл скопирован на другие удаленные запоминающие устройства, которые необходимо восстановить, то пользователь может потерять желаемый удаленный файл.

Файловые системы редко стирают записи в таблице размещения файлов. Если файловая система делает это, программа восстановления восстанавливает файлы. Программа восстановления сканирует заголовки файлов в хранилище.Все файлы имеют специальную строку кодировки, расположенную в начале файла, также называемую магическим числом. Например, магическое число скомпилированного файла класса JAVA — «CAFEBABE» в шестнадцатеричном формате. Итак, если вы хотите восстановить файлы этого типа, программа восстановления найдет «CAFEBABE» и скопирует файлы на другое устройство хранения. Некоторые программы восстановления могут искать файлы определенного типа. Если пользователь хочет восстановить PDF-файл, программа восстановления будет искать магическое число «25504446» в шестнадцатеричном формате, которое в кодировке ASCII представляет собой «%PDF». Программное обеспечение для восстановления будет искать все магические числа, а затем пользователь сможет выбрать, какой удаленный файл восстановить.

Если часть файла будет перезаписана, весь файл будет поврежден. Зачастую файл можно восстановить, но его содержимое уже бесполезно. Например, восстановление поврежденного файла JPEG будет бессмысленным, поскольку программа просмотра изображений не сможет создать изображение из поврежденного файла. Следовательно, даже если файл принадлежит пользователю, файл будет бесполезен.

Прежде чем мы продолжим, приведенная ниже информация поможет программе восстановления найти правильное запоминающее устройство. Все устройства монтируются в каталог /dev/. Имя, присвоенное каждому устройству операционной системой (а не имя, данное каждому разделу или устройству администратором), соответствует определенным правилам именования.

Имя второго раздела первого жесткого диска SATA будет sda2. Первая буква имени намекает на тип хранилища, в данном случае SATA, но буква «s» также может относиться к SCSI, FireWire или USB. Вторая буква «d» относится к диску. Третья буква относится к номеру устройства, т. е. буква «а» относится к первому SATA, а «b» — ко второму. Последнее число представляет раздел. Имя устройства без номера раздела представляет все разделы для этой установки. В приведенном выше примере соответствующее имя — sda. Первой буквой имени также может быть «h», что соответствует жесткому диску PATA (IDE).

Ниже приведены примеры правил именования. Если у пользователя есть жесткий диск SATA (sda), устройство имеет 4 раздела — sda1, sda2, sda3 и sda4. Пользователь удаляет третий раздел, но имя четвертого раздела, sda4, останется неизменным до тех пор, пока четвертый раздел не будет отформатирован. Затем пользователь вставил карту памяти USB (sdb) с разделом - sdb1-, добавил жесткий диск IDE с разделом - hda1-, а затем добавил жесткий диск SCSI - sdc1. Затем пользователь извлек карту памяти USB (sdb). Теперь жесткий диск SCSI по-прежнему называется sdc, но если SCSI вынуть, а затем вставить, его имя изменится на sdb. Хотя присутствуют и другие устройства хранения данных, в названии этого диска IDE все равно будет буква «а», поскольку это первый диск IDE, а имена устройств IDE учитываются отдельно от устройств SCSI, SATA, FireWire и USB.

Восстановление с помощью TestDisk:

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

FAT16, FAT32, exFAT (FAT64), NTFS и ext2/3/4:

TestDisk — это бесплатное программное обеспечение с открытым исходным кодом, работающее под такими операционными системами, как Linux, *BSD, SunOS, Mac OS X, DOS и Windows. TestDisk также можно установить, набрав sudo apt-get install testdisk. TestDisk имеет множество функций, но эта статья будет посвящена только восстановлению файлов.

Используйте права root, чтобы открыть TestDisk из терминала, введя команду sudo testdisk.

Теперь приложение командной строки TestDisk будет выполнено. Дисплей терминала изменится. TestDisk спрашивает пользователя, может ли он сохранять журналы, это полностью зависит от пользователя. Если пользователь восстанавливает файлы из системного хранилища, вести логи нет необходимости. Доступные параметры: «Создать», «Добавить» и «Без журнала». Если пользователь хочет вести журналы, они будут храниться в домашнем каталоге пользователя.

怎样在 Linux 系统中恢复被删除文件

На следующем экране устройства хранения перечислены в формате /dev/*. В моей системе хранилищем является /dev/sda, что означает, что моим хранилищем является жесткий диск SATA (sd), и это первый жесткий диск (a). Емкость каждой единицы хранения указана в гигабайтах. Используйте клавиши «вверх» и «вниз», чтобы выбрать устройство хранения, и нажмите, чтобы войти.

怎样在 Linux 系统中恢复被删除文件

На следующем экране отображается список таблиц разделов (также называемых таблицами сопоставления разделов). Точно так же, как файлы имеют таблицы конфигурации файлов, разделы имеют таблицы разделов. Раздел — это сегментация на устройстве хранения. Например, почти во всех системах Linux существует как минимум два типа разделов — EXT3/4 и Swap. Каждая таблица разделов будет кратко описана ниже. TestDisk поддерживает не все типы секционированных таблиц, поэтому это не полный список.

怎样在 Linux 系统中恢复被删除文件

  • Intel — Этот тип таблицы разделов очень распространен в системах Windows и многих системах Linux.Его также часто называют таблицей разделов MBR.
  • EFI GPT — этот тип таблицы разделов обычно используется в системах Linux. Для систем Linux эта таблица разделов является наиболее рекомендуемой, поскольку концепции логических разделов или расширенных разделов не применимы к таблицам разделов GPT (таблица разделов GUID). Это означает, что пользователь Linux может выполнять мультизагрузку с нескольких типов систем Linux, если в каждом разделе есть одна система Linux. Конечно, есть и другие преимущества использования таблицы разделов GPT, но они выходят за рамки этой статьи.
  • Humax - Карта разделов Humax предназначена для устройств корейской компании Humax.
  • Mac — Карта разделов Apple (APM) для устройств Apple.
  • Нет - Некоторые устройства не имеют таблиц разделов. Например, многие игровые консоли Subor не используют карту разделов. Если пользователь попытается восстановить файлы с такого устройства с другими типами таблиц разделов, он будет сбит с толку, почему TestDisk не может найти какие-либо файловые системы или файлы.
  • Sun — Таблицы разделов Sun доступны для систем Sun.
  • Xbox -Xbox предназначен для устройств хранения данных, использующих карту разделов Xbox.

Если пользователь выберет «Xbox», даже если его система использует таблицу разделов GPT, TestDisk не сможет найти какие-либо разделы или файловые системы. Если бы TestDisk выполнялся на основе выбора пользователя, он мог бы угадать неправильно. (На рисунке ниже показаны выходные данные, когда тип таблицы разделов неправильный)

怎样在 Linux 系统中恢复被删除文件

Когда пользователь выбрал правильный параметр для своего устройства, на следующем экране выберите параметр «Дополнительно».

怎样在 Linux 系统中恢复被删除文件

Теперь пользователь увидит список всех файловых систем или разделов на своем устройстве хранения данных. Если пользователь выберет неправильную карту разделов, на этом этапе он узнает, что сделал неправильный выбор. Если ошибок нет, выделите раздел, содержащий удаленные файлы, перемещая текстовый курсор. Используйте клавиши со стрелками влево и вправо, чтобы выделить список, расположенный в нижней части терминала. Затем нажмите Enter для подтверждения.

怎样在 Linux 系统中恢复被删除文件

Появится новый экран со списком файлов и каталогов. Эти белые имена файлов — это файлы, которые не были удалены, а красные имена файлов — это файлы, которые были удалены. Самый правый столбец — это имя файла, следующий столбец справа налево — дата создания файла, а левый столбец — это размер файла (в байтах/битах), с «-» в крайнем левом углу. , " Столбцы "d", "r", "w" и "x" обозначают права доступа к файлу. «d» означает, что файл является каталогом, а другие условия разрешений не имеют особого отношения к этой статье. Элемент, представленный «.» в верхней части списка, представляет текущий каталог, а элемент, представленный «..» во второй строке, представляет каталог, расположенный выше текущего каталога, поэтому пользователь может перейти к каталогу, выбрав строка, в которой находится каталог.

Например, я хочу зайти в каталог «Xaiml_Dataset», который в основном состоит из удаленных файлов. Нажав клавишу «c» на клавиатуре, я восстановлю файл «computers.xaiml», после чего мне будет предложено выбрать каталог назначения, естественно, я должен поместить файл в другой раздел. Теперь, когда я нахожусь в своем домашнем каталоге, я нажимаю клавишу «c». (При выборе целевого каталога) Не имеет значения, какой каталог выделен. Текущий каталог является целевым каталогом, и в верхней части экрана отобразится сообщение «Копирование завершено». В моем домашнем каталоге будет каталог с именем «Xaiml_Dataset», содержащий файл Xaiml. Если я нажму «c» для большего количества удаленных файлов, файлы будут помещены в новые папки без запроса каталога назначения.

После выполнения этих шагов несколько раз нажимайте клавишу «q», пока не увидите нормальный вид терминала. Доступ к каталогу «Xaiml_Dataset» может получить только пользователь root. Чтобы решить эту проблему, используйте права root для изменения разрешений этого каталога и его подкаталогов. После этого файлы восстанавливаются и пользователь может получить к ним доступ.

Специальный ReiserFS:

Чтобы восстановить файл из файловой системы ReiserFS, сначала необходимо сделать резервную копию всех файлов раздела. Потому что этот метод может привести к потере файла в случае возникновения определенных ошибок. Затем выполните следующую команду, где DEVICE относится к устройствам, названным в формате sda2. Некоторые файлы будут помещены в потерянный каталог, а другие будут сохранены в том месте, где они были первоначально удалены.

рррее Восстановить удаленные файлы, открытые программой:

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

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

Предположим, в музыкальном проигрывателе есть файл MP3, и музыкальный проигрыватель не может сохранить файл MP3. В этом случае восстановление файла займет больше времени, чем раньше. К сожалению, не гарантируется, что этот подход будет работать на всех системах и приложениях. Сначала введите следующую команду.

рррее

Приведенная выше команда выведет список всех файлов, используемых smplayer. Этот список ищется в формате mp3 через конвейер с помощью команды grep. Ввод команды аналогичен следующему:

рррее

Теперь введите следующую команду, чтобы восстановить файл непосредственно из ОЗУ (/proc/ отображается в ОЗУ в системах Linux) и скопируйте файл в выбранную папку. Среди них cp относится к команде копирования, число 10037 в выводе соответствует количеству процессов, число 169 в выводе относится к дескриптору файла, «~/Music/» — это целевой каталог, а последний « music.mp3» — желаемый каталог пользователя. Имя восстановленного файла.

рррее Реальное удаление:

Чтобы гарантировать невозможность восстановления файла, вы можете использовать команду «стирания» жесткого диска. Стирание жесткого диска фактически записывает на жесткий диск бессмысленные данные. Например, многие программы стирания записывают на жесткий диск нули, случайные буквы или случайные данные. Никакое пространство не занято и не потеряно, ластик просто перезаписывает пустые биты. Если накопитель заполнен файлами и нет свободного места, все ранее удаленные файлы исчезнут и не подлежат восстановлению.

Цель очистки жесткого диска — гарантировать, что личные данные не будут видны другим. Например, компания может заказать несколько новых компьютеров, а генеральный директор решает продать старые компьютеры. Однако новый владелец компьютера может видеть некоторую конфиденциальную информацию компании или информацию о клиентах, такую ​​как номера кредитных карт, адреса и т. д. К счастью, компьютерные специалисты компании смогли очистить жесткие диски перед продажей старых компьютеров.

Чтобы установить программу удаления secure-delete, введите sudo apt-get install secure-delete. Эта команда установит сборку, содержащую 4 программы, чтобы гарантировать невозможность восстановления удаленных файлов.

  • srm — Удаление файла без возможности восстановления. Использование: srm -f ./secret_file.txt
  • sfill — стирает пустое пространство. Использование: sfill -f /mount/point/of/partition
  • sswap — Очистить пространство подкачки. Использование: sswap -f /dev/SWAP_DEVICE

Если компьютер действительно очистит эти удаленные файлы, выполнение задачи удаления займет больше времени. Пометить определенные места как пустые можно быстро и легко, но чтобы файлы исчезли навсегда, требуется некоторое время. Например, стирание накопителя может занять несколько часов (в зависимости от размера диска). В целом, текущая система работает довольно хорошо, потому что даже если пользователь очистит корзину, у него все равно будет еще один шанс изменить свое первоначальное мнение (или ошибку).


以上是Linux 系統中恢復已刪除檔案的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:linuxprobe.com。如有侵權,請聯絡admin@php.cn刪除