(Попередження, зразки зображень дещо NSFW; роботи з татуюваннями показують трохи сиськи.)
Раніше у мене був Mac OS X розріджений пакет dmg і використовував DropBox на двох комп'ютерах. Я хотів би додати до мого безпечного розрідженого пакета, який був у моїй папці DropBox. Одного разу я пішов на інший комп'ютер, він помітив, що були зроблені зміни, і зробив те, що він повинен, синхронізував розріджений пакет.
Обидві зображення розрідженого пакета були пошкоджені. Мабуть, дані вилки ресурсів Mac OS X або інші мета-дані були втрачені або не збережені. Тепер я використовую DropBox для простих форматів і не довіряю йому для синхронізації декількох комп'ютерів за межами .txt, .jpg, .png і подібних. Якось мені вдалося відновити деякі файли, підібрати і ткнути на "смуги" в розрідженому пакеті і принаймні отримати розріджений пакет для відкриття і проходження перевірки безпеки. ~ 90% файлів знаходяться в хорошій формі, ~ 10% до цих пір, я не зміг нікуди відкрити їх.
Зразки зображень, які використовуються в наведених нижче тестах ... http://dl.dropbox.com/u/340087/drops/05.14.11/DSC02322-bad.jpg http://dl.dropbox.com/u/340087/drops/05.14.11/DSC02322-good.jpg
Ось що я знаю:
DSC02322-bad.jpg
DSC02322-good.jpg
Ніяке додаток не відкриє файл "DSC02322-bad.jpg". Навіть термінальні команди подібні cat
, head
, tail
інші показують, як ніби вона була порожня.
<pre>MD5 (DSC02322-bad.jpg) = 052b34d47cbcc64c208230d84098ceb3
MD5 (DSC02322-good.jpg) = a37995df587f7f146b8950199ecae544</pre>
(Контрольні суми md5 різні, файли дійсно різні.)
Розміри файлів однакові:
-rw-r--r--@ 1 me staff 2178036 May 26 2009 DSC02322-bad.jpg -rw-r--r--@ 1 me staff 2178036 May 14 23:26 DSC02322-good.jpg
Якщо я виконую більш глибокий перелік файлів, як показано нижче, однаковий розмір файлу, але метадані відрізняються ...
2128 -rw-r--r--@ 1 me staff 2178036 May 26 2009 DSC02322-bad.jpg com.apple.metadata:kMDItemWhereFroms 179 2128 -rw-r--r--@ 1 me staff 2178036 May 14 23:26 DSC02322-good.jpg com.apple.metadata:kMDItemWhereFroms 145 com.apple.quarantine 42
Ось a file
лістинг виведення обох файлів
$file DSC02322-* DSC02322-bad.jpg: data DSC02322-good.jpg: JPEG image data, EXIF standard 2.21
Це цілком перекручує мене:
Скопіюйте файл до файлу "z-copy.txt", вкажіть його file
, потім cat
файл, який є пустим для cat
однак розмір файлу залишається 2178036 байтами.
me@macbook:\ $cp DSC02322-bad.jpg z-copy.txt me@macbook:\ $file z-copy.txt z-copy.txt: data me@macbook:\ $cat z-copy.txt $ls -la z-copy.txt -rw-r--r--@ 1 me staff 2178036 May 15 00:01 z-copy.txt
Інші речі, які я намагався:
$cat DSC02322-bad.jpg > try-again.txt -rw-r--r--@ 1 me staff 2178036 May 14 23:53 DSC02322-bad.jpg -rw-r--r--+ 1 me staff 2178036 May 15 00:04 try-again.txt $cat try-again.txt ( Returns an empty line )
Жоден з файлів не має видів ресурсів, DropBox, здається, вибухнув їх, а вилка даних на обох «схожих» на мене. Все, що я можу зробити, це визначити, що файли відрізняються через md5
неправильний збіг і a diff
, але звичайний розмір інформації про файл та інші тести роблять їх "ідентичними". Дублювання файлу не допомагає. Я впевнений, що мені потрібно лише додати дані у довільні дані заголовка jpg, але я не впевнений, які інструменти найкраще використовувати для цього завдання, або які дані додати. У мене є резервні копії цих конкретних файлів, і вони не є такими важливими, але є й інші, не всі jpg, такі як файли flv та патентовані документи, які мені потрібні, щоб повернутися, які я більше не можу. Багато хто занадто старі, щоб їх можна було відшкодувати за допомогою DropBox.
Граючи в різних програмах, які можуть читати дані jpg-файлу, одна помилка, яку я отримую, робить невеликий сенс:
Could not place the document ‘DSC02322-bad.jpg’ because a JPEG marker segment length is too short (the file may be truncated or incomplete).
Деякі останні зусилля змушували зробити невеликий jpg, 1x1 px і додати / додати дані до поганого файлу, сподіваючись, що дані заголовка дозволять мені відкрити файл, скопіювати його в новий документ і зберегти чисту копію. Поки що це не спрацювало.
Я завантажив в imgur і кілька інших служб обміну зображеннями, всі вони помиляються з пошкодженим повідомленням файлу. Я не мав можливості спробувати прочитати файл з php або іншою мовою сценаріїв, що може дати мені більш конкретні повідомлення про помилки. Графічний конвертер стає найближчим, кажучи, що файл пошкоджений, фактично показує мені вилку даних, і дозволяє мені спробувати вгадати кращий сценарій для відкриття файлу. Я все ще нічого не отримую.
Тобто про все, для чого я хороший у сьогоднішньому усуненні несправностей. Я ще не вклала в нього жодних зусиль, але це скоро стане війною, в якій мені доведеться перемагати :) Будь-які пропозиції?
Я був би радий дізнатися, що CLI додаток здатне принаймні показати мені, що ці 2178036 байт.
Ну добре, схоже diff
принаймні, це трохи розумне, не те, що це допомагає мені багато чого в цій точці:
$diff DSC02322-* Binary files DSC02322-bad.jpg and DSC02322-good.jpg differ
Пропозиції? Дякую всім.