Jak uaktualniæ/zmieniæ swoją dystrybucjê Linux-a.

Greg Louis, glouis@dynamicro.on.ca
v1.11, 6 Czerwca 1996.
Wersja polska: Bartosz Maruszewski B.Maruszewski@zsmeie.torun.pl
v1.02, 26 Lipca 1997


Wskazówki jak przechodziæ z jednej dystrybucji Linux-a na inną. Dokument ten został napisany w standardzie ISO-8859-2. Wersja oryginalna znajduje siê pod adresem ftp.icm.edu.pl.

1. Prawa autorskie i zrzeczenie (disclaimer).

Procedura, którą dokument ten próbuje opisaæ jest wysoce niebezpieczna dla twoich programów i danych zapisanych na dysku. Wykonujesz to wszystko TYLKO I WYŁĄCZNIE na własne ryzyko. Opisane tutaj kroki działały u autora; nie ma żadnej gwarancji, że bêdą one działaæ u ciebie ani że postêpując zgodnie z nimi nie uszkodzisz sobie programów czy danych zawartch na dysku. Jesteś zdany całkowicie na siebie podczas robienia użytku z podanych tu procedur i autor nie jest odpowiedzialny za jakiekolwiek uszkodzenia czy niewygody wynikłe z ich użycia.

Prawa autorskie do tego dokumentu należą do Dynamicro Consulting Limited i jest on wydany na podstawie licencji GNU. Ogólnie oznacza to, że możesz go kopiowaæ i modyfikowaæ, ale nie możesz zabraniaæ innym robienia tego samego.

Komentarze i pytania proszê kierowaæ do autora. Szczególnie mile widziane są opisy udanych uaktualnieñ złożonych systemów, które zostaną wykorzystane do przyszłych wersji.

Zmiany od wersji 1.1

2. Wprowadzenie.

2.1 Jak uśmierciæ i przywróciæ do życia twojego Linux-a!

Celem tego dokumentu jest zaoferowanie wskazówek, które pomogą ci w niszczeniu i ponownej instalacji twojego Linux-a. Nie jest to żadna głupko-odporna książka kucharska; ale mam nadziejê, że posłuży jako pewnego rodzaju wykaz tego o czym musisz pomyśleæ, i wykaz kolejności w jakiej musisz zrobiæ różne rzeczy. Jeśli ktoś napisałby takie coś zanim dokonałem swojego pierwszego uaktulanienia, byłoby to dla mnie bardzo pomocne. Tak wiêc mam nadziejê, że bêdzie to pomocne dla ciebie, jeśli masz jakiegoś Linux-a do przerobienia.

Ale nie bierz tego za świêtą prawdê: twoja droga do przebycia bêdzie prawie na pewno siê różniła od mojej. Nawet nazwy katalogów z tego dokumentu mogą byæ różne od tych, które ty bêdziesz musiał użyæ; na przykład niektórzy mają /usr/home zamiast /home; inni nazywają to /u, a niektórzy (brrr) to nawet umieszczają swoich użytkowników bezpośrednio w /usr ! Nie można odnieśæ siê dokładnie do twojego systemu także użyłem tu nazw, które wystepowały u mnie.

Zauważysz także, że używam dystrybucji Slackware oraz że zakładam, że masz wystarczająco dużo RAM-u i miejsca na dysku, żeby skopiowaæ źródła do jądra na dysk i zrobiæ swoje jądro. Jeśli twój system jest inny, niektóre z moich zaleceñ nie bêdą pasowały; ale mam nadziejê, że generalnie bêdziesz siê mógł w dalszym ciągu opieraæ o ten dokument w swoim projekcie przebudowy.

2.2 Dlaczego ktoś chciałby w ogóle to robiæ ?

Dobre pytanie ! Jeśli można tego uniknąæ, to nie rób tego ! (Jest to najprostsza najważniejsza rekomendacja w tym przewodniku !!!) Ale przychodzi taki czas, że po prostu musisz.

Na przykład: Zainstalowałem sobie dysk 4GB i okazało siê, że mój Slackware 2.0 biedaczek nie wiedział, że dysk może mieæ wiêcej jak 2GB i poczuł siê bardzo zawstydzony. Tak wiêc musiałem uaktualniæ go do wtedy-świeżej wersji 2.3. Operacja ta była dla mnie ciêżkim przeżyciem, i jest jednym z powodów, dla których piszê te uwagi. Zrobiłem prawie wszystko źle i tylko szczêście i fakt, że miałem obok drugiego chodzącego Linux-a uratowało mnie od katastrofy.

