lleo_kaganov (lleo_kaganov) wrote,
lleo_kaganov
lleo_kaganov

Categories:

Вселенские размышления о судьбах фоток в партициях ext3/ext4

это перепост заметки, оригинал находится на моем сайте: https://lleo.me/dnevnik/2020/11/07

Волшебным образом оказалась удаленной папка /r/FOTO с архивом фотографий, и вот уже третий день я пытаюсь ее восстановить. Это было место на сервере с каталогами «Конвенты и поездки», «Мероприятия», «Семья», «Документы и сканы» и так далее — и в каждой все разложено по годам за 20 лет.

Несмотря на самостоятельно утвержденный праздник «11 марта День Бэкапа», я конечно ни хрена его не соблюдал даже раз в год. Как теперь выяснилось, последний раз бэкап архивов я делал примерно в феврале 2014 при замене роутера с Asus на Banana Pi, когда в нем менялся носитель и способ его включения. Нынче же, скорее всего, дело было так: на прошлой неделе я отдавал другу Кириллу свой старый ноутбук и чистил от мусора. Вместо того, чтобы удалить папку /FOTO в ноутбуке я зачем-то полез сравнивать ее с одноименной, но в тысячу раз более крупной /FOTO сервера, хотя было понятно, что ноутбук давно под снос, и ничего не скопированного там быть не могло. В итоге, скорее всего, тупо нажал не туда и удалил /FOTO сервера вместо ноутбука. Но может что-то случайно нажал Стаська или Маргарита — мало ли у кого доступ к домашнему серверу. Или просто случился сбой.

Теперь у меня отсутствуют последние 6 лет биографии — только в дневнике остались некоторые фотки. Бэкап дневника тоже, разумеется, не сделан, но не до того пока...

С одной стороны, да и фиг с ними, с фотками. Чего ради их хранить? От Пушкина вообще фоток не осталось, а все помнят его жизнь по часам. А от Васи Пупкина останутся тысячи IMAGE000.NEF после каждой воскресной рыбалки, и кому оно нужно? Ну правда, так ли мне нужен архив фоток? На Небесном Ютубе вся наша жизнь и так записана.

С другой стороны — что-то во мне говорит, что надо попытаться восстановить. Вот и пытаюсь. Беглое изучение проблемы показало, что технологии сделали большой шаг назад в пещеры. Это в системе DOS когда-то можно было восстановить стертые файлы — пропадала только первая буква имени, но существовали кучи удобных утилит, которые наперебой показывали удаленные файлы и предлагали их восстановить. Современные «журналирующие» системы типа ext3/ext4 совершенно лишены этого недостатка! Тут сделано всё, чтобы при удалении информации все её следы мгновенно разлагались на плесень и битовый мёд с потерей всех связей. Где там «журналирование» — не знает ни один софт.

Диск живет своей растительной жизнью в мире пронумерованных байтов — хороших, плохих, занятых или свободных. Современный диск знает много о себе — своем состоянии, колебаниях температуры прошлым летом, помнит все свои сбои с момента рождения. Но о своем содержимом диск не знает ничего. Поверх диска иногда из говна и палок очередная операционная система выстраивает свою не относящиеся к диску логическую приблуду типа «Корзины», куда сама кладет файлы, удаленные средствами своих собственных оконных менеджеров. Если же никаких оконных менеджеров и «Корзин» не было заранее установлено и включено (а речь у нас о серверном архиве), то диск остается горой молекул. Словно мы живем в мире розовых единорогов, когда случайно удаленный файл или папка — такое невероятное событие в жизни пользователя ПК, как наводнение в Чертаново до 6-го этажа. Поэтому никаких готовых инструментов, типа держать на балконе надувную лодку, никто никогда не создавал.

