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

Podobne dokumenty