Jak zidentyfikować i zamienić uszkodzone pliki w uszkodzonym systemie Ubuntu ISO?


14

Więc nie jest to dokładnie problem z uruchomieniem Ubuntu, ale raczej z jego instalacją.

Za każdym razem, gdy próbuję pobrać system Ubuntu ISO (z dowolnego źródła), wydaje się, że jest on uszkodzony. Oznacza to, że sumy MD5 nigdy nie są poprawne.

Pliki ISO Ubuntu są dostarczane z plikiem, który zawiera listę wszystkich plików ISO i odpowiadających im plików MD5SUM.

Chcę zrobić pętlę nad tym plikiem i porównać je z plikami w ISO, i sprawdzić, jakie pliki są uszkodzone, w nadziei, że mogę wyodrębnić uszkodzone pliki z jednego z innych plików ISO, aby utworzyć działający instalator.

Ale nie wiem, jak to zrobić i oczywiście, co gorsza, muszę to zrobić w systemie Windows 7.

Czy ktoś wie, jak to naprawić?


Czy Jigdo (preferowany sposób Debiana) nie powinien być w stanie tego zrobić? Jego głównym celem jest teraz aktualizacja delta dla wydań punktowych na ISO poprzez aktualizację pakietów w ISO. o Debian ISO i
Jigdo

@gertvdijk Nie dotyczy plików ISO na pulpicie Ubuntu, ponieważ zawierają one zwykle tylko jeden plik (patrz moja odpowiedź ). Dlatego ISO na pulpicie nie ma powiązanych .jigdoplików na serwerach pobierania. Zastępcy płyta CD i CD ISO serwer zrobić mieć .jigdopliki. Komputer stacjonarny ISO ma instalator Ubiquity, który działa, zapisując system Live CD na dysku, a następnie wprowadzając zmiany, aby był przygotowany do normalnego (zainstalowanego) użytkowania.
Eliah Kagan

@EliahKagan To ma sens. W takim razie, czy nie powinny istnieć pliki bloków parzystości PAR do naprawy kompletnych ISO? To o wiele bardziej wydajne, o wiele łatwiejsze i bardziej uniwersalne. „Parchive został pierwotnie napisany w celu rozwiązania problemu niezawodnego przesyłania plików w Usenecie [1], ale obecnie jest powszechnie używany do ochrony wszelkiego rodzaju danych przed uszkodzeniem danych, zgnilizną bitów oraz przypadkowym lub złośliwym uszkodzeniem”.
gertvdijk

1
Dlaczego PAR byłby lepszy niż zsync? Nawet jeśli PAR był oficjalnie wspierany przez projekt Ubuntu (podobnie jak zsyncjest), czy istnieją znaczące zalety? O jigdo: Dotyczy to alternatywnych i serwerowych płyt CD. Używają debian-installer, tworzą system bez kości, chrootują i instalują pakiety. Mają więc wszystkie .debpliki znajdujące się w puli pakietów (która zawiera tylko kilka plików na komputerowych dyskach CD). Można je łatwo zmontować .jigdo(lub innymi metodami). Możesz opublikować jigdoodpowiedź na serwer / alternatywę dotyczącą pobierania tylko uszkodzonych plików.
Eliah Kagan

1
@EliahKagan Powinieneś wspomnieć, że - PAR może robić rzeczy offline , np. „Potrzebujesz 3 bloków parzystości do naprawy”, karm je, „dobrze, naprawianie rzeczy ... gotowe!” Zsync skutecznie potrzebuje kompletnej dobrej kopii (w tym przypadku zdalnej). Ale tak, zasada jest taka sama. BTW, widzę, że Zsync gzipbardzo dobrze radzi sobie z edytowanymi archiwami, ale ta inteligencja jest bezużyteczna w SquashFS, zakładam? W każdym razie, dla systemu Ubuntu ISO zsync jest rzeczywiście właściwą drogą.
gertvdijk

Odpowiedzi:


34

Właściwie wiem, który plik jest uszkodzony

Próba połączenia plików z wielu uszkodzonych obrazów ISO w jeden, dobry obraz ISO nie jest dobrym podejściem do tego problemu. Dlatego.

Prawie wszystkie dane na obraz ISO należy do jednego pliku casper/filesystem.squashfs.