Jako inny przykład mogê podaæ, że nie mogłem skompilowaæ działającego jądra "a.out" z serii 1.3, używając Slackware 2.3 spoza komputera, który przedtem spartaczyłem. Wziąłem siê w garśæ, kupiłem Slackware 3.0 na CD-ROM-ie i przeszedłem na ELF-a. Tym razem ponowna instalacja poszła lepiej, po czêści dziêki poprzedniemu gorzkiemu doświadczeniu, które posłużyło jako źródło wiêkszości pomysłów, które wam tutaj oferujê.

2.3 Czy musisz "niszczyæ i ponownie instalowaæ" ?

Jest bezpieczniej. Jeśli zainstalujesz nową wersjê dystrybucji na starszą, to bêdziesz miał mieszaninê starych i nowych binariów, starych i nowych plików konfiguracyjnych i nie bêdzie to zbyt ciekawe miejsce do administrowania. Wyczyszczenie systemu i ponowna instalacją tego co rzeczywiście chcesz mieæ, jest drastycznym lecz efektywnym sposobem na osiągniêcie przejrzystego i dobrze działającego systemu. (Oczywiście mówimy tu o instalacji kompletnie nowej dystrybucji a nie o uaktulanieniu dwóch pakietów ! Aby uniknąæ całkowitej instalacji nowego systemu najlepiej w miarê pojawiania siê nowych wersji konkretnych pakietów uaktualniaæ je -- szczególnie chodzi tu o gcc i jego biblioteki oraz binutils. Jeśli potrafisz w ten sposób utrzymaæ w miarê bieżące wersje pakietów, to nie potrzebujesz całkowitego uaktualnienia.)

Jak pisze Patrick Volkerding (on także zaleca procedurê z kompletnym wyczyszczeniem systemu), instalacja systemu ELF na systemie "a.out" jest przepisem na katastrofê; bo jeżeli wiedziałbyś dostatecznie duży, żeby spróbowaæ, to nie czytałbyś tego dokumentu !

Chociaż nawet bez tych komplikacji lepiej, żebyś zaczął zupełnie od nowa.

2.4 Jak długo to bêdzie trwało ?

To oczywiście zależy od tego, jak złożony jest twój system. Ale oceniłem, że na udane uaktualnienie (to drugie - nie pytaj ! ;) ) poświêciłem około 10 godzin na robienie archiwów, 6 godzin na przebudowanie systemu spowrotem do momentu, w którym mogłem siê zalogowaæ a nastêpne pół dnia czy coś koło tego na odtwarzanie niekrytycznych danych. Z biegiem czasu odkrywam jeszcze małe szczegóły, które nie są do koñca takie jakie chciałem -- naprawiam je wraz z odkrywaniem ich -- ale generalnie 20 godzin powinno wystarczyæ na sensowną odbudowê systemu. Może mniej jeśli instalujesz z dysku (ja używałem CD-ROM-u), albo wiêcej jeśli musisz instalowaæ z dyskietek. Może mniej jeśli masz szybkie Pentium - wiêcej jeśli jest to 386. No, rozumiesz o co chodzi.

To tyle tytułem wstêpu. Oto jak siê przygotowaæ jak już siê zdecydowałeś, że to zrobisz. Uzbroj siê w cierpliwośæ i:

3. Sam proces uaktualnienia.

3.1 Zapisuj wszystko co robisz.

Bardzo ważne jest to, żebyś zapisywał wszystko co robisz w czasie przygotowywania siê i przeprowadzania uaktulanienia. Szczególnie ważna jest lista archiwów, które bêdziesz robił przed zniszczeniem swojego systemu.

3.2 Zrób pełne archiwum aktualnego systemu.

Ogólnie mówiąc archiwa są zapisywane na mediach, które mają dostêp sekwenycyjny. Przez to, nie bêdziesz chciał użyæ tego całkowitego archiwum do odtworzenia znaczącej ilości plików; jest tam za dużo plików, których nie chcesz. Lepiej jest stworzyæ mniejsze archiwa, fragmentów dysku, które bêdziesz chciał później odtworzyæ. Później podam listê przykładów.

Dlaczego wiêc powinieneś zacząæ od całkowitego archiwum ? Dwa podstawowe powody:

  1. w przypadku całkowitego niepowodzenia instalacji nowszej wersji systemu bêdziesz mógł bezboleśnie powróciæ do sytuacji wyjściowej.
  2. niezależnie od tego jak dokładnie przygotujesz siê do uaktulanienia, istnieje bardzo duża szansa, że jeden lub dwa ważne pliki zostaną przeoczone. W tym przypadku cała niewygoda w odtwarzaniu tych dwóch plików z całego archiwum bêdzie lepsza od obchodzenia siê bez nich.

