|
Upgrade systemu, rekompilacja jądra + parę innych spraw po drodze
Autorzy prac i dokumentu:
Tomasz Berus
Krzysztof Napierała
Stan początkowy
- 1. Ogólny opis środowiska, w którym będziemy działać:
- a. Mamy do dyspozycji komputer .....
- b. Na drodze do net'u "stoi" proxy-server:
ftp://w3cache.physd.amu.edu.pl:8080
http://w3cache.physd.amu.edu.pl:8080
- c. Póki co jest też serwer DHCP, który gdy udrożnimy dostęp do sieci, przydzieli nam IP.
- d. Do tyspozycji mamy pierwszą płytę instalacyjną Debian 3.0r0 (woody)
2. Przed przystąpieniem do prac opisanych w niniejszym dokumencie
wykonane zostały już następujące prace:
- a. Zainstalowany Debian 3.0r0 (woody) - sama podstawa + doinstalowane za pomocą
tasksel'a grupa pakietów Development-->[*] C and C++ (z myślą o planowanej rekompilacji jądra).
Jako boot-loader zainstalowany został LILO.
- b. Podczas instalacji dokonano podziału dysku wg poniższego schematu:
/dev/hda4/ (9.88GB)
/dev/hda2 swap (512MB)
/dev/hda5/home (10GB)
/dev/hda6/var (5GB)
/dev/hda7/usr (10GB)
/dev/hda8/tmp (2GB)
Wszystkie partycje są w systemie plików ext2. A żeby było weselej to na partycji
/dev/hda1 (2.6 GB) jest zainstalowany Windows 98
- c. W konfiguracji LILO włączono mechanizm wymagania hasła podczas zmiany wariantu boot-wowania systemu.
- d. Utworzono konta dla user'ów.
- e. UWAGA!!! net nie działa ponieważ nie została rozpoznana karta sieciowa
(pech chciał, że ten komputer ma kartę sieciową zintegrowaną z płytą główną - a
takie rozwiązania są widziane dopiero po przekompilowaniu nowego jądra)
Ogólne cele
- 1. Dokonanie upgrade systemu do nowszej wersji (r3).
- 2. Instalacja najnowszego jądra.
- 3. Rekompilacja jądra:
- a. włączenie obsługi mechanizmu Quota,
- b. włączenie obsługi ext3 file system,
- 4. Przejście na ext3 filesystem
- 5. Instalacja pakietów do obsługi Quoty.
- 6. No i oczywiście, udrożnienie drogi do net'u.
Drobne uwagi na wstępie
Podczas wszystkich działań używana będzie powłoka bash.
Generalnie, przy innych powłokach, czynności będą wyglądać
tak samo. Jeżeli jednak używamy innej powłoki, to należy wziąć
pod uwagę na przykład różnice w sposobie ustawiania zmiennych
środowiskowych (environment vairables).
W przykładach, gdzie występują polecenia wprowadzane do powłoki,
będzie używana notacja, która sugeruje od razu, czy wykonujemy
czynność jako root, czy jako zwykły user:
$export ..... // polecenie wydane jako zwykły user.
#export ..... // polecenie wydane jako root.
Dodatkowe komentarze do poszczególnych komend zaczynają się w tej
samej linii i oddzielone są dwoma znakami '//' (tak jak w powyższym przykładzie).
FAZA-I - Instalacja najnowszego jądra:
STEP1: Ściągnięcie jądra.
Potrzebujemy nowego jądra (tak, tak w tym wieku to już konieczność!).
Niestety nasz komputer nie widzi net'u, dlatego musimy posiłkować się inną stacją.
Jak chodzi o ściągnięcie pakietu z kodami najnowszego jądra, to nie jest
wielka filozofia. Wystarczy wejść na stronę http://www.kernel.org/ albo
od razu na http://www.kernel.org/pub/linux/kernel/ i ściągnąć:
linux-2.4.28.tar.gz //ok. 40MB, większy ale jest lepszy, bo gzip
na pewno jest już podinstalowany w systemie
lub
linux-2.4.28.tar.bz2 //ok. 31MB
Teraz jednak trochę cięższa sprawa, ponieważ powinniśmy upewnić się, że
to co ściągnęliśmy jest oryginalne. Chyba nikt nie chce samemu zainstalować
sobie konia tojańskiego w postaci podejrzanego jąderka. Wszystkich, którzy
w tym miejscu pukną się w czoło i pomyślą, że to jest paranoja odsyłam do
kolejnego kroku. Pozostałą garstkę, która nie chce być ciemną masą zapraszam
do zabawy z gpg.
Poniższy opis zakłada, że mamy do dyspozycji komputer z LINUX'em.
Pakiet gpg powinniśmy więc mieć już zainstalowany. W razie czego na
stronie http://www.gnupg.org/(en)/download/index.html znajdziemy wszystko
co nam potrzebne, łącznie z wersją okienkową.
Drobna dygresja.
W niniejszym opisie nie będziemy rozpisywać się jak tego programu w pełni
należycie używać. Do naszych potrzeb nie będzie potrzebne posiadanie
żadnych własnych par kluczy. Po prostu użyjemy gpg do sprawdzenia, czy
cyfrowy podpis zgadza się z oryginałem i czy odcisk klucza publicznego
Wydawcy zgadza się z tym podanym na jego oficjalnej stronie lub zgadza
się z tym podanym w jednym z serwerów kluczy (keyservers).
STEP1(gpg):
Z Net'u ściągamy, oprócz pakietu z kodem źródłowym również plik podpisu cyfrowego.
Najlepiej z innego miejsca niż źródła jądra, Ja wybrałem do tego
ftp://ftp.task.gda.pl/site/kernel.
linux-2.4.28.tar.gz.sign
lub
linux-2.4.28.tar.bz2.sign
STEP2(gpg):
Wrzucamy wszystko do jednego katalogu (pakiet ze źródłami i podpis cyfrowy)
a następnie wydajemy komendę, która dokona weryfikacji pakietu i podpisu:
$gpg --verify linux-2.4.28.tar.gz.sign linux-2.4.28.tar.gz
gpg: Podpisano w śro 17 lis 2004 13:04:12 CET kluczem DSA o numerze 517D0F0E.
gpg: Nie można sprawdzić podpisu: brak klucza publicznego
Weryfikacja nie powiodła się, ponieważ nie mamy jeszcze klucza publicznego
jednostki, która rozpowszechnia Linux'owe jądra. Z powyższej informacji
wiemy już jednak, że potrzebujemy klucza o ID 0x517D0F0E. Ściągamy więc
potrzebny klucz publiczny (z keyserver'a):
$gpg --keyserver wwwkeys.pgp.net --recv-keys 0x517D0F0E //Pamiętajmy aby numer klucza poprzedzić znakami '0x' oraz pisać numer dużymi literami.
gpg: klucz 517D0F0E: klucz publiczny ,,Linux Kernel Archives Verification Key
'' wczytano do zbioru
gpg: Ogółem przetworzonych kluczy: 1
gpg: dołączono do zbioru: 1
Możemy użyć również innych serwerów kluczy publicznych tj.
http://www.keyserver.net/en/ lub http://keyserver.noreply.org/.
Teraz możemy ponownie podejść do weryfikacji pakietu z jądrem:
$gpg --verify linux-2.4.28.tar.gz.sign linux-2.4.28.tar.gz
gpg: Podpisano w śro 17 lis 2004 13:04:12 CET kluczem DSA o numerze 517D0F0E.
gpg: Poprawny podpis złożony przez "Linux Kernel Archives Verification Key
"
gpg: sprawdzanie bazy zaufania
gpg: sprawdzanie na głębokości 0 podpisów =1 ot(-/q/n/m/f/u)=0/0/0/0/0/2)
gpg: sprawdzanie na głębokości 1 podpisów =0 ot(-/q/n/m/f/u)=1/0/0/0/0/0)
gpg: następne sprawdzanie bazy odbędzie się 2006-04-20
gpg: OSTRZEŻENIE: Ten klucz nie jest poświadczony zaufanym podpisem!
gpg: Nie ma pewności co do tożsamości osoby która złożyła podpis.
Odcisk klucza głównego: C75D C40A 11D7 AF88 9981 ED5B C86B A06A 517D 0F0E
Interesuje nas tylko to co oznaczone pogrubioną czcionką. Reszta wynika z
faktu, że ściągniętego klucza publicznego nie zweryfikowaliśmy i
nie podpisaliśmy swoim własnym kluczem na znak, że jesteśmy jego pewni.
Niemniej weryfikacja przebiegła prawidłowo. Wiemy, że pakiet nie został
zmieniony, i że został podpisany przez Linux Kernel Archives (...).
Pozostało tylko sprawdzić tożsamość jednostki podpisującej. Zrobimy więc
to teraz porównując podany w ostatniej linijce odcisk klucza (fingerprint)
z odciskiem podanym na stronie http://www.kernel.org/signature.html lub
na stronie http://keyserver.noreply.org/ (po podaniu numeru 0x517D0F0E).
W Naszym przypadku odciski były prawidłowe, dlatego można przyjąć,
że nasze kody nowego jądra są w porządku.
Zobacz także: http://www.linuxpub.pl/man/gnu_privacy/
(warto polecić tym, którzy są zainteresowani dobrym wprowadzeniem w zagadnienia
gpg). Ewentualnie, w oryginale, jest pod http://www.gnupg.org/gph/en/manual.html
Mamy teraz pakiet (linux-2.4.28.tar.gz) z kodami źródłowymi nowego jądra (w wersji 2.4.28 lub nowsze)
STEP2:
Wstępna konfiguracja apt-get'a, pod CDROM. Tutaj na szczęście większych problemów nie będzie.
Może mała dygresja, co to właściwie jest ten cały APT.
W skrócie, idea APT - Advanced Packaging Tool, jest następująca. Zamiast ręcznie szukać w sieci, na dysku lub na CDROM'ie jakiegoś pakietu i dodatkowo jeszcze wszystkich potrzebnych do jego działania dodatkowych/zależnych pakietów, po prostu określamy w APT czego szukamy a reszta idzie już z automatu. Oczywiście do prawidłowego działania APT potrzebuje listy źródeł, czyli informacji o miejscach, w których może szukać potrzebnych pakietów. APT pozwala na instalowanie, usuwanie i oczywiście uaktualnienia poszczególnych pakietów. Dodatkowo pozwala również na automatyczny upgrade całej dystrybucji.
W napędzie umieszczamy pierwszą płytę z instalką Debian 3.0r0 (woody) i wprowadzamy:
#apt-cdrom ident //UWAGA!!! nie montujemy napędu
Nie jest to konieczne, ale pozwala się upewnić, że umieściliśmy w napędzie właściwą płytę.
#apt-cdrom add
#apt-get update //UWAGA!!! bez tego cała nasza praca pójdzie na nic.
APT samo identyfikuje nasz CDROM i dokona stosownego wpisu do pliku /etc/apt/sources.list. Pamiętajmy o #apt-get update, ponieważ dopiero to polecenie każe APT zaktualizować bazę informacji o pakietach.
Zobacz także: http://www.debian.org/doc/manuals/apt-howto/index.pl.html
STEP3:
Instalacja z płyty kilku potrzebnych pakietów.
Mamy już skonfigurowany APT z zaktualizowaną bazą danych o pakietach.
Możemy więc doinstalować kilka pakietów, które będą Nam potrzebne w kolejnych krokach.
#apt-get -u install screen //nie jest konieczne, ale przydatne dla sprawnego działania.
#apt-get -u install vim //nie jest konieczne, ale ..... (no comments)
#apt-get -u install libncurses5-dev //KONIECZNE, aby można było przeprowadzić rekonfigurację jądra za pomocą menuconfig (w tekstowych okienkach) a nie na piechotę.
Ewentualnie dodatkowo jeszcze doinstalowujemy pakiet
#apt-get -u install kernel-package //Debian Linux kernel package
build script, czyli zestaw potrzebny jeżeli będziemy chcieli przeprowadzić
zautomatyzowaną procedurę rekompilacji jądra.
OK, no to teraz mamy już wszystko co jest nam potrzebne do dalszej
pracy (to chyba złe określenie, bo My się przecież nieźle bawimy).
Możemy już pozbyć się, z napędu, płytki instalacyjnej.
STEP4:
Instalacja kodów do nowego jądra - przygotowania do rekompilacji.
1. Przerzucamy pakiet linux-2.4.28.tar.gz do /usr/src i rozpakowujemy poleceniem:
#cd /usr/src //dla formalności aby nie zapomnieć, gdzie
powinniśmy być
#tar xzvf linux-2.4.28.tar.gz
lub
#tar xjvf linux-2.4.28.tar.bz2 //jeżeli mamy spakowane bzip'em
W bieżącym katalogu powstanie podkatalog 'linux-2.4.28'.
2. Zmieniamy dowiązania:
#mv linux linux.old //poprzednie dowiązanie (jeżeli jest)
#ln -s linux-2.4.28 linux //teraz podkatalog linux/ wskazuje na nowe jądro.
3. Jeżeli mamy jakieś dodatkowe patche do jądra, to teraz je rozpakowujemy.
W Naszym przypadku, na tym etapie nie było to konieczne, dlatego nie ma co
się nad tym na sucho tutaj rozpisywać. W razie czego w pliku linux/README
(katalog z naszym nowym kodem) jest gotowy przykład.
Mała uwaga, ponieważ przyjemność patch'owania jądra nie ominęła nas jednak,
to zainteresowanych odsyłamy, na zakończeniu niniejszej lektury, do mini
HowTO(3) grsecurity + patchowanie i ponowna rekompilacja jądra.
4. Teraz sprawdzamy, czy na pewno mamy odpowiednią wersję gcc do rekompilacji jądra.
#cd /usr/src/linux
#cat README | grep gcc
- Make sure you have gcc 2.95.3 available. (...) //minimum musimy mieć: 2.95.3
#gcc --version
2.95.4 //jak widać jeszcze się mieścimy.
Jest OK.
STEP5:
Konfiguracja parametrów nowego jądra.
Mamy zainstalowany pakiet libncurses5-dev więc skorzystamy ze skryptu menuconfig.
Dla przypomnienia, co musimy zrobić przede wszystkim:
- wkompilować w jądro obsługę mechanizmu Quota,
- wkompilować obsługę extg3 filesystem,
- wkompilować obsługę kart sieciowych zintegrowanych z płytą główną.
Przystępujemy więc do działania:
#cd /usr/src/linux
#make menuconfig
Teraz spróbujemy podać co należy zmienić w parametrach, parę zaleceń,
które w sumie można podsumować prostą regułą wyłącz wszystko z czego
nie będziesz korzystać .
Wyłączenie niepotrzebnych składników
Lista obejmuje tylko pozycje, które standardowo były włączone.
CONFIG_SMP=N OFF: Processor type and features/Symmetric multi-processing support //mamy tylko jeden procesor.
CONFIG_HOTPLUG=N OFF: General setup/Support for hot-pluggable devices //przydałoby się gdybyśmy planowali używanie urządzeń na interfejsie USB, ale my stawiamy serwer i lepiej aby nic samo się nie ustawiało.
CONFIG_AUTOFS4_FS=N OFF: File systems/Kernel automounter 4 support (also support v3) //nie chcemy aby na serwerze coś samo się montowało bez naszej wiedzy.
CONFIG_NFS_FS=N OFF: File systems/Network File Systems/NFS file system support //nie planujemy bezpośredniego korzystania z zasobów innego serwera.
CONFIG_NFSD=N OFF: File systems/Network File Systems/NFS server support //a tym bardziej nie będziemy udostępniać naszych danych innym (przynajmniej nie w ten sposób).
CONFIG_DRM=N OFF: Character devices/Direct Rendering Manager (XFree86 DRI support) //no comment przecież to ma być serwer.
CONFIG_AGP=N OFF: Character devices/ /dev/agpgart (AGP support) //naszą kartę graficzną będziemy używali tylko w minimalnym zakresie.
CONFIG_SCSI=N OFF: SCSI support //nie mamy urządzeń z interfejsem SCSI.
CONFIG_SOUND=N OFF: Sound //na serwerze nie potrzebujemy dzwięku.
CONFIG_USB=N OFF: USB support //nie planujemy na serwerze używać urządzeń z takim interfejsem.
Włączenie potrzebnych składników
Lista obejmuje tylko pozycje, które standardowo były wyłączone.
CONFIG_PARPORT=Y ON: Parallel port support
CONFIG_PARPORT_PC=Y ON: Parallel port support/PC-style hardware //planujemy udostępniać drukarkę za pośrednictwem naszego serwera.
CONFIG_EXT3_FS=Y ON: File systems/Ext3
CONFIG_QFMT_V2=Y ON: File systems/Quota support/VFS v0 quota format support //to dla grupy od ustawiania Quoty.
CONFIG_ ... =M ON: Network device support/Ethernet (10 or 100Mbit)/ ... //w tym menu należy wybrać pozycję zgodnie z parametrami naszej karty sieciowej. W naszym przypadku włączyliśmy obsługę on board controller --> /EISA, VLB, PCI and on board controllers/<...>.
Mała dygresja:
Jeżeli nie jesteście pewni czy wybór jest w pełni prawidłowy, to proponujemy wybrać kilka wariantów, i wszystkie ustawić na M(ładowane jako moduły). Po przekompilowaniu i zainstalowaniu jądra łatwo można przetestować, który moduł jest odpowiedni, stosując polecenia:
#lsmod // info o aktualnie załadowanych modułach
#rmmod // usunięcie aktualnie załadowanego modułu
#insmod // załadowanie nowego modułu
a listę modułów znajdziecie w /lib/modules//... (gdzie x.y.z to numer zainstalowanego jądra) w naszym przypadku będzie to 2.4.28
Jak już zostanie ustalony właściwy moduł, to można go przy kolejnym podejściu wkompilować już w jądro, a resztę usunąć.
CONFIG_NETFILTER=Y ON: Networking options/Networking packet filtering (replaces ipchains) //to dla kolegów z grupy Firewall'a
A teraz w Networking options/ IP: Netfilter Configuration:
Na tym etapie nie wiedzieliśmy z czym będą się bawić koledzy z grupy Firewall'a i FTP'a, dlatego ustawiliśmy wszystkie warianty na M (Module)
CONFIG_NF_CONNTRACK=M
CONFIG_NF_FTP=M
CONFIG_NF_TFTP=M
CONFIG_NF_IPTABLES=M
CONFIG_MATCH_LIMIT=M
CONFIG_MATCH_...
Na koniec jeszcze kilka refleksji.
Wybaczcie jeżeli będą dla Was banalne, chcieliśmy jednak w jakiś sposób podsumować te Nasze zmagania z parametrami i ułatwić sobie pracę podczas kolejnych podobnych prac.
- Wyłącz wszystko z czego nie będziesz korzystać .
- Dostrajanie parametrów jądra to proces ciągły - szczególnie na samym początku, kiedy dopiero zaczynamy. Tak więc od razu lepiej założyć, że kilka razy będziemy to robić.
- Dobrze jest przyjąć zasadę, o ile jest taka możliwość, najpierw jako moduł a potem dopiero rozważ wkompilowanie. Chodzi o to, że często nie wiemy, czy z danej właściwości będziemy korzystać, wówczas użycie jej jako moduł i późniejsze monitorowanie jego wykorzystania (polecenie lsmod) jest dobrym rozwiązaniem.
- Wyłącz wszystko z czego już wiesz, że nie korzystasz - jako uzupełnienie poprzedniej zasady.
STEP6:
Rekompilacja. Po skonfigurowaniu mamy, w debian'ie, do dyspozycji dwie drogi.
1. Fast speed - ale tylko pod Debian'em.
W tym wariancie musimy mieć uprzednio zainstalowany pakiet kernel-package
(Debian Linux kernel package build scripts)
#cd /usr/src/linux
#make-kpkg clean
#make-kpkg --revision=1:test1 kernel-image //ewentualnie dodać opcję --bzImage
Po tej operacji powstanie gotowy pakiet .deb pozwalający automatycznie dokonać
wszystkich zmian związanych z instalacją nowego jądra.
#cd /usr/src
#dpkg --install kernel-image-2.4.28_test1.deb
I na tym koniec, ponieważ konieczne zmiany w lilo też zostały za nas wykonane.
Możemy pominąć pozostałą część opisu w tej fazie i od razu sprawdzić, czy nowe jądro działą prawidłowo.
2. Normal speed - wolniejsza, ale pokazuje jak to wszystko zrobić, niekoniecznie w Debian'ie.
#cd /usr/src/linux
#make clean //usunięcie pozostałości po poprzedniej kompilacji
#make dep //sprawdzenie zależności
#make bzImage //kompilacja
#make modules //kompilacja modułów
OK, mamy teraz już wszystko przekompilowane.
STEP7:
Rekonfiguracja systemu do pracy z nowszym jądrem.
Jeżeli po raz drugi rekompilujemy jądro o tym samym numerze,
to w tym momencie powinniśmy zrobić kopię poprzednio przekompilowanych
modułów. Moduły są przechowywane w ścieżce: /lib/modules/x.y.z
(gdzie x.y.z to numer jądra, dla którego są przeznaczone).
Wykonujemy więc na przykład:
#mv /lib/modules/2.4.28 /lib/modules/2.4.28.old
Teraz możemy już spokojnie wykonać:
#make modules_install //dopiero teraz przekompilowane moduły
umieszczane są w /lib/modules/x.y.z
Kolejny krok, to podłączenie nowego jądra do LILO.
#cp /usr/src/linux/arch/i386/boot/bzImage /boot/bzImage-2.4.28 //kopiujemy nowe jądro
#cp /usr/src/linux/.config /boot/config-2.4.28 //zawsze dobrze zrobić sobie kopię z parametrami ustawionymi w jądrze.
W pliku konfiguracyjnym LILO musimy wprowadzić kilka zmian.
#chmod 0600 /etc/lilo.conf //to tak profilaktycznie - pamiętajmy, że tam jest podane hasło pozwalające na zmiany w procesie boot'owania systemu - hasło jest podane w plain-text.
#cp /etc/lilo.conf /etc/lilo.conf.org
#vim /etc/lilo.conf
Pamiętajmy o pozostawieniu wpisów dotyczących aktualnego jądra, ponieważ
musimy mieć możliwość bootowania również z niego - jak na razie na pewno działającego.
Na końcu dodajemy:
image=/boot/bzImage-2.4.28
label=linux-NEW
read-only
restricted
....
Wprowadzenie zmian.
#lilo //UWAGA!!! nie zapomnijmy o tym, bo Nasze zmiany nie będą widoczne.
Nadszedł czas na upragniony restart i boot'owanie z nowym jądrem.
Po prawidłowym restarcie i zalogowaniu możemy sprawdzić co mamy pisząc:
#uname -a
Linux deb 2.4.28 ...
W /etc/lilo.conf zmieniamy wpis default=... na default=linux-NEW
(od teraz system będzie domyślnie startował na naszym nowym jądrze). I oczywiście ponownie
#lilo
Na zakończenie jeszcze kopiujemy i ustawiamy jako domyslny nowy plik System.map:
#cd /usr/src/linux
#cp System.map /boot/System.map-2.4.28
#cd /boot
#mv System.map System.map-2.2.20 //lepiej zachować poprzedni wariant
#ln -s System.map-2.4.28 System.map
Teraz końcowy restart systemu.
Zobacz także: http://debian.linux.org.pl/zrobione.html
http://www.linux.sky.pl/teksty/kernel.html
FAZA-II - Uaktualnienie całej dystrybucji Debiana (z net'u)
Czynności z FAZY I zakończyły się pomyślnie. Dzięki temu mamy teraz
Debian'a pracującego na najnowszym jądrze 2.4.28 (z włączonymi wszystkimi
opcjami, które będą Nam potrzebne w kolejnych krokach). Idziemy więc dalej
z koksem
STEP1:
Udrożnienie dostępu do net'u.
W nowym jądrze włączyliśmy obsługę kart sieciowych zintegrowanych z
płytą główną, dlatego teraz, po restarcie systemu, karta została już
rozpoznana. Możemy więc przystąpić do konfiguracji ustawień związanych
z dostępem do net'u
wariant A: w pracowni
#dhclient
#ifconfig eth0
(...) //otrzymamy info o przyjętych z serwera DHCP parametrach
W pracowni dostęp do internetu jest możliwy tylko za pośrednictwem proxy-server'a,
dlatego aby wydostać się na świat musimy ustawić dwie zmienne środowiskowe:
#export ftp_proxy='ftp://w3cache.physd.amu.edu.pl:8080'
#export http_proxy='http://w3cache.physd.amu.edu.pl:8080'
Powyższy zestaw komend najlepiej od razu dodać do naszego ~/.bashrc
tak aby za każdym razem, gdy się zalogujemy mieć od razu dostęp. Możemy
też dodać do /etc/profile, wówczas będą to domyślne ustawienia dla
wszystkich user'ów.
wariant B: jeżeli korzystamy ze statycznych ustawień (nie mamy serwera DHCP)
i na drodze do net'u stoi Nam tylko router o na przykład IP 192.168.1.1
#ifconfig eth0 192.168.1.10 up //ręcznie ustawiamy wybrany numer IP
#route add default gw 192.168.1.1 //ustawiamy parametry bramy do internetu
#vim /etc/resolv.conf //ręcznie wprowadzamy numery IP
serwerów DNS
(...)
nameserver 194.204.152.34 //przykładowe serwery DNS TP S.A.
nameserver 217.98.63.164
#ping www.wp.pl //prosty ping upewnia Nas, że mamy już dostęp do internetu
OK, działa. Możemy w takim razie ustawić parametry interfejsu sieciowego
na stałe. W tym celu zatrzymujemy pracę interfejsu eth0:
#ifdown eth0
a następnie wprowadzamy zmiany w pliku /etc/network/interfaces, do
którego wstawiamy następujące linie:
początek pliku zostawiamy bez zmian:
auto lo
iface lo inet loopback
dla wariantu A, gdy jako klient korzystamy z DHCP na interfejsie eth0, dodajemy:
auto eth0
iface eth0 inet dhcp
,a dla wariantu B, gdy korzystamy ze statycznych ustawień na interfejsie eth0, dodajemy:
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
I na koniec, na próbę, sprawdźmy, czy wszystko działa czy interfejs podniesie się?:
#ifup eth0
#ping www.wp.pl //mały teścik.
Zobacz także: http://www.debian.org/doc/manuals/reference/ch-gateway.pl.html
(warto zapoznać się z tym opisem, gdyż jest tam wiele informacji o różnych
wariantach konfiguracji interfejsów sieciowych).
STEP2:
Konfiguracja apt-get'a.
Dostęp do internetu nie sprawia Nam już problemu, dlatego teraz
możemy przestawić APT tak aby szukał pakietów nie na CDROM'ie ale
bezpośrednio w net'ie. W tym celu musimy pozyskać listę źródeł,
którą najlepiej skompletować na podstawie http://www.debian.org/mirror/mirrors_full
(możemy skorzystać z lynx'a)
Wybieramy na przykład:
ftp://ftp.sunsite.dk/mirrors/debian/
http://ftp.task.gda.pl/debian/
Powyższą lokalizację wprowadzamy do /etc/apt/sources.list w następującym formacie
...
,gdzie:
- to typ pakietów:
deb - pakiety z przekompilowanymi kodami
deb-src - pakiety z kodami źródłowymi
Pozostałe pola tworzą ścieżki, w których szukane będą pakiety:
/dists//
/dists//
/dists//<...>
Przy czym przyjęte są następujące zasady:
- główny katalog
- wskazanie na katalog z daną dystrybucją
- wskazanie na podkatalogi z rodzajem pakietów
(np. non-free dla pakietów komercyjnych)
przykład 1:
deb ftp://ftp.sunsite.dk/mirrors/debian woody main contrib
Co daje nam źródło pakietów 'deb' z następujących lokalizacji:
ftp://ftp.sunsite.dk/mirrors/debian/dists/woody/main
ftp://ftp.sunsite.dk/mirrors/debian/dists/woody/contrib
przykład 2:
deb http://ftp.task.gda.pl/debian stable main contrib
W tym przypadku wskazujemy na źródło pakietów należących do ostatniej stabilnej wersji dystrybucji.
UWAGA! - pamiętajmy o zakomentowaniu wpisu dotyczącego cdrom'u (czyli #deb cdrom ...)
Po wprowadzeniu nowych źródeł obowiązkowo wykonujemy polecenie
#apt-get update //uaktualnienie bazy informacji o pakietach.
Jeżeli podane źródła są prawidłowe to ujrzymy jak ściągane są, z poszczególnych
lokalizacji, zbiorcze informacje o pakietach.
Sprawdźmy teraz, czy zadziała:
#apt-cache search apt-show-versions
#apt-get -u install apt-show-versions //nie jest konieczne,
ale przydatne do identyfikacji wersji zainstalowanych pakietów z informacją
do jakich wersji możemy je podnieść.
Zobacz także: http://www.debianusers.pl/ (artykuł Serwery lustrzane z pakietami...)
STEP3:
Upgrade całej dystrybucji systemu, za pomocą apt-get'a.
Mając już poprawnie skonfigurowany APT wystarczy napisać:
#apt-get -u dist-upgrade //dzięki '-u' mamy pełną listę pakietów, które zostaną uaktualnione
FAZA-III - Przygotowanie systemu pod kolejne czynności konfiguracyjne
STEP1:
Instalacja pakietów do obsługi Quoty.
W tej kwestii już niewiele musimy robić, wystarczy wpisać:
#apt-cache search quota
#apt-get -u install quota
i narzędzia do Quoty już są.
STEP2:
Przejście na ext3 filesystem.
Dla każdej partycji, którą chcemy przestawić na ext3, wykonujemy następujące dwa kroki
#tune2fs -j /dev/hda5 //w naszym przypadku odpowiada to /home
#vim /etc/fstab
w wierszu dotyczącym /deb/hda5 zmieniamy wpis ext2 na ext3.
Mała dygresja.
W dokumencie http://www.debian.org/doc/manuals/reference/ch-kernel.pl.html
(chapter 7.2.4) znaleźliśmy bezpieczniejsze rozwiązanie:
(...) Używając ext3,ext2 jako wpis typ w fstab zapewniasz bezpieczny powrót
do EXT2, jeżeli jądro nie wspiera EXT3 dla partycji innych niż główna. (...).
Wygląda na to, że EXT3 zachowuje wsteczną zgodność.
Gdybyśmy wcześniej o tym wiedzieli, to cała Nasza późniejsza akcja z ratowaniem
systemu nie byłaby konieczna.
I to wszystko.
Po przeinicjowaniu systemu zmienione partycje zostaną podmontowane już jako ext3.
|