суббота, 15 декабря 2007 г.

Как восстановить ISO?

Уже во второй раз возникла ситуация когда скачанный из сети образ оказался битым. В прошлый раз это был образ Ubuntu 7.10, на этот раз неудача настигла при скачивании Visual Studio 2008, размер образа ISO чуть менее 4 Гб, перекачивать нудно и долго. Контрольная сумма MD5 скачанного не совпала с оригинальной ;-( Недолго думая сделал копию файла и далее последовательность действий приведшая к восстановлению оригинального файла из битого:

  1. Смонтировал образ в виртуальный DVD привод;
  2. Нашел в сети список содержимого с контрольными суммами;
  3. Сверил контрольные суммы содержимого образа со списком, нашел битый файлик - msdn\cab13.cab размером 45 Мб;
  4. С помощью программы UltraISO выяснил смещение по которому этот файл находится в образе - 861990912-909099491. UltraISO показывает смещение в секторах, 1 сектор = 2 кб.
  5. Используя cURL скачал необходимый файл - curl -r 861990912-909099491 -o cab13.cab http://...VS2008TeamSuiteENU90DayTrialX1429235.iso
  6. Вписал файл в образ командой bcopy cab13.cab VS2008TeamSuiteENU90DayTrialX1429235.iso /ds 861990912
  7. Проверил контрольную сумму получившегося файла. Совапала!

Если смонтировать образ неполучается:

  1. Скачать заголовок ISO файла - curl -r 0-1000000 -o begin.piece http://... , вторая цифру взял наугад оно может быть и больше;
  2. Слить кусок с образом - bcopy begin.piece VS2008TeamSuiteENU90DayTrialX1429235.iso /ds 0;
  3. Перейти к шагу 1.


UPD.
Для определения смещения в пункте 4 я воспользовался программой UltraISO.
Ищем файл, контрольная сумма которого не сошлась с оригинальной.
Eg.
sbm.bin, размер 1440 kb или 1474560 байт

Открываем его свойства и смотрим параметр LBA, его значение нужно умножить на 2048 (размер сектора), полученная цифра (1616244736) является смещением начала файла в файле образа. Сложив размер и смещение начала файла получаем смещение окончания (1617719296).

5 комментариев:

Анонимный комментирует...

Можно разжевать подробно, а то мне уже с 3-го пункта непонятно!

Анонимный комментирует...

А как получить контрольную сумму с файла с сайта microsoft.com например?

aaz комментирует...

товарищи из Microsoft не указывают контрольные суммы файла, но гуглятся они без проблем по имени файла и MD5

Анонимный комментирует...

стопор на 4 пункте, как найти номер этого смещения файла 861990912-909099491 чтоб в UltraISO оно так выглядело?

Анонимный комментирует...

Каждый шаг со screen'ами было бы здорова. А так не понятно.