Aby zaoszczêdziæ czas i miejsce, jeśli ciągle masz nośnik ze swoją starą dystrybucją, możesz chcieæ zarchiwizowaæ tylko te pliki, których mtime czy ctime jest późniejszy niż oryginalnych z instalacji.

3.3 Zarchiwizuj /etc wraz z podkatalogami na jednej lub wiêcej dyskietkach.

To jest inna ekstremalna sytuacja: nie bêdziesz odtwarzał tych plików (przynajmniej w wiêkszości); bêdziesz je porównywał z tymi, które powstały po nowej instalacji. Dlaczego ? Ponieważ te nowe mogą zawieraæ dane, których nie ma w tych starych, albo mogą wyrażaæ stare dane w nowy sposób. Zmiany w protokołach, nowe narzêdzia albo implementacje nowych właściwości w istniejących narzêdziach mogą nieśæ za sobą zmianê formatów plików konfiguracyjnych i startowaæ skrypty, które znajdują siê w /etc i bêdziesz przypuszczalnie musiał edytowaæ te pliki konfiguracyjne, tak żeby odpowiadały nowemu formatowi.

3.4 Utwórz osobne archiwa dla każdej grupy plików, które chcesz zachowaæ.

To jest najbardziej zmienna czêśæ pracy i wszystko co mogê zrobiæ, żeby ci pomóc to opisanie tego co zrobiłem u siebie, w nadziei, że posłuży ci to jako przewodnik. Ogólnie powinieneś zajrzeæ do każdego katalogu, który zawiera

i oddziel tylko te pliki, które chcesz przenieśæ.

(Inną możliwą strategią jest zarchiwizowanie plików z mtime lub ctime późniejszym niż dzieñ instalacji i potem odtworzenie ich. Jeśli to zrobisz, to musisz mieæ na uwadze, że nowa dystrybucja może i tak zawieraæ nowsze wersje plików, które zarchiwizowałeś.). W moim przypadku, skoñczyło siê na archiwach nastêpujących katalogów:

Mój system był wzglêdnie łatwy ponieważ nie było żadnych plików spool, o które trzebaby siê troszczyæ. Nie mam katalogu do news-ów, a ponieważ jest tylko dwóch użytkowników, najprościej było przeczytaæ pocztê przed zamkniêciem systemu. W innym przypadku katalog /var/spool musiałby zostaæ zarchiwizowany w ostatniej minucie. (No i oczywiście biblioteka news-ów i katalogi lokalne !)

3.5 Przygotuj dyskietki "root" i "boot" do nowej instalacji.

Szczegóły na ten temat znajdziesz w podrêczniku do twojej nowej dystrybucji.

Od tłumacza: Możesz też zajrzeæ do Bootdisk-HOWTO.

3.6 Sformatuj dyskietki na tymczasowe jądro i na koñcową wersjê.

Bêdziesz potrzebował dwóch - po jednej na każde.
Jak to wszystko jest już zrobione jesteś gotowy na Wielką Chwilê. Nastêpny krok usuwa system z powierzchni ziemi.

3.7 Zablokuj logowanie siê i zarchiwizuj katalogi /root i /home.

Jest to ostatnia rzecz jaką bêdziesz robił na starym systemie zanim go zniszczysz.

3.8 Zrestartuj komputer z nowych dyskietek "boot" i "root".

3.9 Skasuj partycje Linux-owe fdiskiem i stwórz je ponownie.

Podrêcznik do instalacji wyjaśni jak to zrobiæ. W tym momencie niszczysz stary system i jesteś zależny od jakości archiwów, które zrobiłeś ! Zostałeś ostrzeżony !

3.10 Uruchom nową instalacjê.

Jest już kilka dokumentów, które opisują procedurê instalacji, tak wiêc nie bêdê siê zagłêbiał w szczegóły. Kontunuuj od tego miejsca jak już nowy system bêdzie startował z twardego dysku.

W czasie instalacji zrób także dyskietkê, z której bêdziesz mógł startowaæ ponieważ zainstalowane jądro bêdzie musiało zostaæ podmienione a wypadki siê zdarzają. Upewnij siê, że zainstalowałeś pakiety do rozwoju (development) i źródła do jądra.

3.11 Wyedytuj /etc/fstab po wystartowaniu nowego systemu.

I dodaj swoją partycjê swap. Potem wydaj polecenie swapon -a. Nie wiem dlaczego, ale program do instalacji Slackware'u nie daje możliowści zrobienia tego jeśli twoja partycja swap już istnieje. Potem jak próbujesz wystartowaæ system, skrypt rc.S próbuje włączyæ swap-owanie i nie znajduje partycji swap - ten krok naprawia ten błąd.