To znaczy na obrazie ISO CD lub DVD Ubuntu. Na obrazie CD serwera lub alternatywnym obrazie CD to inna historia.

Właściwości Nautilus dla fileystem.squashfs na stacjonarnym dysku CD z systemem Ubuntu 12.10 i386

Mogę ci teraz powiedzieć, który plik jest prawie na pewno uszkodzony na każdym pobranym ISO: ten plik na wszystkich. Kiedy coś jest uszkodzone w systemie Ubuntu ISO, złe bajty prawie zawsze gdzieś tam są.

filesystem.squashfsjest sam obraz na dysku; jest montowany jako część rozruchu systemu z live CD. Możesz potencjalnie wyodrębnić go z ISO, a następnie wyodrębnić jego zawartość, zobaczyć, co jest uszkodzone i zastąpić uszkodzone pliki. Chociaż możesz zamontować lub wyodrębnić system plików squashfs w systemie Windows, prawdopodobnie okaże się, że nie jest to łatwe zadanie. Ten obraz jest skompresowany, więc nie ma gwarancji, że niewielkie uszkodzenie w zawierającym ISO nie wpłynie na wiele plików.

Ponadto, jeśli kilkakrotnie próbowałeś pobrać obraz ISO i zawsze jest on uszkodzony, możesz być całkiem pewien, że nie jest to tylko niewielkie uszkodzenie. Być może będziesz musiał wymienić setki lub tysiące plików, jeśli spróbujesz to zrobić w ten sposób.

Zamiast tego należy pobrać obraz ISO przy użyciu bardziej niezawodnej metody.

Dogodnie, jeden z nich ( zsync) jest podobny do tego, co myślisz, z tym wyjątkiem, że pobierze tylko niezbędne fragmenty plików ISO, a nie tylko niezbędne pliki w nim zawarte.

Upewnij się, że porównujesz z właściwym hasłem MD5

Pierwszą rzeczą do zrobienia, gdy suma MD5 jest nieprawidłowa - zwłaszcza jeśli jest niepoprawna po ponownym pobraniu pliku - to upewnij się, że porównujesz ją z skrótem MD5 dla poprawnego pliku.

Tak sądzę

  • masz obraz 12.04 LTS i używasz skrótu MD5 do obrazu 12.04.1 LTS
    (który nie jest tym samym plikiem ), lub
  • masz obraz 12.04.1 LTS i używasz skrótu MD5 dla obrazu 12.04 LTS, lub
  • masz obraz 32-bitowy („i386”) i używasz skrótu MD5 dla obrazu 64-bitowego lub
  • masz obraz 64-bitowy („amd64”) i używasz skrótu MD5 dla obrazu 32-bitowego.

Lista skrótów MD5 dla każdego pliku znajduje się tutaj.

Ogólnie rzecz biorąc, jeśli skrót MD5 jest nieprawidłowy, ale taki sam dla więcej niż jednego pobrania, zwykle

  • porównujesz z niewłaściwym hashem, lub
  • plik jest uszkodzony na serwerze (więc jeśli tak się wydaje, pobierz z innego serwera lustrzanego i, jeśli chcesz, zgłoś błąd dotyczący zawartości witryny ubuntu, aby problem został naprawiony), lub
  • używasz serwera proxy lub sieci VPN, która buforuje zawartość sieci, i jakoś zbuforowała uszkodzoną kopię (pobieranie z innego serwera lustrzanego również powinno to naprawić), lub
  • pobierasz przez FTP, a problem z serwerem lub klientem FTP powoduje, że plik jest przesyłany w trybie tekstowym, a nie w trybie binarnym (spowoduje to uszkodzenie i zwykle za każdym razem w ten sam sposób), lub
  • Twoje połączenie jest celowo przechwytywane i zmieniane przez złośliwą stronę trzecią, która celowo podaje niewłaściwy plik (jest to jednak zazwyczaj mało prawdopodobne).

Możesz ręcznie wybrać (inne) lustro pobierania na dole tej strony .

Jeśli twój obraz ISO jest naprawdę uszkodzony, oto kilka sposobów na uzyskanie dobrego pliku.

zsync

zsync(patrz także tutaj ) to narzędzie, które może przekształcić częściowo poprawny plik w całkowicie poprawny plik, pobierając tylko części, których nie masz odpowiednich wersji. Jego podstawowa aplikacja służy do pobierania lekko zaktualizowanych obrazów, takich jak te z jednej kompilacji nocnej do drugiej.