Обзор существующих инструментов намекает, что раз в десять лет (не чаще) пользователи сталкиваются с проблемой потери данных, но только фоток JPG. Как я. Хотя я мог удалить и папку /lleo с литературными архивами за 30 лет от первых owes.lst еще с БК0010 до всяких Поэпизодник_драфт3.docx Да и семейных видео MOV в папке /FOTO тоже жалко. В общем, для поиска в молекулярном говне обрывков JPG (и только их) есть софт! Он одинаково убог для Юникса и Мака (на Маке он еще и платный, я его покупал 10 лет назад, чтобы помочь Наталье восстановить утерянную фотосъемку по работе). Софт безнадежно консолен. И результат дает ужасающий. Если в мире существует нормальный софт, который найдет все удаленные папки и их подкаталоги с файлами и предложит отметить на экране галочками, какие восстановить — то я такого не нашел.

А результатом двухчасовой консольной работы recoverjpeg /dev/sda1 стала флешка, заполненная файлами с именами image00001.jpg — image139916.jpg Сто сорок тыщ анонимных фоток в одной папке. Порой сильно помятых фоток — загадочные артефакты проехались тракторными гусеницами по каждой третьей, а в каждую четвертую встроили окошко с каждой пятой внутри. Как правило, все без геотэгов и времени создания в exif-информации, потому что в поездках и на мероприятиях чаще была зеркалка, а не мобильник. Даже если всё нужное удалось восстановить, что с этим предполагается делать? Найти среди 139916 безымянных фоток что-то или рассортировать вручную — нереально. Если тратить на просмотр каждого снимка 5 секунд, потребуется ровно месяц ежедневного восьмичасового труда. В общем, пока что я набросал своих скриптов, которые каталогизируют все фотки в базу, а потом можно сравнивать по MD5, какие из найденных фоток дублируются между собой (оказалось, около 10%), и какие из них имеются в архиве до 2014 года на своих местах. Хотя бы так пока сократим кучу.

Но вообще скажу, что я изумлен. Очень давно (да практически никогда) я не сталкивался с потерей данных и необходимостью их восстанавливать, и не предполагал, что в этом плане всё становится НАСТОЛЬКО хуже год от года. Человечество тратит ниибическое количество ресурсов на придумывание идиотских форматов с бессмысленным дублированием самой ничтожной информации. На магазинном чеке дата покупки трижды повторяется. А предусмотреть в ext4 хоть грамм места для запоминания удаленных структур и создать удобные инструменты для работы — нет, что вы... Сегодня редкий файл JPG весит меньше 8мб, информация о его структуре и расположении — в десять тысяч раз меньше. Вам, сука, лень было найти в дисковой структуре сраные маркерные кусочки байт для дублирования всех стираемых каталогов, связей и последовательностей транзакций?! На дворе — на минуточку — 2020 год, человечество вроде немного имеет представление о причинно-следственных связях, оформленных в виде списка транзакций. В любом сраном софте давно есть кнопки undo и redo, позволяющие откатить обратно каждую написанную букву или нарисованную линию. Но когда речь не о лишней букве в файле DOC и лишней точке в файле PNG, а о самих файлах — тут, конечно, никаких инструментов отката нет, удален так удален. Это нормально? Что бы ни случилось с диском — человек удалил папку, удар осыпал пару магнитных секторов, сбойнувший софт затер пару блоков, сбой питания закинул нули в то место, где хранили каталог — всё. Информация пользователя по-прежнему лежит на своем месте неповрежденной, но это место никому теперь не известно. Данные превратились в триллиард молекул говна, и восстановить их может лишь особая лаборатория за триллиард денег и человеко-часов. Что это, если не промышленное вредительство и впаривание облачных сервисов? У которых насколько я догадываюсь, те же проблемы с удаленным добром? Я уже не говорю, что основное место хранения фоток — смартфоны. Вы когда-нибудь слышали про инструмент, позволяющий легко и быстро восстановить в смартфоне случайно стертую фотку — чтоб официально, без хакерской перепрошивки аппарата на root-права? Нет, блять, ведь никому во всем мире не случалось удалить по ошибке нужные файлы в смартфоне, нет такой проблемы, оказывается. Но речь не про смартфон.

В общем, если вам известен какой-то нормальный Linux-софт для восстановления стертых структур с файлами, кроме этих ужасных консольных recoverjpeg, photorec и прочих, поделитесь знанием?



это перепост заметки, оригинал находится на моем сайте: https://lleo.me/dnevnik/2020/11/07
Subscribe

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments