Как определить и заменить поврежденные файлы в поврежденном Ubuntu ISO?

14

Итак, это не совсем проблема с Ubuntu, а с ее установкой.

Каждый раз, когда я пытаюсь загрузить Ubuntu ISO (из любого источника), кажется, что он поврежден. То есть суммы MD5 никогда не верны.

Файлы ISO Ubuntu поставляются с файлом, в котором перечислены все файлы в ISO и их соответствующие MD5SUM.

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

Но я не знаю, как это сделать, и, конечно, чтобы усугубить ситуацию, я должен сделать это из Windows 7.

Кто-нибудь знает, как это исправить?

    
задан Hailwood 11.01.2013 в 05:03
источник

2 ответа

34

Собственно, я знаю, какой файл поврежден

Попытка объединить файлы из нескольких поврежденных образов ISO в один, хороший образ ISO не является хорошим подходом к этой проблеме. Вот почему.

Почти все данные в ISO-изображении принадлежат только одному файлу , casper/filesystem.squashfs .

На образ Ubuntu CD или DVD ISO, то есть. На образ компакт-диска сервера или альтернативный образ компакт-диска это совсем другая история.

Итак, теперь я могу сказать вам, какой файл почти наверняка поврежден на каждом из загруженных вами ISO-файлов: на всех этих файлах. Когда что-то повреждено в ISO Ubuntu, плохие байты почти всегда где-то там.

filesystem.squashfs является сам образ диска; он монтируется как часть загрузки системы на Live CD. Вы можете извлечь его из ISO, затем извлечь его содержимое, посмотреть, что повреждено, и заменить поврежденные файлы. Хотя вы можете монтировать или извлекать файловую систему squashfs в Windows, вы, скорее всего, считаете, что это нетривиальная задача. И это изображение сжато, поэтому нет никакой гарантии, что незначительное повреждение в содержащем ISO не повлияет на несколько файлов.

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

Вместо этого вы должны загрузить образ ISO с использованием более надежного метода.

Удобно, что один из них ( zsync ) аналогичен тому, что вы думаете, за исключением того, что он загрузит только нужные фрагменты файлов ISO, а не только необходимые файлы, содержащиеся в нем.

Убедитесь, что вы сравниваете правильную хешу MD5

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

Я предполагаю, что

  • у вас есть 12,04 LTS-изображение, и вы используете хэш MD5 для изображения 12.04.1 LTS

    (который не тот же файл ), < эм> или
  • у вас есть 12,04,1 LTS-изображение, и вы используете хеш MD5 для изображения 12,04 LTS, или
  • у вас есть 32-битное ("i386") изображение, и вы используете хеш MD5 для 64-битного изображения, или
  • у вас есть 64-разрядное ("amd64") изображение, и вы используете хеш MD5 для 32-битного изображения.

Список хэшей MD5 для каждого файла находится здесь.

В общем, если ваш хеш MD5 неправильный, но тот же для более чем одной загрузки, обычно

  • вы сравниваете с неправильным хэшем, или
  • файл поврежден на сервере (так что если это выглядит так, загрузите с другого зеркала и, если хотите, сообщите об ошибке в отношении содержимого ubuntu-сайта, чтобы проблема была исправлена), < эм> или
  • вы используете прокси или VPN, которые кэшируют веб-контент, и каким-то образом кэшировали поврежденную копию (загрузка из другого зеркала тоже должна исправить), или
  • вы загружаете по FTP, и проблема с сервером или с вашим FTP-клиентом приводит к тому, что файл переходит в текстовом режиме, а не в двоичном режиме (это повредит его и обычно коррумпирует его одинаково каждый раз), или
  • ваше соединение намеренно перехвачено и изменено злонамеренной третьей стороной, которая намеренно подает вам неправильный файл (это обычно маловероятно).

Вы можете вручную выбрать (другое) зеркало для загрузки внизу этой страницы .

Если ваш образ ISO действительно поврежден, вот несколько способов получить хороший файл.

ZSync

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

Способ работы zsync заключается в следующем: кто-то, предлагающий файл (например, проект Ubuntu), создает файл .zsync , который содержит много контрольных сумм - контрольных сумм, соответствующих многим небольшим частям файла, а не только одну контрольную сумму для весь файл. Вы начинаете с ниоткуда из ничего во весь файл.

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

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

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

Получение zsync для Windows

zsync традиционно работает в Unix-подобной системе (на самом деле это не Windows). Однако недавно был создан собственный порт Windows zsync , поэтому вы, вероятно, можете его использовать.

zsync - это программа командной строки, поэтому в Windows вы запускаете ее в командной строке. (Один из способов открыть командную строку - ввести cmd.exe в текстовое поле в меню "Пуск" и нажать Enter . Или, в Windows XP и более ранних версиях, Start & gt; Run & gt; cmd.exe .)

Другой способ: получение zsync для Cygwin

Если у вас есть проблемы с портом Windows zsync , вы всегда можете использовать версию Cygwin. Cygwin предоставляет Unix-подобную среду для Windows. Он не позволяет выполнять скомпилированные исполняемые файлы (например, вы не можете использовать zsync из пакета Ubuntu), но использует специальные версии программ, скомпилированных для него из источника. (Гораздо проще скомпилировать программу, написанную для Unix-подобных операционных систем в Cygwin, а не для ее компиляции, поэтому она работает на Windows.)

  1. Сначала откройте программу установки Cygwin ( setup.exe ) (или используйте эту прямую ссылку ).
  2. Запустите его, нажмите Далее на первом экране, затем выберите Установить из Интернета и снова нажмите Далее .
  3. На следующих двух экранах поместите Cygwin и локальный каталог пакетов туда, где вам нравятся (по умолчанию обычно хорошие).
  4. Выберите тип подключения к Интернету ( Прямое подключение обычно хорошо), а setup.exe загрузит список зеркал.
  5. Выберите любое зеркало, и он загрузит список доступных пакетов. Вероятно, вы будете предупреждены о том, как эта версия отличается от предыдущей. Это не проблема, если вы не использовали предыдущую версию Cygwin на той же машине.

  6. Теперь вы можете выбрать, какие пакеты установить. Существует текстовое поле для поиска пакетов по имени. Наберите zsync там (но не нажмите Enter - если вы это сделаете, это похоже на нажатие Далее ). Появится запись для Net . Разверните его, нажав на + слева от него, и вы увидите над ним Пропустить . Это означает, что если вы ничего не измените, setup.exe будет not установить zsync .

  7. Итак, нажмите один раз, где будет указано Пропустить . Теперь он установит последнюю доступную стабильную версию zsync для Cygwin.

  8. Еще раз нажмите Далее , чтобы завершить установку. Среда Cygwin и zsync будут загружены и установлены. (Если вас попросят установить пакеты, которые требуются в качестве зависимостей, продолжайте и делайте это.)

Как только он установлен, откройте оболочку Cygwin. Вы можете запустить zsync оттуда.

  

Ссылки

     

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

(Поэтому, если у вас есть проблемы с моими инструкциями, лучшее место   спросить о них, вероятно, здесь .)

zsync на Ubuntu

Это не относится к вашему конкретному случаю, но для людей, которые хотят использовать zsync на Ubuntu, просто установите zsync . Это можно сделать в Центре программного обеспечения или запустить его в окне терминала ( Ctrl + Alt + T ):

sudo apt-get update && sudo apt-get install zsync

Теперь вы можете запустить его из терминала.

Связано: Как обновить ISO с помощью zsync?

Использование zsync для исправления поврежденных образов ISO

В командной строке перейдите в каталог, содержащий поврежденный файл ISO. (Вы можете использовать cd для изменения каталога, то же, что и Ubuntu. Используйте dir , чтобы отобразить содержимое каталога.) Убедитесь, что файл, который у вас есть, имеет то же имя файла, что и при его получении.

Теперь запустите zsync одним из этих способов, в зависимости от образа Ubuntu ISO:

  • 12.10, 32-бит:

    zsync http://releases.ubuntu.com/quantal/ubuntu-12.10-desktop-i386.iso.zsync
    
  • 12.10, 64-бит:

    zsync http://releases.ubuntu.com/quantal/ubuntu-12.10-desktop-amd64.iso.zsync
    
  • 12.04.1 LTS, 32-бит:

    zsync http://releases.ubuntu.com/12.04.1/ubuntu-12.04.1-desktop-i386.iso.zsync
    
  • 12.04.1 LTS, 64-бит:

    zsync http://releases.ubuntu.com/12.04.1/ubuntu-12.04.1-desktop-amd64.iso.zsync
    
  • 12.04 LTS (до релиза 12.04.1), 32-бит:

    zsync http://old-releases.ubuntu.com/releases/precise/ubuntu-12.04-desktop-i386.iso.zsync
    
  • 12.04 LTS (до выпуска версии 12.04.1), 64-бит:

    zsync http://old-releases.ubuntu.com/releases/precise/ubuntu-12.04-desktop-amd64.iso.zsync
    

