Як визначити та замінити зламані файли у пошкодженому ISO Ubuntu?


14

Отже, це не зовсім проблема із запуском Ubuntu, а скоріше з її встановленням.

Кожен раз, коли я намагаюся завантажити ISO Ubuntu (з будь-якого джерела), воно здається, що воно пошкоджене. Тобто, суми MD5 ніколи не є правильними.

Файли Ubuntu ISO поставляються з файлом, у якому перераховані всі файли ISO та їх відповідні MD5SUM.

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

Але я не знаю, як це зробити, і, звичайно, щоб зробити це гірше, я повинен це зробити з Windows 7.

Хтось знає, як це виправити?


Чи не повинен Джигдо (бажаний спосіб Дебіана) робити це? Зараз його основна мета - це оновлення дельти для точкових випусків на ISO за допомогою оновлення пакетів в ISO. про ISO Debian та Jigdo
gertvdijk

@gertvdijk Не для ISO робочого столу Ubuntu, оскільки вони в основному містять лише один файл (див. мою відповідь ). Ось чому ISO настільних ПК не мають пов'язаних .jigdoфайлів на серверах завантаження. Альтернативні CD і CD - сервер Стандартизації робити є .jigdoфайли. Настільні ISO мають інсталятор Ubiquity, який працює, записуючи живу систему CD на диск, а потім вносячи зміни, щоб вона була готова до нормального (встановленого) використання.
Елія Каган

@EliahKagan Це має сенс. Гаразд, у такому випадку не повинні бути файли блоку парності PAR для встановлення повних ISO? Це набагато ефективніше, набагато простіше і універсальніше. "Parchive спочатку був написаний, щоб вирішити проблему надійної передачі файлів на Usenet, [1], але зараз вона зазвичай використовується для захисту будь-якого типу даних від пошкодження даних, гниття бітів та випадкового або зловмисного пошкодження."
gertvdijk

1
Чому б PAR був кращим, ніж zsync? Навіть якщо проект PAR був офіційно підтриманий проектом Ubuntu (як zsyncце є), чи є помітні переваги? Про джигдо: Це застосовно до альтернативних та серверних компакт-дисків. Вони використовують debian-installer, створюючи систему голих кісток, хронізуючи та встановлюючи пакети. Таким чином, вони мають усі .debфайли, що знаходяться в пулі пакетів (який містить лише кілька невеликих файлів на настільних компакт-дисках). Їх легко можна зібрати за допомогою .jigdo(або інших методів). Ви можете опублікувати jigdoвідповідь на основі сервера / альтернативу про те, як завантажити тільки зламані файли.
Елія Каган

1
@EliahKagan Треба згадати, що - PAR може робити речі в режимі офлайн , наприклад, "для ремонту вам потрібні 3 блоки паритетності", подайте їх, "добре, виправлення матеріалів ... зроблено!". Zsync ефективно потребує повної гарної копії (віддаленої в цьому випадку). Але так, принцип той самий. До речі, я бачу, що Zsync gzipдуже добре обробляє ed-архіви, але на SquashFS інтелект марний? У будь-якому випадку, для Ubuntu ISO zsync - це справді шлях.
gertvdijk

Відповіді:


34

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

Спроба об'єднати файли з декількох пошкоджених зображень ISO в єдине, хороший образ ISO - це не дуже вдалий підхід до цієї проблеми. Ось чому.

Майже всі дані в образі ISO належить тільки один файл, casper/filesystem.squashfs.

На настільному CD або DVD ISO зображення Ubuntu, тобто. На зображенні на серверному компакт-диску або альтернативному зображенні CD це вже інша історія.

Властивості Nautilus для filesystem.squashfs на настільному компакт-диску Ubuntu 12.10 i386

Тож я зараз можу вам сказати, який файл майже напевно пошкоджений для кожного із завантажених ISO-файлів: цього файлу, і для всіх них. Коли щось пошкоджено в ISO Ubuntu, погані байти майже завжди знаходяться десь там.

filesystem.squashfsце саме по собі образ диска; він монтується як частина завантаження системи на прямий компакт-диск. Ви потенційно можете витягнути його з 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, щоб проблема виправилася) або
  • ви використовуєте проксі або VPN, які кешують веб-вміст, і він якось кешував пошкоджену копію (завантаження з іншого дзеркала також має виправити це), або
  • ви завантажуєте через FTP, і проблема з сервером або з вашим клієнтом FTP спричиняє передачу файлу в текстовому режимі, а не у двійковому режимі (це може пошкодити його і, як правило, пошкоджувати кожен раз однаково) або
  • ваш зв’язок навмисно перехоплюється та змінюється зловмисною стороною, яка навмисно подає вам неправильний файл (хоча це, як правило, малоймовірно).

Ви можете вручну вибрати (інше) дзеркало для завантаження внизу цієї сторінки .

Якщо ваше зображення ISO пошкоджене, ось декілька способів отримати хороший файл.

zsync

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

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

