Pobrałeś uszkodzony plik? 13


Ściągnąłeś z serwera HTTP najnowszy obraz płyty z Ubuntu i niestety sumy kontrolne nie zgadzają się? Załamałeś się, ponieważ masz w domu wolne łącze i musisz zmarnować kolejne 5-10 godzin na ściganie nowego obrazu? Nie ma czym przejmować się, ponieważ istnieje metoda na naprawienie źle ściągniętego pliku. Wystarczy, że pobierzesz brakujący lub uszkodzony fragment pliku i wtedy sumy kontrolne zaczną zgadzać się.

Kiedyś zdarzyło mi się ściągnąć jakiś obraz iso prosto z serwera HTTP. Niestety on został źle pobrany i nie nadawał się praktycznie do niczego. Po drodze zginęło około 3 MB fragmentu i przez to sumy kontrolne nie zgadzały się. Ciężko było mi z tym pogodzić się, ponieważ ściągać od nowa to strata kolejnych kilku godzin. Zacząłem kombinować i zastanawiać się jak dociągnąć te brakujące megabajty, aby zaoszczędzić cenny czas. Po parunastu minutach kombinowania udało mi się znaleźć skuteczne rozwiązanie. Pomógł mi w tym program do ściągania torrentów o nazwie Transsmision, który jest domyślnie zainstalowany w Ubuntu.

Załóżmy, że na naszym pulpicie znajdują się takie pliki i folder:
– uszkodzony obraz iso z Ubuntu, np. ubuntu-8.10-desktop-i386.iso – właśnie ten plik będziemy naprawiać,
– folder o nazwie „backup” z kopią uszkodzonego obrazu na wszelki wypadek,
– torrent, np. ubuntu-8.10-desktop-i386.iso.torrent.
Uprzedzam, że obraz pobierany przez sieć torrent musi być taki sam jak z serwera HTTP.

Uruchamiamy program Transmission (Programy → Internet → …), dodajemy torrent i zapisujemy go na pulpicie. Pamiętajmy o tym, że musi to być dokładnie ten sam katalog, w którym znajduje się uszkodzony plik. Rozpoczynamy ściąganie. Jeśli obraz iso został ściągnięty w 99% poprawnie, pasek postępu powinien rozpędzić się błyskawicznie i zatrzymać się właśnie na tych 99%, resztę czyli 1% brakującej części program powinien sam dociągnąć lub ewentualnie naprawić. Gdy Transmission skończy pobierać urwany kawałek, licznik dojdzie do 100%, wtedy sprawdzamy sumy kontrolne i powinniśmy cieszyć się pozytywnym wynikiem.

Może zdarzyć się, że Transmission zamiast dociągnąć uszkodzony fragment, zacznie pobierać plik od nowa, od zera. Wtedy trzeba będzie zatrzymać pobieranie, wyłączyć program i udać się do katalogu backup, w którym znajduje się kopia uszkodzonego iso. Kopiujemy go i podmieniamy plik na pulpicie. Uruchamiamy ponownie Transmission i wznawiamy pobieranie. Wtedy powinno być tak jak pisałem wcześniej.

Jak widać mój cel jaki sobie postawiłem został osiągnięty. Nie wiem jak dużo osób wpadło na ten pomysł, ale nigdy nie słyszałem, aby ktoś wspominał o tej metodzie. Zawsze słyszałem jedną radę: pobrałeś uszkodzony plik, musisz pobrać go jeszcze raz. Jednak okazuje się, że tak wcale nie musi być, ponieważ da się to naprawić pod warunkiem, że w sieci leży torrent, z którego pobierzemy ten sam plik jak z serwera HTTP.


Skomentuj epul Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

13 komentarzy do “Pobrałeś uszkodzony plik?

  • Śpiechu

    Metoda działa tylko pod warunkiem jeżeli dokładnie te same pliki udostępniane są na różne sposoby.
    Zapewne pod eMule też warto sprawdzić czy ktoś nie udostępnia interesującego pliku. Wystarczy rozpocząć ściąganie, sprawdzić który to plik part, podmienić na ten nasz i wymusić sprawdzanie.

  • panjandrum

    Tylko, jeżeli te zgubione 3MB są gdzieś z początku pliku (dajmy na to gdzieś z mniej więcej 10%), to czy nie zacznie ściągać od tych 10?

  • chabs

    Utorrent sobie z tym poradzi. Wystarczy zacząć pobierać z torrenta, wtedy zamykamy program podmieniamy plik i uruchamiamy utorrenta. On zawsze na starcie testuje sumami częściowymi pliki pobierane. „Wada” – chodzi tylko pod wine.

  • pioruns

    W Debianie jest proste jak drut narzędzie jigdo. Sprawdza sumy, ściągając z serwerów FTP/HTTP. Przy czym wybiera serwer lustrzany automatycznie, ten najmniej obciążony i z którego najszybciej ściągniemy. Ale przyznam, że sposób z podmianą ściągniętego pliku na torrent jest ciekawy, nie znałem tego 🙂

  • Tomek

    Sprawdzanie sum kontrolnych jest częścią protokołu bittorrent, więc jeśli
    Transmission (czy jakikolwiek inny program do bittorentów) mówi, że ściągnął,
    to już nie trzeba sprawdzać sum kontorlnych.

    Dodatkowo polecam programik aria, który potrafi ściągać symultanicznie z
    torrentów i FTP/HTTP — znacznie przyspiesza ściąganie.

  • DNA DesigN

    Bardzo dobry artykuł. Faktycznie sposób działa tylko w przypadku, gdy obrazy z Torrent’a i z serwera HTTP są identyczne, ale w przypadku obrazów Ubuntu, czy innych plików dostępnych na wiele sposobów, jak najbardziej skuteczny. 🙂

    Nie przejmujcie się też, jeżeli obraz uszkodzony jest gdzieś na początku. Torrent dysponuje czymś w rodzaju sum kontrolnych fragmentów, na które plik docelowy jest podzielony, więc nie zdarzy się sytuacja, że po zastosowaniu się do rad w tym artykule plik i tak będzie pobierany od początku.

    @Cyryllo: nie koniecznie. Jeżeli masz do wyboru HTTP lub Torrent, to ściągaj z HTTP. Plusy tego są takie, że ściągasz przeważnie w miarę stałą i dużą predkością, poza tym nawiązujesz z serwerem jedno połączenie (lub parę w przypadku ściągania np. downTHEMall), które jest aktywne, a nie 50 połączeń do różnych innych klientów Torrent’a, z których nie koniecznie będziesz tak naprawdę ściągał. Duża liczba połączeń też potrafi zabić łącze (szczególnie w przypadku najpopularniejszego systemu operacyjnego na świecie 😉 ).

  • revenjarus

    a co mogę zrobić, jeśli obraz wypaliłem już na płycie? pobierałem fedora 10 dvd, plik wypaliłem na płycie na innym kompie, gdzie obrazu już niestety nie ma… a w domu przy próbie instalacji pojawiają się błędy… chciałem spakować więc wypalony już obraz ponownie w iso i wypróbować metodę, niestety znowu pojawiają się błędy… jest jakiś sposób? mogę coś zrobić, czy zostało mi ponownie pobrać obraz?

  • epul Autor wpisu

    revenjarus, zrzuć obraz iso z płyty DVD na dysk:
    cat /dev/cdrom > obraz.iso

    Zamiast „obraz.iso” wpisz dokładną nazwę pliku, który pobrałeś z serwera HTTP. Resztę zrób tak jak jest napisane w artykule. Oczywiście nie gwarantuję, że coś z tego wyjdzie ale spróbować zawsze można.