Как только вы запустите одну из этих команд, zsync автоматически исправит вашу ISO до нужной версии, и вам будет хорошо.

Использование zsync для других файлов

Общий синтаксис заключается в том, что вы запускаете zsync , за которым следует полный URL-адрес для файла .zsync на сервере, который имеет то же имя, что и файл, который у вас есть, и вы хотите скачать (за исключением .zsync в конце курса).

В случае, если кто-то захочет сделать это для любых других выпусков Ubuntu (или других файлов ISO для той же версии, например, версии, оптимизированной для правильной загрузки на компьютерах Mac или версии для мобильных устройств на базе ARM), вот правило, где Файлы .zsync расположены:

  • Образы ISO, содержащие поддерживаемые в данный момент инсталляторы, включая ISO для последней версии выпусков LTS и всех версий ISO для поддерживаемых в настоящее время выпусков LTS, расположены в:

    http://releases.ubuntu.com/

  • Образы ISO для выпусков на конец срока службы (которые вы не должны использовать в любом случае) или предыдущих выпусков выпусков поддерживаемых релизов LTS находятся в:

    http://old-releases.ubuntu.com/releases/

Просто нажмите ссылку для своей версии и прокрутите вниз, чтобы просмотреть полный список файлов (или найдите страницу для .zsync ). Затем скопируйте URL-адрес и вставьте его в команду zsync .

Использование в "Модернизация"

Вы также можете использовать zsync для "обновления" одного ISO к другому. Вероятно, придется перезагрузить большую часть файла, если вы переходите с одной версии Ubuntu на другой. Но если вы обновляете точечные релизы (например, 12.04 LTS до 12.04.1 LTS), его не нужно загружать достаточно. Это отличный способ быстро и эффективно получить новый точечный релиз.

Просто переименуйте старый файл, чтобы он имел то же имя, что и новый файл, а затем запустил zsync , как указано выше.

BitTorrent

Когда ваше интернет-соединение имеет высокую степень ошибок, BitTorrent часто является одним из лучших способов надежного скачивания файлов , Файлы делятся на множество мелких кусочков, и каждая часть загружается и проверяется, действительно ли это реальность. (Отдельные фрагменты можно загружать с разных компьютеров, что позволяет BitTorrent не устанавливать нагрузку на центральный сервер и добиваться скорости, часто быстрее, чем это возможно при загрузке через Интернет.)

Здесь можно скачать торренты для Ubuntu 12.10 и Ubuntu 12.04.1.

Вам понадобится "клиент" BitTorrent, чтобы загрузить его. Если у вас еще нет того, что вы предпочитаете, для Windows я рекомендую BitTornado .

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

Использование BitTorrent для исправления файла, который у вас есть

Предупреждение. Этот подраздел не так хорошо изучен, как остальная часть ответа. Я не тестировал использование BitTorrent для исправления поврежденных файлов в последнее время, или в Windows, или с помощью BitTornado. Я ожидаю, что это сработает для вас, но я не могу быть уверен.

Хотя BitTorrent не так широко используется для этой цели, как zsync , сам протокол BitTorrent так же способен.

Некоторые программы BitTorrent будут делать это - другие откажутся или загрузит весь файл с нуля - если только файл, который вы начинаете, не будет иметь одинаковый размер. (Удобно, поврежденная загрузка часто имеет тот же размер, что и правильный файл.)

Поместите старый образ ISO в ту же папку, что и файл .torrent . Убедитесь, что ваша программа BitTorrent загружает торрент. Он проверит, хорошо ли ваш текущий файл. Когда он видит, что некоторые части ошибочны, он может повторно загрузить их.

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

    
ответ дан Eliah Kagan 11.01.2013 в 09:17
источник
-1

Вы можете использовать Мастер ISO , если хотите добавить и удалить файлы в ISO. Он доступен как для Windows, так и для Linux.

    
ответ дан Mukund 11.01.2013 в 07:06