Sposób zsyncdziałania jest następujący: ktoś oferujący plik (jak projekt Ubuntu) tworzy .zsyncplik, który zawiera wiele sum kontrolnych - sum kontrolnych odpowiadających wielu małym częściom pliku, a nie tylko jednej sumy kontrolnej dla całego pliku. Zaczynasz od dowolnego miejsca, od niczego do całego pliku.

Bez niczego pobierany jest cały plik. Z częścią pliku (czyli plikiem o tej samej nazwie, który ma inny rozmiar lub taki sam rozmiar z dowolną liczbą różnic binarnych), określa, które części należy pobrać, i po prostu pobiera te części. Cały plik nic nie pobiera.

W przypadku bardzo niewiarygodnych połączeń internetowych , zsyncnie jest dużo lepsza niż przeglądarka internetowa do pobierania całego pliku od zera, chyba że chcesz go uruchomić dwa lub więcej razy, w takim przypadku późniejsze uruchomienia poprawią problemy we wcześniejszych uruchomieniach . W przypadku wszystkich połączeń internetowych z wyjątkiem najwyższego wskaźnika błędów wystarczające jest uruchomienie zsync dwa razy lub czasami trzy razy na pliku.

Ale nie musisz się tak bardzo martwić o zsyncwielokrotne bieganie . Ponieważ masz już - prawdopodobnie - większość plików, więc nie powinno to stanowić problemu. I jak zawsze, jeśli zsynccoś jest zepsute, zawsze możesz uruchomić zsyncponownie, aby to naprawić.

Pierwsze zsyncdla Windows

zsynctradycyjnie działa na systemie uniksopodobnym (który tak naprawdę nie obejmuje Windows). Jednak niedawno rodem portu Windows zsynczostał stworzony , więc prawdopodobnie można użyć.

zsyncjest programem wiersza polecenia, więc w systemie Windows uruchamiasz go w wierszu polecenia. (Jednym ze sposobów otwarcia wiersza polecenia jest wpisanie cmd.exew polu tekstowym w menu Start i naciśnięcie Enter. Lub, w systemie Windows XP i wcześniejszych, Start> Uruchom> cmd.exe.)

Inna droga: zdobycie zsyncCygwina

Jeśli masz problemy z portem Windows zsync, zawsze możesz użyć wersji Cygwin. Cygwin zapewnia środowisko uniksopodobne dla systemu Windows. Nie pozwala na uruchamianie skompilowanych plików wykonywalnych (na przykład nie można używać zsyncz pakietu Ubuntu), ale używa specjalnych wersji programów skompilowanych dla niego ze źródła. (O wiele łatwiej jest skompilować program napisany dla uniksowych systemów operacyjnych w Cygwin, niż skompilować go, aby działał natywnie w systemie Windows.)

  1. Najpierw pobierz stąd instalator Cygwin ( setup.exe) (lub użyj tego bezpośredniego linku ).
  2. Uruchom go, kliknij przycisk Dalej na pierwszym ekranie, a następnie wybierz opcję Zainstaluj z Internetu i ponownie kliknij przycisk Dalej .
  3. Na dwóch kolejnych ekranach umieść Cygwin i lokalny katalog pakietów w dowolnym miejscu (domyślnie są dobre).
  4. Wybierz typ połączenia internetowego ( połączenie bezpośrednie jest zwykle dobre) i setup.exepobierze listę serwerów lustrzanych.
  5. Wybierz dowolne lustro, a pobierze listę dostępnych pakietów. Prawdopodobnie zostaniesz ostrzeżony o tym, jak ta wersja różni się od poprzedniej. To nie jest problem, chyba że korzystałeś z poprzedniej wersji Cygwin na tej samej maszynie.

    Komunikat Alert konfiguracji o tym, jak to jest pierwsza instalacja tej konkretnej wersji Cygwin.  Jeśli nie korzystałeś wcześniej z Cygwin, możesz to zignorować.  Jak mówi: „Jeśli po raz pierwszy instalujesz Cygwin w tym systemie, możesz zignorować ten komunikat”.

  6. Teraz możesz wybrać, które pakiety zainstalować. Istnieje pole tekstowe do wyszukiwania pakietów według nazwy. Wpisz zsynctam (ale nie naciskaj - Enterjeśli tak, to tak, jakbyś kliknął Dalej ). Pojawi się wpis dotyczący sieci . Rozwiń go, klikając po +lewej stronie, a zobaczysz pod nim Pomiń . Oznacza to, że jeśli niczego nie zmienisz, niesetup.exe zostanie zainstalowany .zsync

    Velma Dinkley instaluje zsync w Cygwin podczas aktualizacji swojego bloga w „Siren's Song”.

  7. Więc kliknij raz, gdzie jest napis Pomiń . Teraz zainstaluje najnowszą dostępną stabilną wersję zsyncdla Cygwin.

    wprowadź opis zdjęcia tutaj

  8. Kliknij ponownie przycisk Dalej, aby zakończyć instalację. Środowisko Cygwin oraz zsynczostanie pobrane i zainstalowane. (Jeśli zostaniesz poproszony o zainstalowanie pakietów wymaganych jako zależności, zrób to.)

