Как определить и заменить испорченные файлы в испорченном 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, то есть. На образе компакт-диска сервера или альтернативном образе компакт-диска это другая история.
Итак, я могу сказать вам прямо сейчас, какой файл почти наверняка поврежден на каждом из загруженных вами 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.)
- Сначала получите установщик Cygwin (
setup.exe
) отсюда (или используйте эту прямую ссылку). - Запустите его, нажмите Next на первом экране, затем выберите Install from Internet и снова нажмите Next.
- На следующих двух экранах поместите Cygwin и локальный каталог пакетов там, где они вам нравятся (значения по умолчанию обычно хороши).
- Выберите тип подключения к Интернету (прямое подключение обычно хорошо) и
setup.exe
загрузит список зеркал. Выберите любое зеркало, и оно загрузит список доступных пакетов. Вы, вероятно, будете предупреждены о том, как эта версия отличается от предыдущей. Это не проблема, если вы не использовали предыдущую версию Cygwin на той же машине.
Теперь вы можете выбрать, какие пакеты установить. Существует текстовое поле для поиска пакетов по имени. Тип
zsync
там (но не нажимайте Enter - если вы это делаете, это все равно что нажать Next). Появится запись для Net. Разверните его, нажав + слева от него, и вы увидите Пропустить под ним. Это значит, что если ты ничего не изменишь,setup.exe
не будет устанавливатьzsync
,Так что нажмите один раз, где написано Пропустить. Теперь будет установлена последняя доступная стабильная версия
zsync
для Cygwin.- Нажмите Next еще раз, чтобы завершить установку. Среда Cygwin и
zsync
, будет загружен и установлен. (Если вас попросят установить пакеты, которые требуются в качестве зависимостей, сделайте это.)
После установки откройте оболочку Cygwin. Вы можете запустить zsync
оттуда.
Рекомендации
- Установка и обновление Cygwin (официальный сайт, очень общие инструкции)
- Как обновить до последней версии Ubuntu 11.04 ISO с помощью zsync в Windows (старая и неофициальная, но все же полезная)
Обратите внимание, что, хотя вы можете публиковать сообщения в списке рассылки Cygwin о проблемах с Cygwin (после прочтения этого и материалов, которые он предлагает вам прочитать), они по понятным причинам не поддерживают неофициальные инструкции.
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
одним из следующих способов, в зависимости от того, какой образ 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.