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
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.
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ę.
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.
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:
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.
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:
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.
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.
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 !)
Szczegóły na ten temat znajdziesz w podręczniku do twojej nowej dystrybucji.
Od tłumacza: Możesz też zajrzeć do Bootdisk-HOWTO.
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.
Jest to ostatnia rzecz jaką będziesz robił na starym systemie zanim go zniszczysz.
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 !
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.
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.
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.
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.
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 ? ;)
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 :)
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 !
UŻYWAJ INFORMACJI TU ZAWARTYCH NA WŁASNE RYZYKO !!! (Zobacz sekcję Prawa autorskie i zrzeczenie.)
Wielkie podziękowania za wkład wniesiony do tego mini-HOWTO dla Zoltána Hidvégi.
Jeśli znalazłeś jakieś rażące błędy ortograficzne, gramatyczne, składniowe, techniczne to pisz do mnie:
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.