3.12 Odtwórz pliki konfiguracyjne do katalogu /etc i jego podkatalogów.

Jak to jest opisane powyżej, nie możesz po prostu skopiowaæ wszystkich plików spowrotem do tego katalogu i oczekiwaæ, że wszystko bêdzie ładnie działaæ. Niektóre pliki, z którymi możesz tak postąpiæ, np. /etc/XF86Config (o ile używasz tej samej wersji XFree86 i tej samej karty graficznej). Chociaż w wiêkszej czêści najlepiej jest użyæ programu diff do porównania plików przed rozpoczêciem kopiowania. Uważaj szczególnie na znaczące zmiany w /etc/rc.d, które mogą wymagaæ rêcznej restabilizacji twojego systemu, zamiast kopiowania zarchiwizowanych skryptów. Jak już wszystko jest gotowe - zrestartuj system.

3.13 Skonfiguruj i skompiluj jądro.

Nawet jeśli w ogóle nie musisz tego robiæ, żeby otrzymaæ jądro, które obsługuje twój sprzêt, opłaca siê to zrobiæ, choæby dlatego, żeby pozbyæ siê kupy niepotrzebnych sterowników z jądra, które tylko je spowalniają. Szczegóły znajdziesz w Kernel-HOWTO. Najpierw zainstaluj nowe jądro na dyskietce - jeśli wszystko działa, to zainstaluj je na dysku twardym, uruchom LILO jeśli go używasz, i zrestartuj komputer.

3.14 Odtwórz archiwa, które wcześniej zrobiłeś.

Niektóre binaria bêdą musiały zostaæ zainstalowane z katalogów źródłowych; musiałem tak zrobiæ z lilo, na przykład, ponieważ miałem nowszą wersjê niż w dystrybucji i nie zarchiwizowałem katalogu /sbin. Bêdziesz pewnie chciał sprawdziæ programy z archwium czy wszystkie siê poprawnie zainstalowały oraz czy wszystkie pliki konfiguracyjne i biblioteki są na miejscu. W niektórych przypadkach musisz odtworzyæ programy w określonej kolejności; robiłeś notatki podczas archiwizacji, czyż nie ? ;)

3.15 Sprawdź bezpieczeñstwo.

Sparwdź prawa dostêpu do plików i katalogów, żeby dowiedzieæ siê czy dostêp nie jest zbyt mały lub zbyt szeroki. Dowiedziałem siê np., że Slackware dąży do bardziej otwartego środowiska niż ja lubiê, wiêc przechodzê przez katalogi i zmieniam 755 na 711 dla plików w .../bin i podobnych rzeczy. A nawet zmieniam na 700 dla plików w /sbin. Szczególna ostrożnośæ jest potrzebna jeśli miałeś serwer ftp - ale jeśli już go miałeś, to na pewno o tym pomyślałeś wcześniej :)

3.16 Odblokuj logowanie siê.

System już działa. Przez nastêpną chwilê, bêdą pewnie jakieś szczegóły do dopracowania; ale wiêkszośæ roboty jest już zrobiona. Miłej zabawy !

3.17 Przepraszam, ale jeszcze raz:

UŻYWAJ INFORMACJI TU ZAWARTYCH NA WŁASNE RYZYKO !!! (Zobacz sekcjê Prawa autorskie i zrzeczenie.)

3.18 Podziêkowania.

Wielkie podziêkowania za wkład wniesiony do tego mini-HOWTO dla Zoltána Hidvégi.

4. Od tłumacza.

Jeśli znalazłeś jakieś rażące błêdy ortograficzne, gramatyczne, składniowe, techniczne to pisz do mnie:

B.Maruszewski@zsmeie.torun.pl

Oficjalną stroną tłumaczeñ HOWTO jest http://www.jtz.org.pl/

Aktualne wersje przetłumaczonych dokumentów znajdują siê na tejże stronie. Dostêpne są także poprzez anonimowe ftp pod adresem ftp.ippt.gov.pl/pub/Linux/JTZ/

Przetłumaczone przeze mnie dokumenty znajdują siê także na mojej stronie WWW. Są tam też odwołania do Polskiej Strony Tłumaczeniowej.

Kontakt z naszą grupą, grupą tłumaczy możesz uzyskaæ poprzez listê dyskusyjną jtz@ippt.gov.pl. Jeśli chcesz sie na nią zapisaæ, to wyślij list o treści subscribe jtz Imiê Nazwisko na adres listproc@ippt.gov.pl

Zmiany wprowadzone przeze mnie do tego dokumentu to polskie odnośniki do serwerów ftp i WWW oraz informacja o Bootdisk-HOWTO.