Без нічого завантажується весь файл. З частиною файлу (тобто з тим самим іменем, який має різний розмір або однаковий розмір з будь-якою кількістю двійкових відмінностей), він визначає, які частини потрібно завантажити та просто завантажує ці частини. З усім файлом він нічого не завантажує.

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

Але вам не доведеться хвилюватися майже так багато, як бігати zsyncкілька разів. Оскільки ви вже, імовірно, маєте більшість файлів, тому це не повинно бути проблемою. І як завжди, якщо zsyncвам щось пошкоджене, ви завжди можете запустити zsyncзнову, щоб виправити це.

Початок роботи zsyncз Windows

zsyncтрадиційно працює на Unix-подібній системі (яка насправді не включає Windows). Тим НЕ менше, в останній час рідний порт Вікна zsyncбув створений , так що ви , ймовірно , можете використовувати це.

zsyncце програма командного рядка, тому в Windows ви запускаєте її в командному рядку. (Один із способів відкрити командний рядок - це ввести cmd.exeтекстове поле в меню "Пуск" і натиснути Enter. Або в Windows XP і раніше - Пуск> Виконати> cmd.exe.)

Інший спосіб: доїхати zsyncдо Сігвіна

Якщо у вас є проблеми з портом Windows zsync, ви завжди можете використовувати версію Cygwin. Cygwin забезпечує середовище схоже на Unix для Windows. Він не дозволяє запускати компільовані виконувані файли (наприклад, ви не можете використовувати zsyncз пакету Ubuntu), але використовує спеціальні версії програм, зібрані для нього з джерела. (Складати програму, написану для Unix-подібних операційних систем у Cygwin, набагато простіше, ніж компілювати її, щоб вона працювала в Windows.)

  1. По-перше, перейдіть на інсталятор Cygwin ( setup.exe) звідси (або скористайтеся цим прямим посиланням ).
  2. Запустіть його, натисніть кнопку Далі на першому екрані, потім виберіть Установити з Інтернету та ще раз натисніть кнопку Далі .
  3. На наступних двох екранах покладіть Cygwin та каталог локальних пакунків куди завгодно (дефолти зазвичай хороші).
  4. Виберіть тип підключення до Інтернету ( Пряме з'єднання, як правило, добре), і setup.exeзавантажте список дзеркал.
  5. Виберіть будь-яке дзеркало, і воно завантажить список доступних пакетів. Напевно вас попередить про те, чим ця версія відрізняється від попередньої. Це не проблема, якщо ви не використовували попередню версію Cygwin на тій же машині.

    Повідомлення про налаштування про те, як це вперше встановлено саме цю версію Cygwin.  Якщо ви раніше не використовували Cygwin, це можна проігнорувати.  Як говориться, "Якщо ви вперше встановили Cygwin в цій системі, ви можете проігнорувати це повідомлення".

  6. Тепер ви можете вибрати, які пакунки встановити. Існує текстове поле для пошуку пакетів за назвою. Введіть zsyncтуди (але не натискайте - Enterякщо це зробити, це як натиснути кнопку Далі ). З'явиться запис для Net . Розгорніть його, натиснувши +ліворуч від нього, і під ним ви побачите Пропуск . Це означає , якщо ви нічого не зміниться, setup.exeбуде НЕ встановлювати zsync.

    Вельма Дінклі встановлює zsync у Cygwin, оновлюючи свій блог у "Пісні сирени".

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

    введіть тут опис зображення

  8. Клацніть Далі ще раз, щоб закінчити встановлення. Середовище Cygwin та zsync, буде завантажено та встановлено. (Якщо вас попросять встановити пакети, необхідні як залежності, продовжуйте це робити.)

Після встановлення відкрийте оболонку Cygwin. Ви можете бігти zsyncзвідти.

Список літератури

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

(Тому, якщо у вас виникають проблеми з моїми вказівками, найкраще запитати про них, мабуть, тут .)

zsync на Ubuntu

Це не стосується конкретного випадку, але для людей, які хочуть використовувати zsyncUbuntu, просто встановіть zsyncВстановити 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 для того ж випуску, як версія, оптимізована для належного завантаження на Macs або версія для мобільних пристроїв на базі 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 ви повинні імпортувати файл як торрент, який виконується, або відкрити його для висівання для цього.


15
Це досить епічна відповідь.
Нанна

@Nanne Дякую! Btw, якщо вам трапляється знати більше деталей, ніж я надав про використання BitTorrent для відновлення попередньо існуючих файлів, будь ласка, відредагуйте це, щоб надати кращу інформацію про це (якщо бажаєте).
Елія Каган

Нічого ... Тепер це приблизно в 10 разів відповідь, яку я очікував! Спасибі! Спробую це, або прийміть, або оновіть питання ще деякими деталями!
Гейлвуд

-1

Ви можете використовувати ISO Master, якщо хочете додати та видалити файли до ISO. Він доступний як для Windows, так і для Linux.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.