Po zainstalowaniu otwórz powłokę Cygwin. Możesz uciec zsyncstamtąd.

Bibliografia

Pamiętaj, że chociaż możesz pisać na liście mailingowej Cygwin w poszukiwaniu problemów z Cygwin (po przeczytaniu tego i materiałów, które każe ci przeczytać), co zrozumiałe, nie obsługuje nieoficjalnych instrukcji. cygwinma dość dobrą dokumentację, więc podobnie jak inne projekty z dobrą scentralizowaną dokumentacją (jak OpenBSD), oczekują, że ludzie proszący o pomoc przeczytają dokumentację i pracują z nią (lub przynajmniej bardzo ją znają).

(Dlatego jeśli masz problem z moimi instrukcjami, najlepsze miejsce, w którym można o nie zapytać, jest prawdopodobnie tutaj ).

zsync na Ubuntu

Nie dotyczy to konkretnego przypadku, ale dla osób, które chcą korzystać zsyncz Ubuntu, wystarczy zainstalować zsyncZainstaluj zsync . Można to zrobić w Centrum oprogramowania lub uruchamiając to w oknie Terminal ( Ctrl+ Alt+ T):

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

Teraz możesz uruchomić go z terminala.

Powiązane: Jak zaktualizować ISO za pomocą zsync?

Używanie zsyncdo naprawy uszkodzonych obrazów ISO

W wierszu polecenia przejdź do katalogu zawierającego uszkodzony plik ISO. (Możesz użyć, cdaby zmienić katalog, tak samo jak Ubuntu. Użyj, diraby wyświetlić zawartość katalogu.) Upewnij się, że plik ma taką samą nazwę pliku, jak w momencie jego otrzymania.

Teraz uruchom zsyncna jeden z tych sposobów, w zależności od tego, który obraz Ubuntu ISO to:

  • 12.10, 32-bit:

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

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

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

    zsync http://releases.ubuntu.com/12.04.1/ubuntu-12.04.1-desktop-amd64.iso.zsync
    
  • 12.04 LTS (przed wydaniem punktu 12.04.1), 32-bitowy:

    zsync http://old-releases.ubuntu.com/releases/precise/ubuntu-12.04-desktop-i386.iso.zsync
    
  • 12.04 LTS (przed wydaniem punktu 12.04.1), 64-bitowy:

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

Gdy uruchomisz jedno z tych poleceń, zsyncautomatycznie poprawi ISO do poprawnej wersji i możesz zacząć.

Używanie zsyncdo innych plików

Ogólna składnia polega na tym, że po uruchomieniu zsyncnastępuje pełny adres URL .zsyncpliku na serwerze, który ma taką samą nazwę jak plik, który masz w wersji i który chcesz pobrać (z wyjątkiem .zsyncna końcu oczywiście).

W przypadku, gdy ktoś chce to zrobić w przypadku innych wydań Ubuntu (lub innych plików ISO dla tej samej wersji, takich jak wersja zoptymalizowana do prawidłowego rozruchu na komputerach Mac lub wersja dla urządzeń mobilnych z procesorem ARM), oto reguła dotycząca lokalizacji .zsyncplików :

  • Obrazy ISO zawierające aktualnie obsługiwane instalatory, w tym ISO dla najnowszej wersji wydania LTS i wszystkie ISO dla obecnie obsługiwanych wersji LTS, znajdują się w:

    http://releases.ubuntu.com/

  • Obrazy ISO wydań wycofanych z eksploatacji (których i tak nie należy używać) lub poprzednich wydań punktowych obsługiwanych wydań LTS znajdują się w:

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

