# 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

- Dodałem tę sekcję historyczną.
- Dodałem sugestię Zoltán Hidvégi odnośnie mtime i ctime. Dzięki Zoltán !
- Dodałem sekcję Podziękowania.

## 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

- pliki, które nie są częścią standardowej instalacji albo
- pliki, które są nowsze od tych z nowej instalacji.

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:

- /usr/lib/rn
- /usr/lib/smail
- /usr/lib/trn (reszta /usr/lib zostałaby przeinstalowana)
- /usr/local/src
- /usr/local/bin
- /usr/local/lib
- /usr/local/lpfont
- /usr/local/man
- /usr/local/sbin
- /usr/local/thot (w /usr/local były pliki, których niepotrzebowałem)
- /usr/openwin
- /usr/src/lilo-17 (ponieważ mój nowy Slackware miał wciąż wersję 16)
- /usr/src/linux-1.2.13 (ponieważ skonfigurowałbym od nowa)
- /usr/X11R6/lib/X11/app-defaults
- /usr/X11R6/lib/X11/initrc (reszta X11 miała być przeinstalowana
- /var/named
- /var/openwin
- /var/texfonts

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.