If i help You, send me BTC please 1CJGz4UGyL7hTjPeN8j7fu9LRmmWiWSRHi

Как восстановить фотографии в Ubuntu?

Постов 94 из 175

Отформатировал как-то раз мой коллега свой внешний USB-HDD, а потом оказалось, что на нем до этого хранился семейный видео- и фото-архив за несколько лет. В единственном экземпляре. С такой проблемой этот коллега обратился ко мне. Погуглив на тему восстановления данных в Linux, я нашел Testdisk, но как-то не сложилось у меня с ним — то ли вопросов в его настройках перед собственно восстановлением много было, то ли мне лень было на них отвечать, в общем не пошло. Но параллельно с Testdisk я узнал о существовании еще одного программного обеспечения по восстановлению данных от этого же производителя — Photorec. Он то мне и помог, и, хотя есть подробнейшее руководство по его использованию, опишу шаг за шагом, что же сделал я и как в итоге у меня получилось не просто восстановить данные, но и довольно удобно рассортировать полученное, отделив мусор от нужных данных.

Итак,

1 Этап. Восстановление. Photorec.

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

1. Устанавливаем Testdisk из Центра приложений Убунту, или в терминале:

sudo apt-get install testdisk

Вместе с testdisk установится и photorec.

2. Запускаем photorec из терминала:

sudo photorec

В окне терминала появится информация о запущенной программе и список обнаруженных носителей информации, переход между которыми осуществляется стрелками вверх\вниз, выбор — «Proceed», отмена — «Quit» :

Выбираем нужный нам носитель и нажимаем «Enter».

3. Далее появится окно с выбором обнаруженных разделов носителя:

Если их несколько — то стрелками выбираем нужный и нажимаем «Enter», и тем самым переходим к выбору типа файловой системы на нужном разделе:

4. Если файловая система носителя — ext* (Линукс-подобная система) — выбираем пункт [ext2/ext3], иначе выбираем пункт [Other…], нажимаем Enter. Я выбрал пункт 2, т.к. мой носитель был отформатирован в Windows и файловая система его — Fat.

5. Далее попадаем в окно выбора пространства для поиска: — либо произвести поиск в пространстве  не занятом файловой системой — пункт  [Free], либо искать на всем разделе — пункт [Whole]:

Я выбрал второй пункт, затем открыл свой файловый менеджер и на разделе другого носителя, не того, с которого восстанавливаем данные, создал каталог для вывода результатов восстановления. Свободного места на этом носителе должно быть НЕ МЕНЬШЕ, чем объем раздела, с которого восстанавливаем данные, затем вернулся к окну с photorec и нажал «Enter».

6. В следующем окне Photorec вывел для выбора список каталогов, куда будут сохранены результаты восстановления. Стрелками вверх\вниз выбираем каталог, созданный в предыдущем пункте:

И нажимаем клавишу «C».

Процесс восстановления запустится и в окне начнет выводиться отчет о найденных, восстановленных файлах, их тип и количество:

Маленький раздел (8 Гигабайт) восстанавливался несколько минут, внешний USB-HDD на 500 Гигабайт восстанавливался около 8 часов на моем HP 4530s c 64-битной Ubuntu 12.04.

В результате «Восстановительной работы» Photorec я получил 350 Гигабайт файлов с названиями типа «f0185280.*» где «*» — расширение файла, сложенных примерно по 500 или 1000 штук в каталоги с названием типа recup_dir.1, recup_dir.2. Мне нужно было отобрать среди них фотографии и видеофайлы.

2 Этап. Перемещение и переименование. Krename.

Воспользовавшись программой Krename (установить можно из Центра приложений Убунту), я переместил все найденные Photorec-ом файлы в один каталог, попутно переименовав их по дате их создания:

1. открываем Krename:

2. Нажимаем на ссылку по середине окна «Add some files» или на кнопку «Добавить» в меню справа.

3. Выбираем в окне открывшегося файлового менеджера один или несколько (с нажатой клавишей Shift или CTRL) каталогов, файлы из которых необходимо переименовать и переместить:

3. Переходим на вкладку «Destination» сверху, выбираем радиокнопку «Copy files to destination directory», и прописываем или выбираем каталог для сохранения файлов (у меня это  /home/alex/1):

4. Переходим на вкладку «Filename», на подвкладке «Advanced filename» в поле «Шаблон» ставим курсор перед значком доллара, нажимаем в конце строки с этим полем кнопку «Функции»:

5. Среди огромного количества возможных шаблонов переименования в правой колонке выбираем пункт «Date and system functions» а в левой «[creationdate;yyyy-MM-dd]»:

нажимаем «Insert» и в основном окне программы в нижней части появляется список предварительных вариантов переименованных файлов типа «2012-10-05f2326902.mp3»:

Нажимаем «Готово» и ждем пока программа переименует и переместит все файлы в каталог /home/alex/1.

Стоит отметить, что Krename может извлечь все доступные данные о файле (дату и место создания, разрешение, частоту и т.п.) и поместить их в название файла.

3 этап. Сортировка. Скрипт.

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

#!/bin/sh
ARCHIVE=/home/alex/sorted
# Путь, где складывать результаты сортировки
for f in "$@"; do
# Для всех файлов, каталога, откуда запущен скрипт
DT=$(exiftool -s -DateTimeOriginal "$f")
# Извлечь в переменную DT дату съемки видео или фото
YEAR=$(echo $DT|awk '{print $3;}'|awk -F: '{print $1;}')
# Извлечь в переменную YEAR год съемки
MONTH=$(echo $DT|awk '{print $3;}'|awk -F: '{print $2;}')
# Извлечь в переменную MONTH месяц съемки
TARGET="$ARCHIVE/$YEAR/$MONTH"
install -d "$TARGET" && \
install "$f" "$TARGET"
# Создать каталог для файла
echo "$f -> $TARGET"
# Скопировать файл
done

Приведенный выше код нужно скопировать в текстовый файл, сохранить в каталог с нашими восстановленными и переименованными данными как, например, файл sorting.sh, дать ему права на исполнение либо из терминала:

sudo chmod "+x" /home/alex/1/sorting.sh

либо в свойствах файла в файловом менеджере на вкладке «Права доступа» поставить галочку «Сделать исполняемым»:

Далее в терминале переходим в каталог с данными и скриптом:

cd /home/alex/1

И запускаем скрипт:

sh /home/alex/1/sorting.sh *

В результате его работы в каталоге «/home/alex/sorted» (первая переменная в скрипте — подставьте сюда свое значение) появятся подкаталоги с названиями ..2009, 2010.., внутри которых будут созданы подкаталоги 01,02,03..12 , внутри которых будут помещены фото и видео, сделанные в соответствующий период времени.

Все остальные файлы, которые не имеют параметра «exiftool DateTimeOriginal» — т.е. те, которые были созданы не камерой или фотоаппаратом, а каким-то другим путем — поместятся в корень каталога /home/alex/sorted.

Фото и видео могут быть помещены в неправильные каталоги по годам типа 2036 и т.п. — если на камерах, с которых производилась съемка была неправильно выставлена дата.

Снимки и видео не содержащие exif мета-данных — тоже сочтутся мусором и будут помещены вне каталогов сортировки.

ИТОГ

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

, , ,

dasha27/05/2013 at 0:41Reply

doors.txt;10;15

Menu