DOSKONAŁE OBRAZY
Transkrypt
DOSKONAŁE OBRAZY
LINUX USER Wiersz poleceń: Obrazy płyt CD mkisofs, mount, md5sum DOSKONAŁE OBRAZY Przed wypaleniem dysku w Linuksie potrzebujemy obrazu w formacie ISO – do jego utworzenia służy program mkisofs. Aby zaoszczędzić na dyskach, warto sprawdzić obraz, korzystając z polecenia md5sum. HEIKE JURZIK P łyty CD i partycje dyskowe wykorzystują różne systemy plików. Podczas gdy partycje linuksowe mogą być w formacie Ext3 lub ReiserFS, dyski CD mają system plików ISO9660. Wypalanie na płycie partycji dyskowej z dokładnością do pojedynczych bloków nie ma sensu. Należy natomiast uruchomić narzędzie mkisofs, aby najpierw utworzyć system plików, w którym można przechowywać żądane pliki. Zrobiwszy tak, można wypalić „obraz ISO” na dysku za pomocą narzędzia cdrecord. W tym miesiącu przyjrzymy się dokładniej narzędziom wiersza poleceń, służącym do wypalania i weryfikacji obrazów CD. Opiszę, jak przeglądać obrazy poleceniem mount przed ich wypaleniem. 98 NUMER 17 CZERWIEC 2005 Tworzenie obrazów ISO narzędziem mkisofs Istnieje wiele metod tworzenia obrazów ISO. Wiersz poleceń udostępnia narzędzie mkisofs, służące do tworzenia systemu plików ISO 9660, oraz polecenie dd (patrz Ramka „Tworzenie obrazów ISO za pomocą dd”). Polecenie mkisofs wymaga określenia pliku wyjściowego (parametru -o) oraz plików źródłowych, z których zostanie utworzony obraz: mkisofs [parametr] -o file.iso§§ /katalog/z/danymi Jako parametr opcjonalny można określić -r (Rock Ridge) i -J (Joliet), aby dysk CD był czytelny w innych systemach. Po określeniu parametru -R zamiast -r narzędzie WWW.LINUX-MAGAZINE.PL użyje rozszerzenia Rock Ridge, lecz zachowa też informacje o właścicielach plików i uprawnieniach. Ten parametr przydaje się przy wykonywaniu kopii zapasowej: Słowniczek ISO: Międzynarodowa Organizacja Normalizacyjna (ISO) określa normy techniczne w wielu dziedzinach. Norma ISO 9660 została określona jako standard zarządzania plikami na dyskach CD-ROM. Dzięki normalizacji dyski CD można odczytywać w wielu różnych systemach operacyjnych. Początkowo norma uwzględniała tylko krótkie nazwy plików, lecz rozszerzenia Rock Ridge i Joliet pozwoliły na usunięcie tego ograniczenia. Wiersz poleceń: Obrazy płyt CD $ mkisofs -J -R -o backup.iso §§ /home/linux-magazine 8.56% done, estimate finish §§ Wed Feb 23 13:53:32 2005 17.10% done, estimate finish §§ Wed Feb 23 13:53:32 2005 [...] Wskaźnik postępu określa zaawansowanie pracy programu mkisofs. Jeśli nie chcemy obserwować wskaźnika, możemy określić parametr -quiet, aby narzędzie mkisofs nie generowało takich informacji. Opcja -V („identyfikator woluminu”) umożliwia określenie etykiety płyty CD: mkisofs -V "LinuxMag Backup §§ 02/2005" -J -R -o backup.iso §§ /home/linux-mag Wyjątki Aby wyraźnie wykluczyć pliki z kopii zapasowej, można określić opcję -m, aby obsługiwać symbole wieloznaczne. Można powiązać w szereg wiele parametrów -m, jak w następującym poleceniu: mkisofs -J -R -m '*.jpg' -m§§ '*.png' -o backup.iso §§ linux-mag/commandline/2005 lub png z obrazu ISO. Ostrzeżenie: jeśli tworzymy obraz plików w bieżącym katalogu, nie można określić symbolu wieloznacznego * w celu określenia wszystkich plików. Następujące polecenie: mkisofs -J -R -m '*.jpg' -o §§ backup.iso * faktycznie dołączyłoby wszystkie pliki JPEG w katalogu. Należałoby użyć kropki „.” jako skrótu dla bieżącego katalogu; program mkisofs będzie wówczas działać zgodnie z oczekiwaniami i nie umieści plików graficznych w obrazie. To samo dotyczy opcji -no-bak, która służy do wykluczania plików z rozszerzeniami typowymi dla kopii zapasowych, takimi jak ~, # oraz .bak. Nie należy stosować gwiazdki; podaje się tu natomiast nazwę ścieżki, aby wykluczyć pliki, których nie chcemy umieścić w obrazie. Parametr -x <ścieżka> umożliwia wykluczenie całego katalogu. Nazwy ścieżek mogą być bezwzględne (np. /usr/local) lub względne (np. ../../usr/local) – można też korzystać z obu tych opcji. mkisofs -J -R -x §§ /usr/local -x §§ ../../usr/games -o §§ backup.iso / Wyklucza ono pliki o rozszerzeniach jpg LINUX USER Tworzenie obrazów ISO za pomocą dd Program dd służy do konwersji i kopiowania (znacznie bardziej oczywisty skrót, cc, jest już zarezerwowany dla kompilatora języka C). Program dd przesyła dane między różnymi nośnikami pamięci masowej, w razie czego je konwertując. Może on kopiować pojedyncze pliki, a także uzyskiwać dostęp do urządzeń. Umożliwia to kopiowanie całych dysków twardych (partycji), a nawet dysków CD-ROM do plików obrazów. Przy wywołaniu programu dd należy określić „plik wejściowy” (if=) i „plik wyjściowy” (of=). Narzędzie następnie blokowo odczytuje źródło i zapisuje dane w miejscu docelowym. Można opcjonalnie określić rozmiary bloków i ich liczbę. Następujące polecenie: dd if=/dev/hda of=bootsector §§ bs=512 count=1 oznacza, że program dd ma wczytać pierwszy blok (count=1) z pierwszego dysku IDE (/dev/hda) o rozmiarze 512 bajtów (bs=512) i zapisać go w pliku o nazwie bootsector. Aby utworzyć obraz płyty CD z danymi za pomocą programu dd, jako wejście należy określić plik urządzenia CD-ROM (np. /dev/hdc), a nazwę pliku jako wyjście: dd if=/dev/hdc of=cd.iso Weryfikacja Istnieje wiele możliwości weryfikowania obrazów ISO. Można po pierwsze zamontować obraz w systemie plików, aby mieć pewność, że jest poprawny. Polecenie mount nie tylko montuje takie nośniki, jak dyski twarde i dyski CD w systemie plików Linuksa, lecz także dołącza obrazy ISO przy użyciu flagi -o loop. Administrator następującym poleceniem może zamontować obraz: mount -o loop file.iso /mnt/tmp/ Oczywiście, katalog /mnt/tmp/ musi istnieć (jak zwykle); w przeciwnym razie polecenie mount zgłosi błędy: mount: mountpoint /mnt/tmp/ §§ does not exist Rysunek 1. Weryfikacja sumy kontrolnej MD5 upewnia, że pobrany plik obrazu jest poprawny. WWW.LINUX-MAGAZINE.PL Jeśli polecenie mount zgłasza zaś błędy dotyczące nieznanego systemu plików, konieczne może być określenie parametru -t iso9660. Katalog /mnt/tmp powinien udostępniać pełną zawartość obrazu ISO – tak, jak będzie on wyglądać na dysku CD. Aby odmontować obraz – znowu z poziomu konta root – wydajemy następujące polecenie umount: NUMER 17 CZERWIEC 2005 99 LINUX USER Wiersz poleceń: Obrazy płyt CD umount /mnt/tmp Kontrola poprawności Jeśli pobieramy plik ISO z Internetu, warto zweryfikować sumę kontrolną MD5 tego pliku. Linux zawiera narzędzie md5sum, tworzące 128-bitowy skrót pliku. Suma kontrolna umożliwia użytkownikom sprawdzenie, czy wiadomości zostały przesłane poprawnie – nadawca i odbiorca niezależnie obliczają sumę kontrolną, a jeśli plik nie został uszkodzony w drodze, wynik będzie identyczny. MD5 to algorytm sumy kontrolnej opracowany w 1991 roku przez Rona Rivesta [1]. Większość serwerów oferujących pliki do pobrania udostępnia sumy kontrolne MD5 dla obrazów ISO (Rysunek 1). Pliki tekstowe, zwykle o nazwie MD5SUM (s) lub xyz.iso.md5, zawierają skróty plików obrazów na serwerach. Ponieważ suma kontrolna ulegnie zmianie przy modyfikacji choćby jednego bitu w pliku, niezwykle trudno wygenerować dwa różne pliki o tej samej sumie kontrolnej. Innymi słowy, jest wyjątkowo mało prawdopodobne, że plik utworzy tę samą sumę kontrolną, jeśli był modyfikowany lub uszkodzony w drodze. Narzędzie wiersza poleceń, md5sum, umożliwia weryfikację skrótu danych MD5. Jeśli po prostu chcemy wyświetlić wartość skrótu, wpisujemy md5sum plik, a na ekranie pojawia się suma kontrolna. $ md5sum FC3-i386-DVD.iso ca49964739f84848ca78fc036§§ 62272fb FC3-i386-DVD.iso Jeśli wypalamy obrazy ISO programem K3b, możemy zaoszczędzić sobie kłopotów związanych z ręcznym wyświetlaniem sumy kontrolnej w wierszu poleceń. Po wypaleniu płyty CD lub DVD w menu Narzędzia K3b automatycznie wyliczy sumę kontrolną. Wskaźnik postępu określa stopień zaawansowania. Po zakończeniu program K3b wyświetli okno dialogowe pozwalające na sprawdzenie sumy MD5. Oczywiście, można otworzyć pliki sum kontrolnych w edytorze tekstu lub wyświetlić je na ekranie programem cat i pojedynczo porównać cyferki. To jest jednak czasochłonne i łatwo się pomylić. Dlatego chyba lepiej uruchomić program md5sum z opcją -c. W tym celu ładujemy obraz ISO i plik sumy kontrolnej na komputer i wprowadzamy następujące polecenie: $ md5sum -c MD5SUM 100 NUMER 17 CZERWIEC 2005 WWW.LINUX-MAGAZINE.PL FC3-i386-DVD.iso: OK Wynik wskazuje, że obraz płyty Fedora Core 3 w naszym przykładzie jest kompletny i bez skazy - sumy kontrolne się zgadzają. Jeśli test nie uda się, polecenie md5sum wyświetli komunikat: FC3-i386-DVD.iso: Błąd Dobra kombinacja Programy wiersza poleceń umożliwiają ich łączenie. Na przykład dobra kombinacja wywołania programu mkisofs z programem cdrecord umożliwia wypalanie dysków CD na bieżąco – nie trzeba rezerwować miejsca na dysku twardym na obraz ISO. Pomijamy opcję -o plik_wyjściowy programu mkisofs i po prostu potokowo przesyłamy dane wyjściowe do programu cdrecord. Jedynym problemem przy takiej metodzie jest to, że potrzebny jest bufor w celu uniknięcia niedopełnienia buforu, czyli zmarnowania dysku. Chociaż Linux świetnie obsługuje wielozadaniowość, warto dodać bufor wielkości 6 MB do polecenia cdrecord, tak na wszelki wypadek. mkisofs -V "LinuxMag Backup §§ 02/2005" -J -R /home/linux-mag §§ | cdrecord -v fs=6m speed=4 §§ dev=0,0,0 - Nie można zapomnieć o znaku minus na końcu tego wiersza. Dzięki temu polecenie cdrecord nie czyta z pliku, lecz ze standardowego wejścia – dane powinny błyskawicznie znaleźć się na dysku. ■ Słowniczek Niedopełnienie buforu Podczas wypalania dysku CD dane są przechowywane w pamięci buforowej, zapewniającej stały dopływ danych. Jeśli bufor opróżni się, a nowe dane nie nadchodzą, starsze urządzenia mogą przerwać wypalanie i pojawi się błąd „niedopełnienia buforu” – a nowy dysk CD zostanie zniszczony. Nowocześniejsze urządzenia z technologią BurnProof zapobiegają niedopełnieniom buforu. Jeśli przepływ danych zostanie przerwany, napęd po prostu oczekuje na nowe dane, a następnie ponownie uruchamia operację w miejscu, w którym została ona wstrzymana. INFO [1] RFC 1321 "The MD5 Message-Digest Algorithm": http://www.ietf.org/rfc/rfc1321.txt