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

Так что это не совсем проблема запуска Ubuntu, а скорее с его установкой.

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

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

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

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

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

2 ответа

Решение

На самом деле, я знаю, какой файл поврежден

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

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

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

Свойства Nautilus для файловой системы.squashfs на компакт-диске Ubuntu 12.10 i386 для настольных ПК

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

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

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

Вместо этого вы должны загрузить 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-website-content, чтобы проблема была исправлена), или
  • вы используете прокси или 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 и более ранних версиях: Пуск> Выполнить> cmd.exe.)

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

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

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

    Cygwin. Настроить предупреждающее сообщение о том.  Если вы раньше не пользовались, Cygwin, это можно игнорировать.  Как говорится:

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

    Велли Динкли доступны в Cygwin, обновил свой блог в

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

    введите описание здесь

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

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

Рекомендации

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

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

zsync на Ubuntu

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

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

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

Связанный: Как мне обновить ISO с zsync?

С помощью zsync исправить поврежденные ISO образы

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

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

  • 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 вы должны импортировать файл как текущий поток или открыть его для заполнения, чтобы сделать это.

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

Другие вопросы по тегам