Po prostu kliknij link swojej wersji i przewiń w dół, aby zobaczyć pełną listę plików (lub wyszukaj stronę .zsync). Następnie skopiuj adres URL i wklej go w zsyncpoleceniu.

Użyj w „Uaktualnieniu”

Możesz także użyć zsyncdo „uaktualnienia” jednego ISO do drugiego. Prawdopodobnie będzie musiał ponownie pobrać większość pliku, jeśli aktualizujesz z jednej wersji Ubuntu do innej. Ale jeśli aktualizujesz wydania punktowe (np. 12.04 LTS do 12.04.1 LTS), nie trzeba pobierać zbyt dużo. Jest to doskonały sposób na szybkie i skuteczne uzyskanie nowego wydania punktu.

Po prostu zmień nazwę starego pliku, aby miał taką samą nazwę jak nowy plik, a następnie uruchom zsyncjak wyżej.

BitTorrent

Kiedy twoje połączenie internetowe ma wysoki wskaźnik błędów, BitTorrent jest często jednym z najlepszych sposobów niezawodnego pobierania plików. Pliki są podzielone na wiele małych kawałków, a każdy z nich jest pobierany i sprawdzany, aby sprawdzić, czy jest prawdziwy. (Poszczególne elementy można pobrać z różnych komputerów, co pozwala BitTorrentowi unikać obciążania centralnego serwera i osiągać prędkości często szybsze niż te możliwe przy pobieraniu przez Internet).

Torrenty dla Ubuntu 12.10 i Ubuntu 12.04.1 można znaleźć tutaj.

Potrzebujesz „klienta” BitTorrenta, aby go pobrać. Jeśli nie masz takiego, który wolisz, dla Windows polecam BitTornado .

Po pobraniu polecam posłać trochę, jeśli możesz, aby zwrócić społeczności. (Z BitTorrentem od ludzi takich jak Ty.) Nie musisz jednak robić tego od razu - możesz wrócić do programu BitTorrent i zaszczepić się później. Możesz go nawet zakończyć, gdy pobieranie jest niedokończone, i wznowić go w dowolnym momencie.

Używanie BitTorrenta do naprawy posiadanego pliku

Ostrzeżenie: ten podrozdział nie jest tak dobrze zbadany, jak reszta odpowiedzi. Nie testowałem ostatnio użycia BitTorrenta do naprawy uszkodzonych plików, w systemie Windows lub w BitTornado. Spodziewam się, że to zadziała dla ciebie, ale nie jestem pewien.

Chociaż BitTorrent nie jest tak często używany do tego celu, jak zsyncsam protokół BitTorrent jest do tego zdolny.

Niektóre programy BitTorrent to zrobią - inne odmówią lub pobiorą cały plik od zera - chyba że plik, od którego zaczynasz, ma dokładnie taki sam rozmiar. (Dogodnie uszkodzony plik często ma taki sam rozmiar jak prawidłowy plik).

Umieść stary obraz ISO w tym samym folderze co .torrentplik. Upewnij się, że Twój program BitTorrent pobiera tam torrent. Sprawdzi, czy bieżący plik jest dobry. Gdy zauważy, że niektóre części są nieprawidłowe, może je ponownie pobrać.

W przypadku niektórych programów BitTorrent musisz zaimportować plik jako torrent w toku lub otworzyć go w celu uruchomienia, aby to zrobić.


15
To dość epicka odpowiedź.
Nanne

@Nanne Thanks! Przy okazji, jeśli znasz więcej szczegółów niż ja podałem na temat korzystania z BitTorrenta do naprawy wcześniej istniejących plików, edytuj to, aby uzyskać lepsze informacje na ten temat (jeśli chcesz).
Eliah Kagan

Wow ... Teraz jest to około 10-krotna odpowiedź, której się spodziewałem! Dzięki! Spróbuje to i zaakceptuje lub zaktualizuje pytanie o więcej szczegółów!
Hailwood

-1

Możesz użyć ISO Master, jeśli chcesz dodawać i usuwać pliki do ISO. Jest dostępny zarówno dla systemu Windows, jak i Linux.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.