The Linux Bootdisk HOWTO Autor: Tom Fawcett fawcett@croftj.net v3.4, maj 1999 WWeerrssjjaa ppoollsskkaa:: AAddaamm BByyrrtteekk aallpphhaa@@iirrcc..ppll v1.2, lipiec 1999 Dokument ten opisuje, jak tworzy swoje wasne dyskietki startowe dla Linuxa. Dyskietki te mog zosta uyte jako dyskietki ratunkowe, lub w celu przetestowania nowych skadnikw systemu. Jeli nie czytae jeszcze Linux FAQ i powizanych dokumentw, takich jak Linux Installation HOWTO czy Linux Install Guide, to nie powiniene tworzy dyskietek startowych. Jeli potrzebujesz jedynie dyskietki ratunkowej na wypadek awarii, to zajrzyj do dodatku ``Gotowe dyskietki''. ______________________________________________________________________ Spis treci 1. Przedmowa. 1.1 Uwagi na temat wersji. 1.2 Opinie. 1.3 Rozpowszechnianie. 2. Wprowadzenie. 3. Dyskietki startowe i proces startu systemu. 3.1 Proces startu systemu. 3.2 Typy dyskw. 4. Budowanie gwnego systemu plikw. 4.1 Wiadomoci oglne. 4.2 Tworzenie systemu plikw. 4.3 Zapenianie systemu plikw. 4.3.1 /dev 4.3.2 /etc 4.3.3 /bin i /sbin 4.3.4 /lib 4.4 Providing for PAM and NSS. 4.4.1 PAM (Pluggable Authentication Modules). 4.4.2 NSS (Name Service Switch). 4.5 Moduy. 4.6 Kocowe detale. 4.7 Kopiowanie na dyskietk. 5. Wybieranie jdra. 6. Skadnie tego wszystkiego: tworzenie dyskietek. 6.1 Przenoszenie jdra z LILO. 6.2 Przenoszenie jdra bez LILO. 6.3 Konfiguracja sowa ramdysku. 6.4 Przenoszenie gwnego systemu plikw. 7. Rozwizywanie problemw. 8. Rne tematy. 8.1 Redukcja gwnego systemu plikw. 8.2 Systemy plikw bez ramdysku. 8.3 Tworzenie dyskietki narzdziowej. 9. Jak robi to profesjonalici. 10. Najczciej zadawane pytania (FAQ). 11. Odnoniki 11.1 Gotowe dyskietki. 11.2 Pakiety ratunkowe. 11.3 Skrypty powoki Grahama Chapman'a 11.4 LILO (LInux LOader) -- program adujcy Linuxa. 11.5 Linux FAQ i HOWTO. 11.6 Korzystanie z ramdysku. 11.7 Proces startowania Linuxa. 12. Kody bdw LILO. 13. Lista plikw przykadowej gwnej dyskietki. 14. Spis plikw przykadowej dyskietki narzdziowej. ______________________________________________________________________ 11.. PPrrzzeeddmmoowwaa.. UUwwaaggaa:: TTeenn ddookkuummeenntt mmooee bbyy pprrzzeessttaarrzzaayy.. Jeli upyno wicej ni sze miesicy od daty podanej na stronie tytuowej, to poszukaj nowej wersji tego dokumentu na stronie Linux Documentation Project <http://metalab.unc.edu/LDP/HOWTO/Bootdisk-HOWTO.html>. Dokument ten powinien by czytelny w formacie tekstowym, jednak dziki wykorzystaniu typografii wyglda on _z_n_a_c_z_n_i_e lepiej w formacie Postscript (.ps) lub HTML. Zachcamy do wybrania jednego z tych formatw. Wersja w formacie Info jest tak okrojona, e staje si bezuyteczna. 11..11.. UUwwaaggii nnaa tteemmaatt wweerrssjjii.. Graham Chapman (grahamc@zeta.org.au) napisa oryginaln wersj Bootdisk- HOWTO i opiekowa si tym dokumentem a do wersji 3.1. Tom Fawcett (fawcett@croftj.net) doda sporo materiau na temat jdra 2.0 i jest on opiekunem tego dokumetu od wersji 3.2. W dokumencie pozostao sporo oryginalnego tekstu Chapmana. Dokument ten jest napisany w oparciu o jjddrroo LLiinnuuxx--aa ww wweessjjii 22..00 lluubb ppnniieejjsszzeejj. Jeli posiadasz starsze jdro (1.2.xx lub nisze), to zajrzyj do poprzedniej wersji Bootdisk-HOWTO, ktr moesz znale na Stronie domowej Grahama Chapmana <http://www.zeta.org.au/~grahamc/linux.html>. Informacje zawarte w tym dokumencie dotycz platformy IInntteell. Wiele z nich moe by rwnie poprawnych dla innych procesorw, ale nie mamy na ten temat adnych danych. Prosimy o kontakt ludzi majcych dowiadczenia z dyskietkami startowymi na innych platformach sprztowych. 11..22.. OOppiinniiee.. Czekamy na wszystkie opinie, czy to dobre, czy ze, na temat zawartoci tego dokumentu. Staralimy si, aby informacje w nim umieszczone byy jak najbardziej pewne i dokadne. Daj nam zna gdy znajdziesz jakie bdy. Dziekujemy ludziom, ktrzy pomagali nam przysyajc poprawki czy sugestie. Ich wkad uczyni ten dokument o wiele lepszym, ni gdybymy tworzyli go sami. Wysyaj komentarze, sugestie i poprawki na adres email autora podany powyej. Nie mam nic przeciwko odpowiadaniu na pytania, jednak radz najpierw przeczyta dzia ``Rozwizywanie problemw''. 11..33.. RRoozzppoowwsszzeecchhnniiaanniiee.. Copyright (C) 1995,1996,1997,1998,1999 by Tom Fawcett and Graham Chapman. Ten dokument moe zosta rozpowszechniany na warunkach ustalonych przez Licencj Linux Documentation Project, znajdujc si pod adresem <http://metalab.unc.edu/LDP/HOWTO/Bootdisk-HOWTO.html>. Skontaktuj si z autorem, jeli nie jeste w stanie otrzyma licencji. Ta dokumentacja jest darmowa. Jest rozpowszechniana z nadziej, e okae si uyteczna, jednak bbeezz aaddnneejj ggwwaarraannccjjii. 22.. WWpprroowwaaddzzeenniiee.. Dyskietki startowe s przydatne w wielu sytuacjach, takich jak: +o Testowanie nowego jdra. +o Odzyskiwanie danych po awarii dysku -- od utraconego boot sektora a po uszkodzenie gowicy. +o Leczenie uszkodzonego systemu. Nawet drobne potknicie w czasie gdy jeste zalogowany jako root moe unieruchomi cay system. eby go naprawi, trzeba bdzie wystartowa go z dyskietki startowej. +o Uaktualnianie plikw krytycznych dla dziaania systemu, takich jak libc.so. Istnieje kilka sposobw otrzymywania dyskietek startowych: +o Uycie dyskietki z dystrybucji takiej jak Slackware. Umoliwi ci ona przynajmniej wystartowanie systemu. +o Uycie pakietu ratunkowego do stworzenia dyskietek ratunkowych. +o Nauczenie si co jest potrzebne do dziaania dyskietki startowej, a nastpnie zbudowanie jej samodzielnie. Niektrzy uywaj tej ostatniej metody i robi wszystko sami. Dziki temu jeli co pjdzie nie tak, to wiadomo co zrobi aby to naprawi. Dodatkowo jest to bardzo dobra metoda na nauczenie si jak dziaa Linux. Ten dokument zakada podstawow znajomo zasad administracji systemu Linux. Przykadowo powiniene wiedzie co katalogach, systemach plikw i dyskietkach. Powiniene wiedzie, jak uywa polece mount i df. Powiniene wiedzie, do czego su i jak wygldaj pliki /etc/passwd i fstab. Powiniene wiedzie, e wikszo polece w tym HOWTO powinna by wykonywana gdy jeste zalogowany jako root. Konstruowanie swojej wasnej dyskietki startowej od zera moe by skomplikowane. Jeli nie czytae Linux FAQ i powizanych dokumentw, takich jak Linux Installation HOWTO i Linux Installation Guide, to nie powiniene tworzy dyskietek startowych. Jeli potrzebujesz jedynie dziaajcej dyskietki startowej na wypadek awarii, to o _w_i_e_l_e atwiej bdzie cign gotow. Aby je znale, zajrzyj do dodatku ``Gotowe dyskietki''. 33.. DDyysskkiieettkkii ssttaarrttoowwee ii pprroocceess ssttaarrttuu ssyysstteemmuu.. Dyskietka startowa jest po prostu miniaturowym systemem Linux na dyskietce. Musi on spenia wiele funkcji wykonywanych przez zwyky, penowymiarowy system Linux. Zanim sprbujesz stworzy wasn dyskietk, musisz zrozumie podstawy startowania systemu Linux. Prezentujemy tutaj jedynie podstawy, ktre s wystarczajce do zrozumienia reszty tego dokumentu. Wiele szczegw i opcji alternatywnych zostao ominitych. 33..11.. PPrroocceess ssttaarrttuu ssyysstteemmuu.. Wszystkie komputery PC rozpoczynaj proces startu systemu przez wykonanie kodu znajdujcego si w pamici ROM (konkretnie w BIOS-ie), ktry aduje jeden sektor z sektora 0, cylindra 0 napdu startowego. Napd startowy to zazwyczaj pierwszy napd dyskietek (oznaczony A: w DOS-ie i /dev/fd0 w Linuxie). Nastpnie BIOS prbuje wykona zawarto tego sektora. Na wikszoci dyskietek startowych sektor 0, cylinder 0 zawiera: +o kod programu adujcego takiego jak LILO, ktry, aby wystartowa system, lokalizuje jdro, aduje je i wykonuje. +o pocztek jdra systemu operacyjnego, takiego jak Linux. Jeli jdro Linuxa zostao przekopiowane bezporednio na dyskietk, to pierwszy sektor dyskietki bdzie jednoczenie pierwszym sektorem jdra. Kod znajdujcy si w pierwszym sektorze bdzie kontynuowa proces startu adujc reszt jdra z dyskietki. Gdy jdro zostanie w caoci zaadowane, rozpoczyna ono inicjalizacj sterownikw. Nastpnie prbuje ono zaadowa i zamontowa ggwwnnyy ssyysstteemm pplliikkww z jednego z urzdze. Gwny system plikw to po prostu system montowany jako ``/''. Jdro musi wiedzie, gdzie szuka gwnego systemu plikw, jeli nie znajdzie tam obrazu ktry mona zaadowa, zawiesza si. W niektrych sytuacjach -- czsto w czasie startowania z dyskietki -- gwny system plikw zostaje zaadowany do rraammddyysskkuu, czyli do pamici RAM ktra jest traktowana przez system tak, jakby bya dyskiem. Istniej dwa powody dla ktrych system aduje si do ramdysku. Po pierwsze, RAM jest o wiele szybszy ni dyskietka, tak wic operacje systemowe s wykonywane szybko. Po drugie, jdro moe zaadowa sskkoommpprreessoowwaannyy ssyysstteemm pplliikkww z dyskietki i rozpakowa go do ramdysku, dzieki czemu na dyskietce mona zmieci o wiele wicej plikw. Gdy gwny system plikw zostanie zaadowany i zamontowany, ujrzysz tak informacj: VFS: Mounted root (ext2 filesystem) readonly. Nastpnie system odnajduje w gwnym systemie plikw program init (w katalogu /bin lub /sbin) i wykonuje go. init odczytuje swj plik konfiguracyjny /etc/inittab, szuka lini oznaczonej sysinit i wykonuje podany tam skrypt. Skrypt sysinit to najczciej plik /etc/rc, /etc/init.d/boot lub podobny. Ten skrypt to seria komend powoki, ktre inicjalizuj podstawowe usugi systemu, oraz wykonuj czynnoci takie jak: +o Uruchamianie fsck na wszystkich dyskach, +o adowanie potrzebnych moduw jdra, +o Startowanie pamici swap, +o Inicjalizacja sieci, +o Montowanie dyskw wymienionych w fstab. Ten skrypt czsto wywouje inne skrypty odpowiadajce za inicjalizacj poszczeglnych moduw. Na przykad, w typowej procedurze inicjalizacyjnej systemw zgodnych z SysV, katalog /etc/rc.d/ zawiera zoon struktur podkatalogw, ktrych pliki odpowiedzialne s za zaczanie i wyczanie poszczeglnych usug systemu. Jednak na dyskietce startowej skrypty sysinit s na og bardzo proste. Gdy skrypt sysinit zakoczy prac, kontrola powraca do programu init, ktry nastpnie wchodzi na _d_o_m_y_l_n_y _p_o_z_i_o_m _p_r_a_c_y, podany w pliku inittab przy sowie kluczowym initdefault. Linie poziomw pracy na og wyszczeglniaj program taki jak getty, ktry jest odpowiedzialny za obsug komunikacji przez konsol i terminale. To wasnie program getty wypisuje znan wszystkim lini zachty ``login:''. Wywouje on nastpnie program login, ktry przeprowadza weryfikacje i ustanawia sesj uytkownika. 33..22.. TTyyppyy ddyysskkww.. Po zapoznaniu si z podstawami procesu startowania systemu, moemy zdefiniowa rne typy dyskietek. Dzielimy je na cztery rodzaje. ssttaarrttoowwaa Dyskietka zawierajca jdro ktre moe zosta uruchomione. Dyskietka moe zosta uyta do wystartowania jdra, ktre nastpnie moe zaadowa gwny system plikw z innego dysku. Jdro na dyskietce startowej zwykle musi wiedzie, gdzie znale swj gwny system plikw. Czsto dyskietka startowa aduje gwny system plikw z innej dyskietki, ale jest take mliwe adowanie gwnego systemu plikw z twardego dysku. Najczciej robi si to po to, aby przetestowa nowe jdro (w rzeczywistoci podczas kompilacji nowego jdra polecenie ``make zdisk'' utworzy tak dyskietk startow). ggwwnnaa Dyskietka z systemem plikw zawierajcym pliki wymagane do uruchomienia systemu Linux. Taka dyskietka nie musi zawiera jdra czy programu adujcego. Gdy jdro zostao ju wystartowane, gwna dyskietka moe zosta uyta, aby uruchomi system niezalenie od innego dysku. Zazwyczaj gwna dyskietka jest automatycznie kopiowana do ramdysku. Znacznie przyspiesza to dostp do danych, oraz zwalnia miejsce w stacji na dyskietk narzdziow. ssttaarrttoowwaa//ggwwnnaa Dyskietka zawierajca zarwno jdro, sowy zawiera ona wszystko, co potrzebne do wystartowania i uruchomienia Linuxa bez twardego dysku. Zalet takich dyskietek jest ich zwizo -- wszystko znajduje si na jednej dyskietce. Jednak rozmiary wszystkich elementw cigle si powikszaj, wic coraz trudniej zmieci wszystko na jednej dyskietce, nawet przy uyciu kompresji. nnaarrzzddzziioowwaa Dyskietka ta zawiera system plikw, ale nie jest on jednak montowany jako gwny system plikw. Jest to dodatkowa dyskietka z danymi. Uywa si jej aby dostarczy dodatkowe programy narzdziowe niemieszczce si na gwnej dyskietce. Gdy mwimy o ``tworzeniu dyskietki startowej'', mamy na myli tworzenie zarwno czci startowej (jdra) jak i gwnej (plikw). Mog one znajdowa si razem lub osobno. Najbardziej elastycznym rozwizaniem w przypadku dyskietek ratunkowych jest uycie osobnej dyskietki startowej i gwnej, oraz jednej lub wicej dyskietki narzdziowej. 44.. BBuuddoowwaanniiee ggwwnneeggoo ssyysstteemmuu pplliikkww.. Tworzenie gwnego systemu plikw wymaga wyselekcjonowania plikw niezbdnych dla dziaania systemu. W tym rozdziale opiszemy, jak zbudowa _s_k_o_m_p_r_e_s_o_w_a_n_y _g_w_n_y _s_y_s_t_e_m _p_l_i_k_w. Rzadziej spotykanym rozwizaniem jest stworzenie nieskompresowanego systemu plikw na dyskietce, ktra bdzie moga zosta bezporednio zamontowana jako gwna. Taka alternatywa jest opisana w rozdziale ``Systemy plikw bez ramdysku''. 44..11.. WWiiaaddoommooccii ooggllnnee.. Gwny system plikw musi zawiera to wszystko, co potrzebne jest do prawidowego dziaania penego systemu Linux. Aby tego dokona, dyskietka musi spenia minimalne wymagania dla systemu Linux, to znaczy musi posiada: +o Podstawow struktur systemu plikw, +o Minimalny zestaw katalogw: /dev, /proc, /bin, /etc, /lib, /usr, /tmp, +o Podstawowy zestaw programw uytkowych: sh, ls, cp, mv, itd., +o Minimalny zestaw plikw konfiguracyjnych: rc, inittab, fstab, itd., +o Urzdzenia: /dev/hd*, /dev/tty*, /dev/fd0, etc., +o Biblioteki zapewnieniajce podstawowych funkcji uywanych przez programy uytkowe. Oczywicie system staje si uyteczny tylko wtedy, gdy mona co na nim uruchomi. Dyskietka gwna w zasadzie staje si uyteczna tylko wtedy, gdy mona wykona ponisze czynnoci: +o Sprawdzi system plikw na innym dysku. Na przykad aby sprawdzi gwny system plikw na dysku twardym musisz uruchomi system z innego dysku, takiego jak dyskietka startowa. Nastpnie musisz uruchomi program fsck sprawdzajcy dysk twardy gdy nie jest on zamontowany. +o Odzyska cao lub cz twardego dysku z kopii zapasowej, uywajc programw kompresujcych i archiwizujcych takich jak cpio, tar, gzip i ftape. Opiszemy jak stworzy _s_k_o_m_p_r_e_s_o_w_a_n_y system plikw, nazwany tak dlatego, e jest on spakowany na dyskietce a podczas startu systemu zostaje zdekompresowany do ramdysku. skompresowanym systemie plikw mona zmieci sporo plikw (okoo sze megabajtw) na standardowej dyskietce 1.44MB. System plikw jest wikszy ni dyskietka, wic nie mona go tworzy na dyskietce. Musimy stworzy go gdzie indziej, skompresowa a nastpnie skopiowa na dyskietk. 44..22.. TTwwoorrzzeenniiee ssyysstteemmuu pplliikkww.. Aby stworzy gwny system plikw potrzebne jest wolne urzdzenie, na ktrym musz zmieci si pliki przed kompresj. Potrzebujesz urzdzenia o rozmiarze co okoo czterech megabajtw. Istnieje kilka moliwoci: +o Uyj rraammddyysskkuu (URZDZENIE = /dev/ram0). W takiej sytuacji pami operacyjna jest wykorzystywana do zasymulowania dysku. Ramdysk musi by odpowiedniej wielkoci, tak, aby zmieci si na nim tworzony system plikw. Jeli korzystasz z LILO, to w pliku konfiguracyjnym (/etc/lilo.conf) powinna znajdowa si linia: RAMDISK_SIZE = nnn ktra ustala ilo przydzielanej pamici RAM. Wartoci domyln jest 4096K, co powinno wystarczy do naszych celw. Prawdopodobnie nie powiniene tworzy takiego ramdysku na komputerze z mniej ni 8MB RAM. Upewnij si czy istnieje urzdzenie /dev/ram0, /dev/ram czy /dev/ramdisk. Jeli nie, to utwrz /dev/ram0 za pomoc polecenia mknod (liczba gwna 1, poboczna 0). +o Dobrym rozwizaniem jest wystarczajco dua partycja na dysku twardym. +o Uyj uuddzzeenniiaa zzwwrroottnneeggoo, ktre umoliwia traktowanie pliku na dysku jako urzdzenia. Korzystajc z urzdzenia zwrotnego moesz stworzy na dysku twardym plik majcy trzy megabajty i zbudowa w nim system plikw. Wpisz man losetup aby uzyska informacje na temat korzystania z urzdze zwrotnych. Jeli nie posiadasz losetup, moesz go znale razem z kompatybilnymi wersjami mount i umount w pakiecie util-linux pod adresem <ftp://ftp.win.tue.nl/pub/linux/utils/util-linux/>. Jeli nie posiadasz urzdzenia zwrotnego (/dev/loop0, /dev/loop1, itd.) w systemie, to musisz je stworzy za pomoc polecenia ``mknod /dev/loop0 b 7 0''. Po zainstalowaniu nowych wersji mount i umount stwrz na dysku plik tymczasowy o odpowiednim rozmiarze (np. /tmp/fsfile). Moesz uy komendy dd if=/dev/zero of=/tmp/fsfile bs=1k count=<it/nnn/ aby stworzy plik o dugoci _n_n_n blokw. W poniszych przykadach uyj nazwy pliku zamiast sowa URZDZENIE. Gdy montujesz taki plik, musisz doda opcj ``-o loop'' aby poinformowa system, e jest to urzdzenie zwrotne. Na przykad polecenie mount -o loop -t ext2 /tmp/fsfile /mnt zamontuje plik /tmp/fsfile (poprzez urzdzenie zwrotne) w katalogu /mnt. Polecenie df potwierdzi to. Gdy ju wybrae jedn z tych moliwoci, przygotuj URZDZENIE za pomoc polecenia: dd if=/dev/zero of=URZDZENIE bs=1k count=3000 Ta komenda wyzerowuje urzdzenie. Ten krok jest bardzo wany, poniewa system plikw zostanie pniej skompresowany, wic niewykorzystany obszar powinien zosta wypeniony zerami, aby otrzyma jak najlepsz kompresj. Nastpnie stwrz system plikw. Jdro Linuxa rozpoznaje i kopiuje z dyskietki gwnej do ramdysku dwa rodzaje systemw plikw. S to minix i ext2, jednak preferowany jest ten drugi. Jeli zdecydujesz si na ext2, to przydatna moe okaza si opcja -i, dziki ktrej moesz stworzy wicej i- wzw ni jest to przyjte domylnie. Zalecane jest uycie opcji -i 2000, aby nie zabrako ci i-wzw. Ewentualnie moesz zaoszczdzi sporo i-wzw poprzez usunicie wielu niepotrzebnych plikw z katalogu /dev. Na dyskietce 1.44MB polecenie mke2fs domylnie utworzy 360 i-wzw. Na mojej dyskietce ratunkowej wystarcza w zupenoci 120 i-wzw, jednak gdy doczysz wszystkie urzdzenia z katalogu /dev z pewnoci przekroczysz 360. Uycie skompresowanego systemu plikw daje do dyspozycji wicej miejsca, czyli jednoczenie wiksz ilo domylnych i-wzw, ale cigle moe okaza si konieczna redukcja liczby plikw czy zwikszenie liczby i-wzw. Tak wic polecenie ktre uyjesz powinno wyglda mniej wicej tak: mke2fs -m 0 -i 2000 URZDZENIE (Jeli korzystasz z urzdzenia zwrotnego, to w miejsce URZDZENIA powiniene poda nazw pliku. W tej sytuacji program mke2fs zapyta czy naprawd chcesz to zrobi, odpowiedz tak). Program mke2fs automatycznie wykryje ilo wolnego miejsca i odpowiednio si skonfiguruje. Opcja -m 0 zapobiega rezerwowaniu miejsca dla uytkownika root, powikszajc w ten sposb dostpny obszar na dysku. Nastpnie zamontuj urzdzenie: mount -t ext2 URZDZENIE /mnt (Musisz stworzy katalog /mnt jeli jeszcze nie intnieje.) W pozostaych dziaach wszystkie nazwy katalogw bd podawane wzgdem katalogu /mnt. 44..33.. ZZaappeenniiaanniiee ssyysstteemmuu pplliikkww.. Poniej znajduje si minimalny zestaw katalogw dla twojego gwnego systemu plikw: +o /dev -- Urzdzenia, wymagane do operacji wejcia/wyjcia +o /proc -- Katalog wymagana przez system plikw proc +o /etc -- Pliki konfiguracyjne systemu +o /sbin -- Programy krytyczne dla dziaania systemu +o /bin -- Podstawowe programy uwaane za cz systemu +o /lib -- Biblioteki dzielone +o /mnt -- Miejsce montowania innych systemw plikw +o /usr -- Dodatkowe narzdzia i aplikacje (Pokazana tutaj struktura katalogw odnosi si jedynie do gwnych dyskietek. Prawdziwe systemy Linux uywaj bardziej zoonych i rygorystycznych zasad ustalania gdzie plik powinien si znajdowa, zwanych Filesystem Hierarchy Standard). Trzy katalogi w gwnym systemie plikw pozostan puste, wic wystarczy je utworzy komend mkdir. Katalog /proc to po prostu miejsce, w ktrym umieszczony zostanie system plikw proc. Katalogi /mnt i /usr s tylko miejscami montowania innych systemw plikw gdy dyskietka startowa/gwna ju dziaa. Take te katalogi wystarczy jedynie utworzy. Pozostae cztery katalogi s opisane w nastpnych dziaach. 44..33..11.. //ddeevv Katalog /dev zawiera specjalne pliki dla kadego wykorzystywanego przez system urzdzenia, katalog ten jest obowizkowy. Jest to zwyky katalog, wic moe zosta stworzony poleceniem mkdir. Jednak poszczeglne pliki urzdze musz zosta utworzone w nietypowy sposb, za pomoc komendy mknod. Istnieje jednak droga na skrty, moesz skopiowa zawarto istniejcego ju katalogu /dev i skasowa niepotrzebne pliki. Podczas kopiowania musisz uy opcji -R, dziki temu nie bdzie kopiowana zawarto plikw. _U_p_e_w_n_i_j _s_i_, _e _u_y_e _R _p_i_s_a_n_e_g_o _w_i_e_l_k _l_i_t_e_r. Jeli uyjesz maej litery -r, prawdopodobnie bdziesz kopiowa zawarto wszystkich swoich twardych dyskw, a raczej tyle, ile si z nich zmieci na dyskietce. Tak wic uwaaj i uyj komedy: cp -dpR /dev /mnt przyjmujc e system plikw jest zamontowany w /mnt. Opcja dp spowoduje, e poczenia symboliczne zostan skopiowane jako poczenia, a nie odpowiadajce im pliki, oraz zostan zachowane oryginalne atrybuty plikw, wczajc w to prawa wasnoci. Jeli jednak masz ochot troch si pomczy, uyj komendy ls -l aby wywietli gwne i pomniejsze numery potrzebnych urzdze, a nastpnie utwrz je w katalogu docelowym uywajc polecenia mknod. Gdy pliki zostan skopiowane, warto sprawdzi czy posiadasz wszystkie potrzebne urzdzenia. Na przykad ftape korzysta z napdw tamowych, wic musisz skopiowa to urzdzenie jeli chcesz mie dostp do napdu tamowego z dyskietki startowej. Pamitaj, e kady plik urzdzenia wymaga jednego i-wza, wic i-wzy s cennym zasobem, szeglnie w przypadku systemw dyskietkowych. Dobrym pomysem jest usunicie niepotrzebnych urzdze z katalogu /dev dyskietki. Wiele urzdze jest kompletnie nieprzydatnych w konkretnych systemach. Na przykad jeli nie posiadasz adnych dyskw SCSI, moesz bez adnych problemw usun wszystkie urzdzenia zaczynajce si na sd. Jeli nie masz zamiaru korzysta z portu szeregowego, moesz usunc wszystkie pliki zaczynajce si od cua. _U_p_e_w_n_i_j _s_i_, _e _p_o_s_i_a_d_a_s_z _n_a_s_t_p_u_j_c_e _u_r_z_d_z_e_n_i_a_: console, kmem, mem, null, ram, tty1. 44..33..22.. //eettcc Ten katalog musi zawiera pliki konfiguracyjne. Zwykle pliki w tym katalogu dziel si na trzy grupy: 1. Zawsze wymagane przez system, _n_p_. rc, fstab, passwd. 2. Wymagane w niektrych sytuacjach. 3. Pozostae mieci. Pliki, ktre nie s najwaniejsze, mog zosta znalezione za pomoc komendy: ls -ltru Wywietla ona list plikw posortowan wedug daty ostatniego dostpu, wic jeli plik nie by czytany, to znaczy e mona go pomin na gwnej dyskietce. Na mojej gwnej dyskietce mam okoo 15 plikw konfiguracyjnych. Zmniejsza to ilo pracy, ktr trzeba powieci na popraw trzch grup plikw: 1. Pliki, ktre naley skonfigurowa: a. rc.d/* -- skrypty startu systemu i zmiany poziomu pracy b. fstab -- lista systemw plikw, ktre naley zamontowa c. inittab -- parametry dla programu init, uruchamianego przy starcie systemu. 2. Pliki, ktre naley poprawi: a. passwd -- spis uytkownikw, katalogw domowych itd. b. group -- grupy uytkownikw c. shadow -- hasa uytkownikw, moesz nie posiada tego pliku. d. termcap -- the terminal capability database. Gdy liczy si bezpieczestwo, pliki passwd i shadow powinny zosta okrojone, aby uniemoliwi kopiowanie hase poza system. plikw Upewnij si, e plik passwd zawiera przynajmniej uytkownika root. Jeli chcesz umoliwi logowanie si innym uytkownikom, to upewnij si czy istniej ich powoki i katalogi domowe. termcap, baza danych terminali, zwykle liczy kilkaset kilobajtw. Wersja znajdujca si na dyskietce powinna by okrojona tak, aby zaw- ieraa jedynie uywany terminal(e), czyli najczciej jedynie wpis linux-console. 3. Pozostae pliki. Na razie dziaaj, wic mona zostawi je w spokoju. Teraz trzeba skonfigurowa jedynie dwa pliki, ich zawarto jest zaskakujco maa. +o Plik rc powinien zawiera: #!/bin/sh /bin/mount -av /bin/hostname Kangaroo Upewnij si, e katalogi s poprawne. W zasadzie nie musisz uruchamia hostname, jednak jest to zalecane. +o Plik fstab powinien zawiera conajmniej: /dev/ram0 / ext2 defaults /dev/fd0 / ext2 defaults /proc /proc proc defaults Moesz te skopiowa pozycje z istniejcego pliku fstab, ale nie powiniene automatycznie montowa partycji na twardym dysku. Uyj przy nich opcji noauto. Pamitaj, twj dysk twardy moe by uszkodzony, gdy bdziesz korzysta z dyskietki startowej. Plik inittab powinien by zmodyfikowany tak, aby pozycja sysinit uruchamiaa rc, czy jaki inny skrypt startowy. Dodatkowo, jeli nie chcesz pozwoli uytkownikom logowa si przez port szeregowy, dodaj znak komentarza przed kad lini getty zawierajc na kocu urzdzenie ttys lub ttyS. Pozostaw porty tty, aby mg si zalogowa z konsoli. Minimalny plik inittab wyglda tak: id:2:initdefault: si::sysinit:/etc/rc 1:2345:respawn:/sbin/getty 9600 tty1 2:23:respawn:/sbin/getty 9600 tty2 Plik inittab okrela, co system robi w niektrych sytuacjach i na poszczeglnych poziomach pracy. Upewnij si, e istniej wszystkie nazwy plikw wymienione w inittab, init zawiesi si bez adnego komunikatu o bdzie, jeli nie znajdzie ktrego z wymienionych tam programw. Naley sprawdzi, czy komendy znajdujce si w pliku inittab odpouj si do programw, ktre istniej w odpowiednim katalogu. Jeli umiecisz programy na dyskietce korzystajc ze spisu w dodatku ``Spis plikw przykadowej dyskietki gwnej'' i skopiujesz plik inittab z dysku bez dokonania poprawek, to prawdopodobnie ponad poowa wpisw w tym pliku bdzie si odwoywaa do nieistniejcych programw czy nieprawidowych katalogw. Niektre programy nie mog zosta przeniesione gdzie indziej, poniewa inne programy szuaj ich w cile okrelonym miejscu. Na przykad w moim systemie /etc/shutdown wymaga /etc/reboot. Jeli przenios reboot do /bin/reboot i wykonam komend shutdown, to wystpi bd, poniewa nie moe on znale pliku reboot. Jeli chodzi o reszt, to skopiuj pozostae pliki tekstowe oraz potrzebne programy z katalogu /etc. Jako przykad moe suy dodatek ``Spis plikw przykadowej dyskietki startowej''. Prawdopodobnie wystarczy skopiowa tylko te pliki, ktre tam wypisano, jednak poszczeglne systemy bardzo si rni, wic nie moesz by pewien, czy nazwy pliku na tej licie pokrywaj si z nazwami w twoim systemie. Jedyn pewn metod jest sprawdzenie w pliku inittab, ktre pliki s wymagane. Wikszo systemw posiada katalog /etc/rc.d/ zawierajcy skrypty dla poszczeglnych poziomw pracy. Aby system dziaa, wymagany jest przynajmniej jeden skrypt rc, jednak prociej skopiowa plik inittab i katalog /etc/rc.d z istniejcego systemu i wyci niepotrzebne dla systemu dyskietkowego pozycje ze skryptw w katalogu rc.d. 44..33..33.. //bbiinn ii //ssbbiinn Katalog /bin jest odpowiednim miejscem dla dodatkowych programw uytkowych wykonujcych podstawowe operacje, takich jak ls, mv, cat czy dd. W dodatku ``Spis plikw przykadowej dyskietki startowej'' znajdziesz przykadow list plikw katalogu /bin i /sbin. Nie zawiera ona jednak programw potrzebnych do odtwarzania plikw z kopii zapasowych, takich jak cpio, tar i gzip, poniewa, aby zaoszczdzi miejsce, umieszczam je na osobnej dyskietce narzdziowej. Gdy gwna/startowa dyskietka zostaje wystartowana, zostaje ona skopiowana do ramdysku, pozostawiajc miejsce w napdzie do zamontowania kolejnej dyskietki --- dyskietki narzdziowej. Zwykle montuj j w katalogu /usr. Tworzenie dyskietki narzdziowej jest opisane dalej, w dziale ``Budowanie dyskietki narzdziowej''. Zalecane jest skopiowanie tych samych wersji programw, co uyte do stworzenia kopii zapasowej, aby nie zdarzyo si, e nie moesz odtworzy swojej kopii, poniewa wersje s niekompatybilne. _U_p_e_w_n_i_j _s_i_, _e _s_k_o_p_i_o_w_a_e _n_a_s_t_p_u_j_c_e _p_r_o_g_r_a_m_y_: init, getty lub ich odpowiedniki, login, mount, jak powok potrafic uruchomi skrypty rc, dowizanie sh do powoki. 44..33..44.. //lliibb W katalogu /lib umieszczasz potrzebne biblioteki dzielone oraz programy suce do ich adowania. Jeli wymagane biblioteki nie zostan odnalezione w katalogu /lib, to system si nie zostanie wystartowany. Przy odrobinie szczcia moesz ujrze komunikat mwicy o bdzie. Prawie kady program wymaga co najmniej biblioteki libc, libc.so._N, gdzie _N to numer wersji. Sprawdz w swoim katalogu /lib. Plik libc.so.N jest na og symbolicznym dowizaniem do aktualnej wersji: % ls -l /lib/libc* -rwxr-xr-x 1 root root 4016683 Apr 16 18:48 libc-2.1.1.so* lrwxrwxrwx 1 root root 13 Apr 10 12:25 libc.so.6 -> W tym przypadku potrzebny jest plik libc-2.1.1.so. Aby dowiedzie si, jakie jeszcze biblioteki s potrzebne, powiniene sprawdzi wszystkie pliki wykonywalne ktre chcesz umieci na dyskietce i sprawdzi ich zalenoci komend ldd. Na przykad: % ldd /sbin/mke2fs libext2fs.so.2 => /lib/libext2fs.so.2 libcom_err.so.2 => /lib/libcom_err.so.2 libuuid.so.1 => /lib/libuuid.so.1 libc.so.5 => /lib/libc.so.5 Wymagany jest kady plik po prawej stronie. Pamitaj, e wymienione biblioteki mog by tylko symbolicznymi dowizaniami. Zauwa, e niektre biblioteki s cakiem spore i mog nie zmieci si w gwnym systemie plikw. Na przykad biblioteka libc.so wspomniana wyej liczy okoo 4MB. Prawdopodobnie bdziesz musia okroi biblioteki przed kopiowaniem. Zajrzyj do dziau ``Redukowanie gwnego systemu plikw'' po wicej informacji. Dodatkowo w katalogu /lib musisz umieci program adujcy biblioteki. Jest to plik ld.so (dla bibliotek a.out) lub ld-linux.so (dla bibliotek ELF). Jeli nie jeste pewien ktrego z nich potrzebujesz, wykonaj komend file z nazw biblioteki jako parametr. Na przykad: % file/lib/libc.so.4.7.2 /lib/libc.so.5.4.33 /lib/libc-2.1.1.so /lib/libc.so.4.7.2: Linux/i386 demand-paged executable (QMAGIC), stripped /lib/libc.so.5.4.33: ELF 32-bit LSB shared object, Intel 80386, version 1, stripped /lib/libc-2.1.1.so: ELF 32-bit LSB shared object, Intel 80386, version 1, not stripped QMAGIC oznacza, e wersja 4.7.2 jest bibliotek a.out, a ELF oznacza, e wersja 5.4.33 i 2.1.1 jest bibliotek ELF. Skopiuj odpowiedni program adujcy biblioteki do tworzonego gwnego systemu plikw. Powiniene _d_o_k_a_d_n_i_e sprawdzi, czy posiadasz wszystkie konieczne biblioteki i odpowiedni program adujcy. Jeli jdro nie potrafi zaadowa potrzebnej biblioteki, na og zawiesza si bez adnego komunikatu. 44..44.. PPrroovviiddiinngg ffoorr PPAAMM aanndd NNSSSS.. System moe wymaga dynamicznie adowanych bibliotek niewidocznych dla ldd. 44..44..11.. PPAAMM ((PPlluuggggaabbllee AAuutthheennttiiccaattiioonn MMoodduulleess)).. Jeli twj system korzysta z PAM (Pluggable Authentication Modules), to musisz si na to przygotowa, poniewa w przeciwnym wypadku nie bdziesz mg si zalogowa. Oglnie mwic PAM to skomplikowany modularny sposb uwierzytelniania uytkownikw i kontroli ich dostpu do usug. Jeli w katalogu /etc znajduje si katalog pam.conf lub pam.d, musisz doczy pewne minimalne wsparcie dla PAM. (Moesz take uruchomi ldd na pliku login, jeli w wyjciu znajdzie si tekst libpam.so, potrzebujesz PAM). Na szczcie kwestie bezpieczestwa nie s zazwyczaj istotne przy tworzeniu dyskietki startowej, jako e kady posiadajcy fizyczny dostp do komputera moe z nim zrobi wszystko. Tak wic moesz po prostu wyczy PAM tworzc w gwnym systemie plikw prosty plik /etc/pam.conf, taki jak ten: ______________________________________________________________________ OTHER auth optional /lib/security/pam_permit.so OTHER account optional /lib/security/pam_permit.so OTHER password optional /lib/security/pam_permit.so OTHER session optional /lib/security/pam_permit.so ______________________________________________________________________ Skopiuj take plik /lib/security/pam_permit.so do gwnego systemu plikw. Ta biblioteka liczy jedynie 8KB. Zauwa, e taka konfiguracja daje kademu peny dostp do plikw i usug w systemie. Jeli z jaki wzgldw bezpieczestwo dyskietki startowej jest dla ciebie wane, musisz skopiowa niektre lub wszystkie pliki konfiguracyjne PAM z twardego dysku. Przeczytaj uwanie dokumentacj PAM i skopuj wszystkie potrzebne biblioteki z /lib/security do gwnego systemu plikw. Musisz take skopiowa na dyskietk plik /lib/libpam.so, ale o tym ju wiesz, poniewa uruchomie ldd na /bin/login, ktry pokaza zaleno. 44..44..22.. NNSSSS ((NNaammee SSeerrvviiccee SSwwiittcchh)).. Jeli korzystasz z glibc (aka libc6), bdziesz musia przygotowa si na usugi nazw, w przeciwnym wypadku nie bdziesz mg si zalogowa. Plik /etc/nsswitch.conf kontroluje dostp do bazy danych dla poszczeglnych usug. Jeli nie planujesz korzysta z usug przez sie (np. DNS i NIS), musisz przygotowa jedynie prosty plik nsswitch.conf, taki jak ten: ______________________________________________________________________ passwd: files shadow: files group: files hosts: files services: files networks: files protocols: files rpc: files ethers: files netmasks: files bootparams: files automount: files aliases: files netgroup: files publickey: files ______________________________________________________________________ Okrela to, e kada usuga bdzie udostpniana jedynie poprzez lokalne pliki. Bdziesz musia take doczy plik /lib/libnss_files.so.1, ktry bdzie dynamicznie adowany aby obsuy dania. Jeli chcesz mie dostp do sieci z dyskietki startowej, moesz utworzy bardziej rozbudowany plik nsswitch.conf. Aby dowiedzie si wicej, zajrzyj na stron man nsswitch. Pamitaj e musisz doczy plik /lib/libnss__u_s_u_g_a.so.1 dla kadej _u_s_u_g_i. 44..55.. MMoodduuyy.. Jeli posiadasz jdro obsugujce moduy, to musisz zastanowi si, ktre moduy mog by potrzebne po wystartowaniu systemu. Prawdopodobnie potrzebujesz moduw ftape i zftape jeli posiadasz napd tamowy, moduw do urzdze SCSI jeli takie posiadasz i ewentualnie moduw do obsugi PPP i SLIP jeli chcesz mie dostp do sieci. Te moduy powinny zosta umieszczone w katalogu /lib/modules. Powiniene take doczy programy insmod, rmmod i lsmod. Jeli chcesz automatycznie adowa moduy, to moesz doczy modprobe, depmod i swapout. Jeli korzystasz z kerneld, to docz go razem z plikiem /etc/conf.modules. Jednak najwiksz zalet korzystania z moduw jest moliwo przeniesienia niektrych z nich na dystkietk narzdziow, oszczdzajc w ten sposb miejsce na gwnej dyskietce. Gdy potrzebna jest obsuga wielu rnych urzdze, takie podejcie jest lepsze ni budowa jednego wielkiego jdra z wieloma wbudowanymi sterownikami. _P_a_m_i_t_a_j_, _a_b_y _w_y_s_t_a_r_t_o_w_a _s_k_o_m_p_r_e_s_o_w_a_n_y _s_y_s_t_e_m _p_l_i_k_w _e_x_t_2_, _m_u_s_i_s_z _p_o_s_i_a_d_a _w_b_u_d_o_w_a_n _w _j_d_r_o _o_b_s_u_g _e_x_t_2 _i _r_a_m_d_y_s_k_u. Nie mog znajdowa si one w postaci moduw. 44..66.. KKooccoowwee ddeettaallee.. Pewne programy systemowe, takie jak login, do poprawnego dziaania wymagaj pliku /var/run/utmp i katalogu /var/log. Tak wic: mkdir -p /mnt/var/{log,run} touch /mnt/var/run/utmp Na koniec, gdy skopiowae ju wszystkie wymagane biblioteki, uruchom program ldconfig aby odwiey plik /etc/ld.so.cache w gwnym systemie plikw. Plik ten informuje program adujcy gdzie znale biblioteki. Aby odwiey ld.so.cache wykonaj nastpujce komendy: chdir /mnt; chroot /mnt /sbin/ldconfig Polecenie chroot jest konieczne, poniewa ldconfig zawsze odwiea plik cache dla gwnego katalogu. 44..77.. KKooppiioowwaanniiee nnaa ddyysskkiieettkk.. Gdy ju skoczye tworzenie gwnego systemu plikw, odmontuj go, skopiuj do pliku i skompresuj: umount /mnt dd if=URZDZENIE bs=1k | gzip -v9 > rootfs.gz Zostanie utworzony plik rootfs.gz ktry jest skompresowanym gwnym systemem plikw. Powiniene sprawdzi, czy zmieci si na dyskietce, jeli nie, to bdziesz musia cofn si i usun jakie pliki. Dzia ``Redukowanie gwnego systemu plikw'' zawiera kilka porad na ten temat. 55.. WWyybbiieerraanniiee jjddrraa.. W tej chwili posiadasz skompresowany gwny system plikw. Nastpny krok to zbudowanie lub wybranie jdra. W wiekszoci przypadkw moliwe jest skopiowanie aktualnego jdra i wystartowanie z niego dyskietki. Jednak w niektrych przypadkach bdziesz chcia stworzy swoje wasne jdro. Pierwszym powodem jest jego rozmiar. Jeli tworzysz pojedycz dyskietk startow/gwna, to jdro bdzie jednym z najwikszych plikw na dyskietce, wic bdziesz musia jak najbardziej zredukowa jego rozmiar. Aby zmniejszy rozmiar jdra, skompiluj je z minimaln liczb opcji konieczn do dziaania systemu. Powiniene wyczy wszystko, co nie jest potrzebne. Mona spokojnie wyrzuci obsug sieci, jak rwnie obsug wszystkich napdw i innych urzdze ktrych nie potrzebujesz w czasie korzystania z dyskietki. Pamitaj, e twoje jdro _m_u_s_i posiada wbudowan obsug ramdysku oraz systemu plikw ext2. Po wybraniu minimalnej konfiguracji jdra, powiniene zastanowi si co jeszcze moe by ci potrzebne. Naczciej korzysta si z dyskietki startowej aby sprawdzi i odzyska uszkodzone dane w systemie plikw, a do tego moesz potrzebowa wbudowanej obsugi w jdrze. Na przykad jeli swoje kopie zapasowe przechowujesz na tamie uywajc Ftape, to jeli utracisz swj system plikw i napdy zawierajce Ftape, nie bdziesz mg odtworzy danych z tam zapasowych. Bdziesz musia przeinstalowa Linuxa, cign i przeinstalowa ftape i dopiero wtedy odczytywa kopie zapasowe. Generalnie chodzi o to, aby instalowa w jdze obsug wszystkich potrzebnych urzdze wejcia/wyjcia. Procedura kompilowania jdra jest opisana w dokumentacji doczonej do jdra. Jest ona bardzo atwa, najpierw zajrzyj do katalogu /usr/src/linux. Jeli masz probemy ze skompilowaniem jdra, to raczej nie powiniene bra si do tworzenia dyskietki startowej. Pamitaj, aby skompresowa jdro poleceniem ``make zImage''. 66.. SSkkaaddnniiee tteeggoo wwsszzyyssttkkiieeggoo:: ttwwoorrzzeenniiee ddyysskkiieetteekk.. W tym momencie powiniene posiada jdro oraz skompresowany gwny system plikw. Jeli tworzysz dyskietk startow/gwn, sprawd, czy oba pliki zmieszcz si na dyskietce. Jeli tworzysz osobno dystkietk startow i gwn, sprawd, czy gwny system plikw zmieci si na jednej dyskietce. Powiniene zdecydowa, czy uywa LILO do wystartowania jdra. Alternatywnym rozwizaniem jest skopiowanie jdra bezporednio na dyskietk i wystartowanie bez LILO. Zalet korzystania z LILO jest to, e umoliwia on przekazanie pewnych parametrw do jdra ktre mog by konieczne do inicjalizacji sprztu. Sprawd plik /etc/lilo.conf. Jeli istnieje on i zawiera lini ``append=...'', prawdopodobnie musisz przekaza jakie parametry. Wad korzystania z LILO jest to, e tworzenie dyskietki jest bardziej skomplikowane, i zajmuje troch wicej miejsca. Musisz utworzy odrbny system plikw, ktry nazwiemy ssyysstteemmeemm pplliikkww jjddrraa, do ktrego skopiujesz jdro i kilka innych plikw wymaganych przez LILO. Jeli zamierzasz korzysta z LILO, czytaj dalej. Jeli chcesz skopiowa jdro bezporednio na dyskietk, przejd do dziau ``Przenoszenie jdra bez LILO''. 66..11.. PPrrzzeennoosszzeenniiee jjddrraa zz LLIILLOO.. Pierwsz rzecz, ktra musisz zrobi, jest stworzenie maego pliku konfiguracyjnego dla LILO. Powinien on wyglda mniej wicej tak: ______________________________________________________________________ boot =/dev/fd0 install =/boot/boot.b map =/boot/map read-write backup =/dev/null compact image = KERNEL label = Bootdisk root =/dev/fd0 ______________________________________________________________________ Znaczenia tych parametrw szukaj w dokumentacji LILO. Prawdopodobnie bdziesz chcia rwnie doda do pliku lini append=... tak sam, jak w pliku /etc/lilo.conf na dysku twardym. Zapisz ten plik jako bdlilo.conf. Nastpnie musisz stworzy may system plikw, ktry nazwiemy ssyysstteemmeemm pplliikkww jjddrraa, aby odrni go od gwnego systemu plikw. Najpierw sprawd, jak duy powinien by ten system plikw. We rozmiar twojego jdra w blokach (rozmiar pokazywany przez komend ``ls -l KERNEL'' podzielony przez 1024 i zaokrglony w gr) i dodaj 50. Okoo pidziesit blokw to obszar potrzebny na i-wzy oraz pozostae pliki. Jeli chcesz, moesz dokadnie obliczy ten obszar, lub po prostu uy liczby 50. Jeli tworzysz osobno dyskietk startow i gwn, to moesz spokojnie przeznaczy nawet wicej miejsca, jako e pierwsza dyskietka jest w caoci przeznaczona na jdro. Nazwijmy t liczb BLOKI_JDRA. W dyskietk do stacji dyskw (przyjmiemy e jest ni /dev/fd0) i utwrz na niej system plikw ext2: mke2fs -i 8192 -m 0 /dev/fd0 BLOKI_JDRA Opcja ``-i 8192'' oznacza, e chcemy jeden inode co 8192 bajty. Nastpnie zamontuj system plikw, usu katalog lost+found oraz utwrz katalogi dev i boot dla LILO: mount /dev/fd0 /mnt rm -rf /mnt/lost+found mkdir /mnt/{boot,dev} Nastpnie utwrz urzdzenia /dev/null i /dev/fd0. Zamiast szukania ich numerw, moesz po prostu skopiowa je z twardego dysku uywajc opcji -R: cp -R /dev/{null,fd0} /mnt/dev LILO wymaga kopii swojego programu startujcego, boot.b, ktry moesz przegra z twardego dysku. Zwykle znajduje si on w katalogu /boot: cp /boot/boot.b /mnt/boot Na koniec skopiuj plik konfiguracyjny LILO ktry utworzye poprzednio oraz swoje jdro. Oba pliki mog zosta umieszczone w gwnym katalogu: cp bdlilo.conf KERNEL /mnt W tej chwili w systemie plikw jdra znajduje si wszystko co potrzebne dla LILO, wic jeste teraz gotowy do uruchomienia go. Opcja -r oznacza instalowanie programu startujcego w katalogu innym ni gwny: lilo -v -C bdlilo.conf -r /mnt LILO powinien zakoczy dziaanie bez adnych bdw, nastpnie system plikw powinien wyglda podobnie jak poniej: ______________________________________________________________________ total 361 1 -rw-r--r-- 1 root root 176 Jan 10 07:22 bdlilo.conf 1 drwxr-xr-x 2 root root 1024 Jan 10 07:23 boot/ 1 drwxr-xr-x 2 root root 1024 Jan 10 07:22 dev/ 358 -rw-r--r-- 1 root root 362707 Jan 10 07:23 vmlinuz boot: total 8 4 -rw-r--r-- 1 root root 3708 Jan 10 07:22 boot.b 4 -rw------- 1 root root 3584 Jan 10 07:23 map dev: total 0 0 brw-r----- 1 root root 2, 0 Jan 10 07:22 fd0 0 crw-r--r-- 1 root root 1, 3 Jan 10 07:22 null ______________________________________________________________________ Nie przejmuj si, jeli rozmiary plikw s nieco inne. Nastpnie pozostaw dysk w napdzie i przenie si do dziau ``Konfiguracja sowa ramdysku''. 66..22.. PPrrzzeennoosszzeenniiee jjddrraa bbeezz LLIILLOO.. Jeli _n_i_e korzystasz z LILO, to skopiuj jdro na dyskietk startow uywajc komendy dd: % dd if=KERNEL of=/dev/fd0 bs=1k 353+1 records in 353+1 records out W tym przykadzie dd zapisa 353 kompletne rekordy oraz 1 niekompletny, tak wic jdro zajmuje teraz pierwsze 353 bloki na dyskietce. Nazwij t liczb BLOKI_JDRA i zapamitaj j, poniewa bdzie ona potrzebna w nastpnym dziale. Na koniec ustaw dyskietk jako gwne urzdzenie i skonfigguruj je tak, aby byo dostpne do zapisu i odczytu: rdev /dev/fd0 /dev/fd0 rdev -R /dev/fd0 0 Pamitaj, aby uy opcji -R pisanej wielk liter w drugiej komendzie rdev. 66..33.. KKoonnffiigguurraaccjjaa ssoowwaa rraammddyysskkuu.. Wewntrz obrazu jdra znajduje si ssoowwoo rraammddyysskkuu, ktre mwi, gdzie znajduje si gwny system plikw, oraz zawiera pewne inne opcje. Sowo to mona zmienia za pomoc polecenia rdev, a interpretowane jest w nastpujcy sposb: bity 0-10: Przemieszczenie ramdysku, w blokach 1024-bajtowych bity 11-13: nieuywane bit 14: Flaga oznaczajca, e ramdysk na zosta zaadowany bit 15: Flaga oznaczajca, aby pyta przez adowaniem gwnego systemu plikw Jeli bit 15 jest ustawiony, to podczas startu zostaniesz poproszony o woenie do napdu nowej dyskietki. Jest to konieczne w przypadku korzystania z dwch dyskietek. Istniej dwa przypadki, w zalenoci od tego, czy budujesz pojedyncz dyskietk startow/gwn, czy dwie osobne dyskietki, startow i gwn. 1. Jeli budujesz system na jednej dyskietce, to skompresowany gwny system plikw zostanie umieszczony zaraz za jdrem, wic przemieszczenie ramdysku bdzie nastpnym wolnym blokiem za jdrem (czyli powinno wymosi tyle samo, ile BLOKI_JDRA). Bit 14 zostanie ustawiony na 1, a bit 15 bdzie wynosi zero. 2. Jeli budujesz zestaw dwch dyskietek, to gwny system plikw rozpocznie si w bloku zero drugiej dyskietki, wic przemieszczenie bdzie wynosi zero. Bity 14 oraz 15 bd ustawione na 1. Po skrupulatnych obliczniach wartoci sowa ramdysku, ustaw j poleceniem rdev -r. Upewnij si, e podae warto _d_z_i_e_s_i_t_n. Jeli korzystasz z LILO, to argumentem dla rdev powinna by _c_i_e_k_a _d_o _j_d_r_a, np. /mnt/vmlinuz. Jeli kopiowae jdro za pomoc polecenia dd, to uyj zamiast tego nazw urzdzenia stacji dyskw (_n_p_. /dev/fd0). rdev -r JDRO_LUB_STACJA_DYSKW WARTO Jeli korzystasz z LILO, odmontuj teraz dyskietk. 66..44.. PPrrzzeennoosszzeenniiee ggwwnneeggoo ssyysstteemmuu pplliikkww.. Ostatnim krokiem jest przeniesienie gwnego systemu plikw. +o Jeli gwny system plikw ma zosta umieszczony na _t_e_j _s_a_m_e_j dyskietce co jdro, to przenie go uywajc komendy dd z opcj seek, ktra okrela ile blokw naley przeskoczy: dd if=rootfs.gz of=/dev/fd0 bs=1k seek=BLOKI_JDRA +o Jeli system plikw ma zosta umieszczony na _d_r_u_g_i_e_j dyskietce, to wyjmij ze stacji pierwsz, w drug a nastpnie przenie na na ni gwny system plikw: dd if=rootfs.gz of=/dev/fd0 bs=1k Moje gratulacje, dyskietki s ju gotowe! _Z_a_w_s_z_e _p_o_w_n_i_n_i_e_n_e _p_r_z_e_t_e_s_t_o_w_a _s_w_o_j_e _d_y_s_k_i_e_t_k_i _s_t_a_r_t_o_w_e _z_a_n_i_m _o_d_o_y_s_z _j_e _n_a _b_o_k _d_o _c_z_a_s_u _a_w_a_r_i_i_! Jeli co si nie uda, czytaj dalej. 77.. RRoozzwwiizzyywwaanniiee pprroobblleemmww.. Po stworzeniu dyskietek kilka pierwszych prb wystartowania systemu czsto koczy si niepowodzeniem. Najlepszym podejciem podczas budowania gwnego systemu plikw jest czenie elementw istniejcego systemu tak, aby system dyskietkowy przynajmiej wywietla komunikaty na konsoli. Gdy zacznie on komunikowa si z tob, jeste ju w poowie drogi do sukcesu, poniewa moesz zobaczy, co sprawia problemy i naprawi je pojedynczo a system bdzie dziaa poprawnie. Jeli system po prostu wiesza si bez adnego komunikatu, to odnalezienie przyczyny staje si trudne. Stworzenie systemu, ktry zostanie poprawnie wystartowany do momentu, w ktrym bdzie mg komunikowa si z uytkownikiem, wymaga zainstalowania i skonfigurowania kilku komponentw. Zalecan metoda badania problemu gdy system nie chce si komunikowa z uytkownikiem jest nastpujca: +o Moesz ujrze komunikat taki jak ten: Kernel panic: VFS: Unable to mount root fs on XX:YY Jest to powszechny problem i ma jedynie kilka przyczyn. Po pierwsze, sprawdz nazw urzdzenia _X_X_:_Y_Y z list. Czy to poprawne urzdzenie gwne? Jeli nie, prawdopodobnie nie uruchomie rdev -R, lub zrobie to na zym obrazie. Jeli kod urzdzenia jest poprawny, sprawd uwanie sterowniki wczone do jdra. Upewnij si e stacja dyskw, ramdysk i system plikw ext2 zostay wbudowane. +o Sprawd, czy gwna dyskietka faktycznie zawiera odpowiednie katalogi. Moe si zdarzy, e skopiujesz nieodpowiedni katalog, w rezultacie otrzymujc na gwnej dyskietce przykadowo katalog /rootdisk/bin zamiast /bin. +o Sprawd, czy plik /lib/libc.so jest dowizaniem do tego samego pliku, co /lib/libc.so na twardym dysku. +o Sprawd, czy symboliczne dowizania z katalogu /dev na dysku twardym istniej take dla odpowiednich urzdze na gwnej dyskietce. W wielu sytuacjach szczeglnie istotne jest /dev/console. +o Sprawd, czy doczye pliki /dev/tty1, /dev/null, /dev/zero, /dev/mem, /dev/ram i /dev/kmem. +o Sprawd konfiguracj jdra, obsuga wszystkich zasobw wymaganych do zalogowania si musi by wbudowana w jdro, a nie w postaci moduw. Tak wic _o_b_s_u_g_a _r_a_m_d_y_s_k_u _i _s_y_s_t_e_m_u _p_l_i_k_w _e_x_t_2 _m_u_s_i _b_y _w_b_u_d_o_w_a_n_a. +o Sprawd, czy w jdrze gwne urzdzenie oraz parametry ramdysku s ustawione poprawnie. Gdy przeanalizujesz ju wszystkie powysze przypadki, moesz sprawdzi nastpujce pliki: 1. Upewnij si, e istnieje plik /sbin/init lub /bin/init. Upewnij si, e ma on uprawnienia do wykonywania. 2. Uruchom ldd init aby sprawdzi biblioteki wymagane przez init. Na og jest to jedynie libc.so, ale zawsze warto sprawdzi. Upewnij si, e istniej wymagane biblioteki i program adujcy. 3. Upewnij si, e posiadasz odpowiedni program adujcy biblioteki -- ld.so dla bibliotek a.out lub ld-linux.so dla bibliotek ELF. 4. Sprawd odwoania do getty (lub podobnego programu, jak agetty, mgetty czy getty_ps) w pliku inittab. Porwnaj je z plikiem inittab na dysku twardym. Przejrzyj strony man uywanych programw. Wanie w pliku inittab moe wystpi najwicej problemw, poniewa jego skadnia zaley od konkretnego systemu i wersji programu init. Jedynym rozwizaniem jest przeczytanie stron man o init oraz inittab, przeledzenie, co dokadnie system robi po wystartowaniu. Sprawd, czy w pliku /etc/inittab znajduje si pozycja inicjalizacji systemu. Zawiera ona ciek do skryptu inicjalizacji systemu, ktry musi istnie. 5. Tak samo jak w przypadku init, uruchom ldd podajc jako parametr twj program getty i sprawd, czy istniej wszystkie potrzebne biblioteki oraz program adujcy. 6. Upewnij si, e doczye powok (np. bash czy ash), ktra potrafi wykona wszystkie skrypty rc. 7. Jeli na dyskietce istnieje plik /etc/ld.so.cache, to odwie go. Jeli init startuje, ale otrzymujesz komunikat: Id xxx respawning too fast: disabled for 5 minutes pochodzi on z programu init i oznacza, e getty lub login kocz prac zaraz po uruchomieniu. Sprawdz pliki getty i login i wszystkie potrzebne im biblioteki. Upewnij si, e ich wywoania w pliku /etc/inittab s prawidowe. Jeli otrzymujesz dziwne komunikaty od getty, moe to oznacza, e jego wywoanie z /etc/inittab jest nieprawidowe. Opcje dla programw _g_e_t_t_y s zrnicowane, nawet poszczeglne wersje agetty posiadaj niekompatybilne ze sob opcje przy wywoaniu. Jeli podajesz poprawn nazw uytkownika, ale system pyta natychmiast o inn nazw, to problemem moe by PAM bd NSS. Zajrzyj do dziau ``PAM i NSS''. Problem moe by take spowodowany tym, e korzystasz z hase shadow, ale nie skopiowae pliku /etc/shadow na dyskietk. Jeli prbujesz uruchomi jaki program, przykadowo df, ktry znajduje si na dyskietce, ale otrzymujesz komunikat: df: not found, to sprawd dwie rzeczy. Po pierwsze, upewnij si, e katalog w ktrym znajduje si program jest w zmiennej PATH. Po drugie, sprawd, czy istniej wszystkie potrzebne biblioteki oraz program adujcy. 88.. RRnnee tteemmaattyy.. 88..11.. RReedduukkccjjaa ggwwnneeggoo ssyysstteemmuu pplliikkww.. Czasem gwny system plikw jest zbyt duy, aby zmieci si na dyskietce, nawet po kompresji. Poniej podano kilka sposobw zmniejszenia rozmiaru systemu plikw, uporzdkowanych wedug efetywnoci: ZZwwiikksszz ggssttoo ddyysskkiieettkkii Standardowo dyskietki s formatowane na 1440K, ale dostpne s formaty o wikszej gstoci. Program fdformat umoliwia formatowanie dyskietki na nastpujce wielkoci: 1600, 1680, 1711, 1743, 1760, 1840 i 1920. Wikszo napdw 1440K obsuguje dyskietki 1722K, wic dla dyskietek startowych zawsze uywam tego formatu. Zobacz stron man fdformat oraz /usr/src/linux/Documentation/devices.txt. WWyymmiiee ppoowwookk Najbardziej populare powoki dla Linuxa, takie jak bash i tcsh, zajmuj bardzo duo miejsca i wymagaj wielu bibliotek. Istniej jednak alternatywne powoki, takie jak ash, lsh, kiss czy smash, ktre s o wiele mniejsze i wymagaj mniej (lub adnych) bibliotek. Wikszo tych zastpczych powok jest dostpna pod adresem <http://metalab.unc.edu/pub/Linux/system/shells/>. Upewnij si, e powoka z ktrej korzystasz potrafi wykona wszystkie polecenia w plikach rc na dyskietce. OObbeettnniijj bbiibblliiootteekkii ii pprrooggrraammyy Biblioteki i programy s czsto nieobcite (zawieraj symbole dla debuggera). Taki plik po uruchomieniu na nim file bdzie oznaczony jako `not stripped'. Podczas kopiowania programw do gwnego systemu plikw dobrym pomysem jest korzystanie z polecenia: objcopy --strip-all RDO CEL Gdy kopiujesz biblioteki, uyj: objcopy --strip-debug RD CEL PPrrzzeenniiee mmnniieejj wwaannee pplliikkii nnaa ddyysskkiieettkk nnaarrzzddzziiooww Jeli jakie programy nie s wymagane do wystartowania systemu i zalogowania si, to moesz przenie je na dyskietk narzdziow. Szczegw szkukaj w dziale ``Tworzenie dyskietki narzdziowej''. Moesz take zastanowi si nad przeniesieniem moduw na dyskietk narzdziow. 88..22.. SSyysstteemmyy pplliikkww bbeezz rraammddyysskkuu.. Dzia ``Budowanie gwnego systemu plikw'' zawiera informacje na temat tworzenia skompresowanego gwnego systemu plikw, ktry po uruchomieniu systemu jest adowany do ramdysku. Ta metoda posiada wiele zalet, wic jest czsto uywana. Jednak niektre systemy posiadaj za mao pamici RAM, w takich sytuacjach gwny system plikw moe zosta zamontowany bezporednio, a nie kopiowany do ramdysku. W sumie atwiej stworzy taki wanie system plikw ni skompresowany, poniewa moe on zosta zbudowany bezporednio na dyskietce, a nie na jakim innym urzdzeniu i nie musi on by kompresowany. Opiszemy tutaj oglnie rnice w tworzeniu takiego wanie systemu plikw. Jeli zdecydujesz si z niego korzysta, pamitaj, e bdziesz mia do dyspozycji _o _w_i_e_l_e _m_n_i_e_j miejsca. 1. Oblicz, ile wolnego miejsca pozostanie na gwny system plikw. Jeli tworzysz pojedyncz dyskietk startow/gwn, to musisz zmieci na niej wszystkie bloki jdra oraz wszystkie bloki gwnego systemu plikw. 2. Korzystajc z programu mke2fs utwrz na dyskietce gwny system plikw o odpowiedniej wielkoci. 3. Zapenij system plikw tak, jak to opisano w osobnym dziale. 4. Gdy ju skoczysz, odmontuj system plikw i przenie go do pliku na dysku, ale _n_i_e _k_o_m_p_r_e_s_u_j _g_o. 5. Przenie jdro na dyskietk, tak jak to opisano w osobnym dziale. Podczas obliczania sowa ramdysku wwyyzzeerruujj bbiitt 1144, aby zaznaczy, e gwny system plikw nie ma by adowany do ramdysku. Uruchom rdev z odpowiednimi parametrami. 6. Przenie gwny system plikw tak, jak poprzednio. Istnieje kilka drg na skrty. Jeli budujesz dwu-dyskietkowy zestaw, to moesz stworzy kompletny system plikw bezporednio na drugiej dyskietce, bez potrzeby przenoszenia go na twardy dysk i z powrotem. Jeli budujesz pojedyncz dyskietk startow/gwn i korzystasz z LILO, to moesz zbudowa _j_e_d_e_n system plikw na caej dyskietce, zawierajcy jdro, pliki LILO oraz pliki gwne, a nastpnie uruchomi LILO jako ostatni krok. 88..33.. TTwwoorrzzeenniiee ddyysskkiieettkkii nnaarrzzddzziioowweejj.. Tworzenie dyskietki narzdziowej jest stosunkowo proste, wystarczy stworzy system plikw na sformatowanej dyskietce i skopiowa do niego pliki. Aby korzysta z niej podczas uywania dyskietki startowej, wystarczy zamontowa j rcznie po uruchomieniu systemu. We wczeniejszych rozdziaach wspomnielimy, e dyskietka narzdziowa powinna zosta zamontowana w katalogu /usr. W tej systuacji programy powinny by umieszczone w katalogu /bin dyskietki narzdziowej, aby po zamontowaniu byy dostpne pod ciek /usr/bin. Dodatkowe biblioteki wymagane przez programy powinny zosta umieszczone w katalogu /lib na dyskietce. Istnieje kilka istotnych aspektw, o ktrych naley pamita podczas projektowania dyskietki narzdziowej: 1. Nie umieszczaj na dyskietce narzdziowej plikw krytycznych dla dziaania systemu, poniewa bdzie j mona zamontowa dopiero po wystartowaniu systemu. 2. Nie moesz w tym samym czasie korzysta z napdu tamowego i napdu dyskietek. Oznacza to, e jeli posiadasz napd tamowy, to nie bdziesz mia do niego dostpu gdy dyskietka narzdziowa jest zamontowana. 3. Dostp do plikw na dyskietce narzdziowej bdzie bardzo powolny. W Dodatku ``Spis plikw przykadowej dyskietki startowej'' moesz zobaczy przykadowe pliki na dyskietce narzdziowej. Oto kilka pomysow na programy, ktre mog okaza si przydatne: programy do badania i manipulacji dyskami (format, fdisk) i systemami plikw (mke2fs, fsck, debugfs, isofs.o), may edytor tekstw (elvis, jove), narzdzia do kompresji i archiwizacji (gzip, tar, cpio, afio), narzdzia do obsugi tam (mt, tob, taper), narzdzia komunikacyjne (ppp.o, slip.o, minicom) i narzdzia do obsugiu urzdze (setserial, mknod). 99.. JJaakk rroobbii ttoo pprrooffeessjjoonnaalliiccii.. Pewnie zauwaye, e dyskietki startowe uywane przez najwiksze dystrybucje, takie jak Slackware, RedHat czy Debian, wydaj si o wiele bardziej skomplikowane, ni te opisane w tym dokumencie. Profesjonalne dyskietki startowe s bazowane na tych samych zaoeniach, ktre tu podalimy, ale wykorzystuj rne triki, poniewa takie dyskietki maj o wiele wiksze wymagania. Po pierwsze, musz wsppracowa z szerok gam sprztu, tak wic musz one umie komunikowa si z uytkownikiem i adowa odpowiednie sterowniki urzdze. Po drugie, musz by przygotowane do dziaania z wieloma rnymi opcjami instalacji, dodatkowo wykonujc pewne dziaania automatycznie. Po trzecie dystrybucyjne dyskietki startowe na og spniaj zarwno rol instalacyjn, jak i ratunkow. Niektre dyskietki startowe korzystaj z usugi zwanej iinniittrrdd (iinniittiiaall rraammddiisskk). Zostaa ona wprowadzona w jdrze wersji 2.0.x i daje o wiele wiksz elastyczno, startujc jdro w dwch fazach. Na pocztku adowany jest pocztkowy obraz ramdysku z dyskietki startowej. Pocztkowy ramdysk to gwny system plikw zawierajcy programy, ktre zostan uruchomione zanim zostanie zaadowany prawdziwy gwny system plikw. Ten program najczciej bada otoczenie i/lub prosi uytkownika o wybranie rnych opcji startowych, takich jak urzdzenie, z ktrego zostanie zaadowany prawdziwy gwny system plikw. Czsto aduje on te dodatkowe moduy nie wbudowane do jdra. Gdy dziaanie tego programu zakoczy si, jdro aduje prawdziwy gwny obraz i uruchamianie jest kontynuowanie normalnie. Wicej informacji o initrd szukaj w /usr/src/linux/Documentation/initrd.txt i <ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/initrd-example.tgz>. Poniej znajduje si podsumowanie tego, jak dziaaj dyskietki startowe poszczeglnych dystrybucji, oparte na przegldaniu ich systemu systemu plikw i/lub kodu rdowego. Nie gwarantujemy, e ta informacja jest dokadna, ani e nic si nie zmienio od czasu opisanej wersji. Slackware (v.2.1) po prostu startuje system przy uyciu LILO, tak jak to opisano w dziale ``Przenoszenie jdra z LILO''. Dyskietki startowe Slackware przy starcie wypisuj komunikat (``Welcome to the Slackware Linux bootkernel disk!'') uywajc do tego parametru LILO message. Informuje to uytkownika, e moe poda dodatkowe parametry startowe, jeli to konieczne. Po wystartowaniu, gwny system plikw jest adowany z drugiej dyskietki. Uytkownik uruchamia skrypt setup ktry rozpoczyna instalacj. Zamiast korzysta z jdra opartego na moduach, Slackware daje uytkownikowi do dyspozycji wiele rnych jder, do wyboru zalenie od konfiguracji sprztowej. RedHat (v.4.0) take korzysta z LILO. aduje skompresowany ramdysk z pierwszej dyskietki, ktry uruchamia specjalnie napisany program init. Program ten pyta o sterowniki i, jeli to konieczne, aduje pliki z dodatkowej dyskietki. Debian (v.1.3) jest prawdopodobnie najbardziej skomplikowanym zestawem dyskietek startowych. Korzysta on z programu adujcego SYSLINUX, ktry ustala osopowiednie parametry, a nastpnie uywa obrazu initrd aby poprowadzi uytkownika przez procedur instalacji. Wyglda na to, e korzysta on zarwno z przerobionego programu init, jak i z przerobionej powoki. 1100.. NNaajjcczzcciieejj zzaaddaawwaannee ppyyttaanniiaa ((FFAAQQ)).. QQ.. PPrrbbuujjee wwyyssttaarrttoowwaa ssyysstteemm zz ddyysskkiieettkkii,, aallee nniicc ssii nniiee ddzziieejjee.. CCoo mmaamm zzrroobbii?? Zajrzyj do dziau ``Rozwizywanie problemw'' powyej. QQ.. JJaakk ddzziiaaaajj ddyysskkiieettkkii ssttaarrttoowwee ddyyssttrryybbuuccjjii SSllaacckkwwaarree//DDeebbiiaann//RReeddHHaatt?? Zajrzyj do dziau ``Jak to robi profesjonalici'' powyej. QQ.. WW jjaakkii ssppoossbb ssttwwoorrzzyy ddyysskkiieettkk ssttaarrttooww zzee sstteerroowwnniikkiieemm XXYYZZ?? Najatwiej zdoby jdro z dystrybucji Slackware. Jdra Slackware zawieraj sterowniki do jak najwikszej iloci urzdze, wic jeli posiadasz kontroler IDE lub SCSI, istniej due szanse, e sterownik do urzdzenia jest doczony do jednego z jder Slackware. Przejdz do katalogu a1 i wybierz jdro odpowiednie dla posiadanego typu kontrolera. Sprawdz w pliku xxxxkern.cfg dla odpowiedniego jdra czy zawiera ono odpowiednie sterowniki. Jeli urzdzenie jest na tej licie, to jdro to powinno wystartowa twj system. cignij plik xxxxkern.tgz i skopiuj go na dyskietk, tak jak opisano powyej, w dziale na temat tworzenia dyskietek startowych. Nastpnie musisz sprawdzi gwne urzdzenie tego jdra, korzystajc z komendy rdev: rdev zImage Komenda rdev wywietli aktualne gwne urzdzenie dla tego jdra. Jeli nie odpowiada ono twojemu gwnemu urzdzeniu, uyj rdev aby je zmieni. Na przykad jdro korzysta z /dev/sda2, ale moja gwna partycja SCSI znajduje si na urzdzeniu /dev/sda8. Aby zmieni gwne urzdzenie na dyskietk, musisz uy komendy: rdev zImage /dev/fd0 Informacje na temat tworzenia gwnych dyskietek Slackware wykraczaj poza zakres tego dokumentu, wic sugeruje zajrze do Linux Install Guide lub zdoby dystrybucj Slackware. Zobacz take dzia ``Odnoniki'' w tym HOWTO. QQ.. JJaakk uuaakkttuuaallnnii jjddrroo nnaa mmoojjeejj ddyysskkiieettccee?? Jeli dyskietka startowa nie zawiera systemu plikw, po prostu skopiuj jdro za pomoc komendy dd. W przypadku dyskietki startowej/gwnej uyj komendy cp. Zajrzyj do dziau ``Startowanie'' aby dowiedzie si szczegw na temat tworzenia dyskietki startowej. Ten opis odnosi si take do uaktualniania jdra. QQ.. JJaakk ddooddaa nnoowwee pplliikkii ddoo mmoojjeejj ggwwnneejj ddyysskkiieettkkii?? Najprostszym sposobem jest skopiowanie systeku plikw z dyskietki z powrotem do uytego URZDZENIA (z dziau ``Tworzenie systemu plikw'' powyej). Nastpnie zamontuj system plikw i dokonaj zmian. Musisz wiedzie, w ktrym bloku zaczyna si system plikw i ile blokw zajmowa: dd if=/dev/fd0 bs=1k skip=POCZTEK count=BLOKI | gunzip > URZDZENIE mount -t ext2 URZDZENIE /mnt Po dokonaniu zmian, postpuj tak jak poprzednio (w dziale ``Tworzenie dyskietki'') i przenie gwny system plikw z powrotem na dyskietk. Nie musisz przenosi ponownie jdra czy ponownie przelicza sowa ramdysku jeli nie zmienie pozycji nowego systemu plikw. QQ.. JJaakk mmoogg uussuunn LLIILLOO aabbyy ppoonnoowwnniiee kkoorrzzyyssttaa zzee ssttaarrttoowwaanniiaa DDOOSS?? Tak na prawd ten temat nie dotyczy dyskietek startowych, ale ludzie czsto o to pytaj. Z poziomu Linuxa moesz uy komendy: /sbin/lilo -u Moesz take wykorzysta dd aby przenie kopi zapasow stworzon przez LILO z powrotem do bootsektora. Zajrzyj do dokumentacji LILO, jeli chcesz si dowiedzie jak to zrobi. Z poziomu systemu DOS lub Windows moesz skorzysta z polecenia DOS'a: FDISK /MBR MBR oznacza Master Boot Record i zastpuje bootsektor nowym DOS'owym, nie zmieniajc przy tym tablicy partycji. Niektrzy puryci nie zgadzaj si z tym, ale nawet autor LILO, Werner Almesberger, sugeruje to rozwizanie. Jest ono proste, no i dziaa. QQ.. JJaakk mmoogg wwyyssttaarrttoowwaa ssyysstteemm jjeellii zzgguubbiieemm jjddrroo _o_r_a_z mmoojj ddyysskkiieettkk ssttaarrttooww?? Jeli nie masz dyskietki startowej, to najprostszym sposobem bdzie zdobycie odpowiedniego jdra Slackware jak to opisano powyej w odpowiedzi na pytanie ``Jak mog stworzy dyskietk startow ze sterownikiem XXX?''. Nastpnie moesz wystartowa komputer uywajc tego jdra i naprawi wszystkie problemy. Jdro to moe nie mie ustawionego odpowiedniego gwnego urzdzenia. Na przykad typowe jdro SCSI Slackware za gwne urzdzenie uznaje /dev/sda2, a moja gwna partycja Linuxowa to /dev/sda8. W tej sytuacji gwne urzdzenie w jdrze musi zosta zmienione. Gwne urzdzenie oraz warto sowa ramdysku moesz zmieni nawet wtedy, gdy posiadasz jedynie jdro i jaki inny system operacyjny, na przykad DOS. Polecenie rdev zmienia ustawienia poprzez zmian wartoci konkretnych bajtw w pliku jdra, wic moesz zrobi to samo, jeli tylko posiadasz edytor heksadecymalny pracujcy pod innym dziaajcym systemem -- przykadowo Norton Disk Editor z pakietu Norton Utilities pod DOS. Nastpnie musisz sprawdzi i, jeli to konieczne, zmieni wartoci pod nastpujcymi przesuniciami: HEX DEC OPIS 0x01F8 504 Modszy bajt sowa ramdysku 0x01F9 505 Starszy bajt sowa ramdysku 0x01FC 508 Poboczny numer urzdzenia - patrz niej 0X01FD 509 Gwny numer urzdzenia - patrz niej Znaczenie sowa ramdysku zostao opisane w dziale ``Ustawianie sowa ramdysku'' powyej. Poboczny i gowny numer musi odpowiada urzdzeniu, na ktrym znajduje si gwny system plikw. Niektre najczciej uywane wartoci to: DEVICE GWNY POBOCZNY /dev/fd0 2 0 Pierwsza stacja dyskw /dev/hda1 3 1 Pierwsza partycja na pierwszym dysku IDE /dev/sda1 8 1 Pierwsza partycja na pierwszym dysku SCSI /dev/sda8 8 8 sma partycja na pierwszym dysku SCSI Gdy ju ustawisz odpowiednie wartoci, moesz zapisa plik na dyskietce korzystajc z Norton Utilities Disk Editor, albo programu rawrite.exe, ktry znajduje si we wszystkich dystrybucjach. Jest to program DOS'owy ktry zapisuje dane w czystej postaci zaczynajc od boot sektora dyskietki, zamiast zapisywa do systemu plikw. Jeli uywasz Norton Utilities, musisz zapisa plik do fizycznej dyskietki zaczynajc od jej pocztku. QQ.. WW jjaakkii ssppoossbb mmoogg ssttwwoorrzzyy ddooddaattkkoowwee kkooppiiee ddyysskkiieetteekk?? Jako e noniki magnetyczne z czasem trac swe waciwoci, powiniene posiada kilka kopii swoich dyskietek ratunkowych, w razie gdyby oryginay ulegy uszkodzeniu. Najprostsz metod tworzenia kopii kadej dyskietki, wczajc w to dyskietki startowe czy narzdziowe, jest uycie komendy dd aby skopiowa zawarto oryginalnej dyskietki do pliku na dysku twardym, a nastpnie uy tej samej komendy aby skopiowa plik z powrotem na dyskietk. Zauwa, e nie powiniene montowa dyskietek, poniewa dd korzysta bezporednio z urzdzenia. Aby skopiowa orygina, uyj polecenia: dd if=URZDZENIE of=PLIK gdzie URZDZENIE jest nazw urzdzenia stacji dyskietek a PLIK jest nazw docelowego pliku na twardym dysku Pominicie parametru count powoduje skopowanie caej dyskietki (2880 blokw jeli jest to dyskietka HD). Aby skopiowa plik spowrotem na dyskietk, w dyskietk do stacji i uyj komendy: dd if=PLIK of=URZDZENIE Zauwa, e powyszy opis zakada, e posiadasz tylko jedn stacj dyskw. Jeli posiadasz dwa napdy tego samego typu, moesz skopiowa dyskietki uywajc komendy: dd if=/dev/fd0 of=/dev/fd1 QQ.. JJaakk wwyyssttaarrttoowwaa ssyysstteemm bbeezz wwppiissyywwaanniiaa zzaa kkaaddyymm rraazzeemm ""aahhaaxxxxxxxx,,nnnn,,nnnn,,nnnn""?? Jeli dysk nie moe zosta automatycznie wykryty, koniecznie jest dostarczenie parametrw do jdra, takich jak: aha152x=0x340,11,3,1 Ten parametr moe zosta dostarczony na kilka sposobw, korzystajc z LILO: +o Poprzez wpisywanie go za kadym razem w linii polece LILO, jednak jest to mczce. +o Uywajc sowa kluczowego LILO ``lock'' aby linia polece zostaa zachowana jako domylna, uywana przy kadym starcie systemu. +o Uywajc opcji append= w pliku konfiguracyjnym LILO. Pamitaj, e parametr musi zosta ujty w cudzysowy. Przykadaowa linia polece dla podanego powyej parametru moe wyglda nastpujco: zImage aha152x=0x340,11,3,1 root=/dev/sda1 lock Przekae ona opcje urzdzenia do jdra, ustawi w jdrze gwne urzdzenie na /dev/sda1 i zapisze linie polece do uycia przy kadym nastpnym starcie systemu. Przykadowa opcja append wyglda nastpujco append = "aha152x=0x340,11,3,1" Pamitaj, e parametr w linii polece _n_i_e moe by ujty w cudzyowy, ale _m_u_s_i by ujty w cudzysowy jeli wystpuje w opcji append. Pamitaj take, e w jdrze musi znajdowa si sterownik dla podanego typu urzdzenia. Jeli tak nie jest, bdziesz musia przekompilowa jdro aby zawierao odpowiednie sterowniki. Szczegy na temat rekompilacji jdra znajdziesz w pliku README w katalogu /usr/src/linux oraz w Linux FAQ i Installation HOWTO. Ewentualnie moesz zdoby odpowiednie jdro dla tego urzdzenia i zainstalowa je. Przed ekperymentami z LILO zalecane jest zapoznanie si z jego dokumentacj. Nieprawidowe uycie opcji BOOT moe uszkodzi partycj. QQ.. PPooddcczzaass ssttaarruu oottrrzzyymmuujjee kkoommuunniikkaatt bbdduu ""A: cannot execute B". Co to oznacza? W niektrych przypadkach cieki do plikw s na stae zapisane w niektrych programach. Nie zdarza si to zawsze, ale moe wyjani dlaczego program nie moe zosta odnaleziony w twoim systemie nawet jeli jeste pewien e si tam znajduje. Moesz sprawdzi, czy program ma zapisan na stae lokalizacj jakiego innego programu korzystajc z komendy strings i przepuszczajc jej wyjcie przez filtr grep. Niektre znane przypadki zapisanych na stae lokalizacji: +o Niektre wersje shutdown maj zapisan na stae lokalizacj /etc/reboot, tak wic reboot musi zosta umieszczony w katalogu /etc. +o Czasem jdro nie moe odnale programu init. Aby naprawi ten problem przenie program do odpowiedniego katalogu, lub zmie pliki konfiguracyjne (np. inittab) aby wskazyway na poprawny katalog. Jeli masz wtpliwoci, umie program w tym samym katalogu, w ktrym znajdowa si na dysku twardym oraz uyj tych samych plikw inittab i /etc/rc.d. QQ.. MMoojjee jjddrroo ppoossiiaaddaa oobbssuugg rraammddyysskkuu,, aallee iinniiccjjuujjee ggoo zz wwiieellkkooccii 00KK.. W takiej sytuacji podczas startu systemu pojawi si informacja: Ramdisk driver initialized : 16 ramdisks of 0K size Dzieje si tak dlatego, e rozmiar ramdysko zosta ustawiony na 0 przez jdro podczas startu systemu. Najprawdopodobniej dzieje si tak przez parametr w pliku konfiguracyjnym LILO: ramdisk= 0 Ktry w starszych dystrybucjach zosta umieszczany w przykadowym pliku konfiguracyjnym LILO. Jeli posiadasz tak lini, usu j. Skutki korzystania z ramdysku o rozmiarze 0K s nieprzewidywalne i mog doprowadzi do bdw jdra. KK.. OOddnnoonniikkii.. Gdy cigasz pakiet, zawsze znajd jego najnowsz wersj, chyba e masz dobre powody aby tego nie robi. KK..11.. GGoottoowwee ddyysskkiieettkkii.. Poniej znajduj si odnoniki do dyskietek startowych poszczeglnych dystrybucji. _Z_a_w_s_z_e _k_o_r_z_y_s_t_a_j _z _m_i_r_r_o_r_w_, _a_b_y _z_r_e_d_u_k_o_w_a _o_b_c_i_e_n_i_e _s_e_r_w_e_r_a_. +o Dyskietki startowe Slackware <http://metalab.unc.edu/pub/Linux/distributions/slackware/bootdsks.144/>, <http://metalab.unc.edu/pub/Linux/distributions/slackware/current/rootdsks name=>wne"> oraz Mirrory Slackware <http://www.slackware.com/getslack/> +o Dyskietki startowe RedHat <http://metalab.unc.edu/pub/Linux/distributions/redhat/current/i386/images/> oraz Mirrory RedHat <http://www.redhat.com/mirrors.html> +o Dyskietki startowe Debian <ftp://ftp.debian.org/pub/debian/stable/disks-i386> oraz Mirrory Debian <ftp://ftp.debian.org/pub/debian/README.mirrors.html> Oprcz tych dyskietek dystrybucyjnych, dostpne s take ponisze dyskietki ratunkowe. S one dostpne w katalogu <http://metalab.unc.edu/pub/Linux/system/recovery/!INDEX.html>, chyba e podano inaczej. +o tomsrtbt, autorstwa Toma Oehser, to pojedyncza dyskietka startowa/gwna oparta na jdrze 2.0 z dua iloci dodatkowych funkcji i programw. Obsuguje IDE, SCSI, napd tamowy, karty sieciowe, PCMCIA i inne. Zawartych jest ponad 100 programw narzdziowych do naprawy i odtwarzania dyskw. Pakiet zawiera take skrypty suce do rozoenia i zoenia z powrotem obrazu dyskietki tak, aby mona byo zmodyfikowa jej zawarto. +o rescue02, autorstwa Johna Comyns, to dyskietka ratunkowa oparta na jdrze 1.2.84, z obsug IDE, Adaptec 1542 oraz NCR53C7,8xx. Korzysta z plikw wykonywalnych ELF, ale ma wystarczajco duo komend, wic moe zosta wykorzystana pod kadym systemem. Zawiera moduy dla pozostaych kart SCSI, ktre mog zosta zaadowane po wystartowaniu systemu. Prawdopodobnie dyskietka ta nie bdzie dziaa na systemach z 4MB RAM, poniewa korzysta z ramdysku wielkoci 3MB. +o resque_disk-2.0.22, autorstwa Sergei'a Viznyuk, to dyskietka startowa oparta o jdro 2.0.22 z wbudowan obsug IDE, wielu rnych kontrolerw SCSI oraz ELF/a.out. Dodatkowo zawiera wiele moduw i uytecznych narzdzi do naprawy i odtwarzania twardego dysku. +o Obrazy dyskietek cramdisk oparte na jdrze 2.0.23 dziaaj ju na maszynach z 4 i 8MB RAM. Zawieraj emulacj koprocesora, obsug sieci (PPP, NE2000, 3C509) lub obsug napdu ZIP. Te dyskietki wystartuj na komputerze 386 z 4MB RAM. Obsuguj DOS, wic moesz cign je z sieci na partycj DOS. <http://metalabs.unc.edu/pub/Linux/system/recovery/images/> KK..22.. PPaakkiieettyy rraattuunnkkoowwee.. Na metalab.unc.edu mona znale kilka pakietw do tworzenia dyskietek ratunkowych. Korzystajc z tych pakietw najczciej wybierasz pliki do zaczenia na dyskietce, a reszta dzieje si automatycznie (do pewnego stopnia). Aby uzyska wicej informacji przeczytaj plik <http://metalab.unc.edu/pub/Linux/system/recovery/!INDEX.html>. SSpprraawwdd ddaattyy uuttwwoorrzzeenniiaa ppoosszzcczzeeggllnnyycchh ppaakkiieettww -- niektre z nich nie byy uaktualniane od kilku lat i nie pozwalaj na tworzenie skompresowanego systemu plikw adowanego do ramdysku. Z tego co wiem jedynie Yard posiada obsug ramdysku. KK..33.. SSkkrryyppttyy ppoowwookkii GGrraahhaammaa CChhaappmmaann''aa Graham Chapman napisa zestaw skryptw uytecznych jako przykady jak tworzy dyskietki startowe. Skrypty te w poprzedniej wersji tego dokumentu znajdoway si w zaczniku, ale zostay z niego usunite i umieszczone na stronie WWW: <http://www.zeta.org.au/~grahamc/linux.html> Skrypty te mog okaza si poyteczne, ale zawsze czytaj uwanie instrukcje do nich doczone -- jeli przykadowo wybierzesz ze urzdzenie wymiany, twj gwny system plikw zostanie w caoci i nieodwracalnie usunity. Upewnij si e skonfigurowae wszystko poprawnie zanim uyjesz skryptw! KK..44.. LLIILLOO ((LLIInnuuxx LLOOaaddeerr)) ---- pprrooggrraamm aadduujjccyy LLiinnuuxxaa.. Napisany przez Wernera Almesberger. Doskonay program adujcy, zawierajcy w dokumentacji informacje na temat bootsektora oraz pierwszych faz startowania systemu. Znajdziesz go pod adresem <ftp://tsx-11.mit.edu/pub/linux/packages/lilo/>. Jest on take dostpny na Metalab i jego mirrorach. KK..55.. LLiinnuuxx FFAAQQ ii HHOOWWTTOO.. Dokumenty te dostpne s one z wielu rde. Przegldnij grup usenet news.answers oraz comp.os.linux.announce. FAQ jest dostpne pod adresem <http://metalab.unc.edu/pub/Linux/docs/faqs/linux-faq> a dokumenty HOWTO pod adresem <http://metalab.unc.edu/pub/Linux/docs/HOWTO>. Wikszo dokumentacji do Linuxa dostpna jest na stronie The Linux Documentation Project homepage <http://metalab.unc.edu/LDP/>. Ewentualnie moesz wysa list pod adres mail-server@rtfm.mit.edu ze sowem ``help'' w treci wiadomoci, i robi to, co podaj otrzymane instrukcje. Od tumacza: Polskie wersje dokumentw HOWTO znajdziesz pod adresem Jak To Zrobi <http://www.jtz.org.pl>. KK..66.. KKoorrzzyyssttaanniiee zz rraammddyysskkuu.. Doskonay opis dziaania ramdysku znajduje si w dokumentacji dostarczanej razem z jdrem Linuxa. Zajrzyj do pliku /usr/src/linux/Documentation/ramdisk.txt. Zosta on napisany przez Paula Gortmaker i zawiera dzia na temat tworzenia skompresowanego ramdysku. KK..77.. PPrroocceess ssttaarrttoowwaanniiaa LLiinnuuxxaa.. Wicej szczegow na temat procesu startowania Linuxa znajdziesz w nastpujcych miejscach: +o W The Linux System Administrators' Guide znajduje si dzia na temat startowania systemu. Zajrzyj pod adres <http://metalab.unc.edu/LDP/LDP/sag/c1582.html> +o The LILO ``Technical overview'' <http://metalab.unc.edu/pub/Linux/system/boot/lilo/lilo-t-21.ps.gz> zawiera szczegowy opis startowania systemu na najniszym poziomie, a do zaadowania jdra. +o Najlepszym przewodnikiem jest kod rdowy. Poniej podano kilka plikw jdra powizanych z procesem startowania. Jeli posiadasz kod rdowy Linuxa, znajduje si on w katalogu /usr/src/linux. Ewentualnie pod adresem <http://wafu.netgate.net/linux/> znajduje si hipertekstowa przegldarka kodu rdowego jdra autorstwa Shigio Yamaguchi (shigio@wafu.netgate.net). Poniej znajduj si niektre interesujce pliki: aarrcchh//ii338866//bboooott//bboooottsseecctt..SS,,sseettuupp..SS Zawiera kod w assemblerze dotyczcy bootsektora. aarrcchh//ii338866//bboooott//ccoommpprreesssseedd//mmiisscc..cc Zawiera kod dekompresujcy jdro. aarrcchh//ii338866//kkeerrnneell// Katalog zawierajcy kod inicjujcy jdro. Plik setup.c zawiera sowo ramdysku ddrriivveerrss//bblloocckk//rrdd..cc Zawiera sterownik ramdysku. Procedury rd_load oraz rd_load_image aduj bloki z urzdzenia do ramdysku. Procedura identify_ramdisk_image ustala, jaki tym systemu plikw zosta znaleziony oraz czy jest on skompresowany. LL.. KKooddyy bbddww LLIILLOO.. W usenecie ludzie czsto zadaj pytania na ten temat, wic umiecilimy je tutaj dla szerszego grona. To podsumowanie pochodzi z LILO User Documentation Wernera Almsberger, dostpnego pod adresem <ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/lilo-u-21.ps.gz>. Gdy LILO aduje si, wywietla sowo ``LILO''. Kada litera jest wywietlana po lub przed wykonaniem jakiej czynnoci. Jeli w pewnym momencie wystpi bd, mona wykorzysta litery do zidentyfikowania problemu. ((nniicc)) adna cz LILO nie zostaa zaadowana. LILO nie zosta zainstalowany, albo partycja w ktrej bootsektorze LILO zosta zainstalowany nie jest aktywna. LL Rozpocza si pierwsza faza programu adujcego, ale niemoliwe jest przejcie do drugiej fazy. Dwucyfrowy kod bdu oznacza rodzaj bdu (patrz take dzia ``Disk error codes''). Zwykle dzieje si tak z powodu awarii nonika lub zych parametrw dysku. LLII Program adujcy pierwszej fazy zaadowa drug faz, ale nie udao mu si jej uruchomi. Moe by to spowodowane bednymi parametrami dysku lub przeniesieniem pliku /boot/boot.b bez wywoania instalatora. LLIILL Rozpocz si program adujcy drugiej fazy, ale nie udao mu si zaadaowa tablicy deskryptorw z pliku mapy. Najczciej jest to spowodowane awari nonika lub bdnymi parametrami dysku. LLIILL?? Program adujcy drugiej fazy zosta zaadowany pod nieprawidowym adresem. Zwykle jest to spowodowane bdnymi parametrami dysku lub przeniesieniem pliku /boot/boot.b bez uruchomienia instalatora. LLIILL-- Tablica deskryptorw jest nieprawidowa. Moe to by spowodowane bdnymi parametrami dysku lub przeniesieniem pliku /boot/map bez uruchomienia istalatora mapy. LLIILLOO Wszystkie elementy LILO zostay prawidowo zaadowane. Jeli BIOS zasygnalizuje bd gdy LILO prbuje zaadowa obraz startowy, wywietlany jest odpowiedni kod bdu. Kody te s z zakresu od 0x00 do 0xbb. W LILO User Guide znajduje si ich wyjanienie. MM.. LLiissttaa pplliikkww pprrzzyykkaaddoowweejj ggwwnneejj ddyysskkiieettkkii.. Poniej znajduje si zawarto przykadowej dyskietki gwnej i narzdziowej. Root directory: drwx--x--x 2 root root 1024 Nov 1 15:39 bin drwx--x--x 2 root root 4096 Nov 1 15:39 dev drwx--x--x 3 root root 1024 Nov 1 15:39 etc drwx--x--x 4 root root 1024 Nov 1 15:39 lib drwx--x--x 5 root root 1024 Nov 1 15:39 mnt drwx--x--x 2 root root 1024 Nov 1 15:39 proc drwx--x--x 2 root root 1024 Nov 1 15:39 root drwx--x--x 2 root root 1024 Nov 1 15:39 sbin drwx--x--x 2 root root 1024 Nov 1 15:39 tmp drwx--x--x 7 root root 1024 Nov 1 15:39 usr drwx--x--x 5 root root 1024 Nov 1 15:39 var /bin: -rwx--x--x 1 root root 62660 Nov 1 15:39 ash -rwx--x--x 1 root root 9032 Nov 1 15:39 cat -rwx--x--x 1 root root 10276 Nov 1 15:39 chmod -rwx--x--x 1 root root 9592 Nov 1 15:39 chown -rwx--x--x 1 root root 23124 Nov 1 15:39 cp -rwx--x--x 1 root root 23028 Nov 1 15:39 date -rwx--x--x 1 root root 14052 Nov 1 15:39 dd -rwx--x--x 1 root root 14144 Nov 1 15:39 df -rwx--x--x 1 root root 69444 Nov 1 15:39 egrep -rwx--x--x 1 root root 395 Nov 1 15:39 false -rwx--x--x 1 root root 69444 Nov 1 15:39 fgrep -rwx--x--x 1 root root 69444 Nov 1 15:39 grep -rwx--x--x 3 root root 45436 Nov 1 15:39 gunzip -rwx--x--x 3 root root 45436 Nov 1 15:39 gzip -rwx--x--x 1 root root 8008 Nov 1 15:39 hostname -rwx--x--x 1 root root 12736 Nov 1 15:39 ln -rws--x--x 1 root root 15284 Nov 1 15:39 login -rwx--x--x 1 root root 29308 Nov 1 15:39 ls -rwx--x--x 1 root root 8268 Nov 1 15:39 mkdir -rwx--x--x 1 root root 8920 Nov 1 15:39 mknod -rwx--x--x 1 root root 24836 Nov 1 15:39 more -rws--x--x 1 root root 37640 Nov 1 15:39 mount -rwx--x--x 1 root root 12240 Nov 1 15:39 mt -rwx--x--x 1 root root 12932 Nov 1 15:39 mv -r-x--x--x 1 root root 12324 Nov 1 15:39 ps -rwx--x--x 1 root root 5388 Nov 1 15:39 pwd -rwx--x--x 1 root root 10092 Nov 1 15:39 rm lrwxrwxrwx 1 root root 3 Nov 1 15:39 sh -> ash -rwx--x--x 1 root root 25296 Nov 1 15:39 stty -rws--x--x 1 root root 12648 Nov 1 15:39 su -rwx--x--x 1 root root 4444 Nov 1 15:39 sync -rwx--x--x 1 root root 110668 Nov 1 15:39 tar -rwx--x--x 1 root root 19712 Nov 1 15:39 touch -rwx--x--x 1 root root 395 Nov 1 15:39 true -rws--x--x 1 root root 19084 Nov 1 15:39 umount -rwx--x--x 1 root root 5368 Nov 1 15:39 uname -rwx--x--x 3 root root 45436 Nov 1 15:39 zcat /dev: lrwxrwxrwx 1 root root 6 Nov 1 15:39 cdrom -> cdu31a brw-rw-r-- 1 root root 15, 0 May 5 1998 cdu31a crw------- 1 root root 4, 0 Nov 1 15:29 console crw-rw-rw- 1 root uucp 5, 64 Sep 9 19:46 cua0 crw-rw-rw- 1 root uucp 5, 65 May 5 1998 cua1 crw-rw-rw- 1 root uucp 5, 66 May 5 1998 cua2 crw-rw-rw- 1 root uucp 5, 67 May 5 1998 cua3 brw-rw---- 1 root floppy 2, 0 Aug 8 13:54 fd0 brw-rw---- 1 root floppy 2, 36 Aug 8 13:54 fd0CompaQ brw-rw---- 1 root floppy 2, 84 Aug 8 13:55 fd0D1040 brw-rw---- 1 root floppy 2, 88 Aug 8 13:55 fd0D1120 brw-rw---- 1 root floppy 2, 12 Aug 8 13:54 fd0D360 brw-rw---- 1 root floppy 2, 16 Aug 8 13:54 fd0D720 brw-rw---- 1 root floppy 2, 120 Aug 8 13:55 fd0D800 brw-rw---- 1 root floppy 2, 32 Aug 8 13:54 fd0E2880 brw-rw---- 1 root floppy 2, 104 Aug 8 13:55 fd0E3200 brw-rw---- 1 root floppy 2, 108 Aug 8 13:55 fd0E3520 brw-rw---- 1 root floppy 2, 112 Aug 8 13:55 fd0E3840 brw-rw---- 1 root floppy 2, 28 Aug 8 13:54 fd0H1440 brw-rw---- 1 root floppy 2, 124 Aug 8 13:55 fd0H1600 brw-rw---- 1 root floppy 2, 44 Aug 8 13:55 fd0H1680 brw-rw---- 1 root floppy 2, 60 Aug 8 13:55 fd0H1722 brw-rw---- 1 root floppy 2, 76 Aug 8 13:55 fd0H1743 brw-rw---- 1 root floppy 2, 96 Aug 8 13:55 fd0H1760 brw-rw---- 1 root floppy 2, 116 Aug 8 13:55 fd0H1840 brw-rw---- 1 root floppy 2, 100 Aug 8 13:55 fd0H1920 lrwxrwxrwx 1 root root 7 Nov 1 15:39 fd0H360 -> fd0D360 lrwxrwxrwx 1 root root 7 Nov 1 15:39 fd0H720 -> fd0D720 brw-rw---- 1 root floppy 2, 52 Aug 8 13:55 fd0H820 brw-rw---- 1 root floppy 2, 68 Aug 8 13:55 fd0H830 brw-rw---- 1 root floppy 2, 4 Aug 8 13:54 fd0d360 brw-rw---- 1 root floppy 2, 8 Aug 8 13:54 fd0h1200 brw-rw---- 1 root floppy 2, 40 Aug 8 13:54 fd0h1440 brw-rw---- 1 root floppy 2, 56 Aug 8 13:55 fd0h1476 brw-rw---- 1 root floppy 2, 72 Aug 8 13:55 fd0h1494 brw-rw---- 1 root floppy 2, 92 Aug 8 13:55 fd0h1600 brw-rw---- 1 root floppy 2, 20 Aug 8 13:54 fd0h360 brw-rw---- 1 root floppy 2, 48 Aug 8 13:55 fd0h410 brw-rw---- 1 root floppy 2, 64 Aug 8 13:55 fd0h420 brw-rw---- 1 root floppy 2, 24 Aug 8 13:54 fd0h720 brw-rw---- 1 root floppy 2, 80 Aug 8 13:55 fd0h880 brw-rw---- 1 root disk 3, 0 May 5 1998 hda brw-rw---- 1 root disk 3, 1 May 5 1998 hda1 brw-rw---- 1 root disk 3, 2 May 5 1998 hda2 brw-rw---- 1 root disk 3, 3 May 5 1998 hda3 brw-rw---- 1 root disk 3, 4 May 5 1998 hda4 brw-rw---- 1 root disk 3, 5 May 5 1998 hda5 brw-rw---- 1 root disk 3, 6 May 5 1998 hda6 brw-rw---- 1 root disk 3, 64 May 5 1998 hdb brw-rw---- 1 root disk 3, 65 May 5 1998 hdb1 brw-rw---- 1 root disk 3, 66 May 5 1998 hdb2 brw-rw---- 1 root disk 3, 67 May 5 1998 hdb3 brw-rw---- 1 root disk 3, 68 May 5 1998 hdb4 brw-rw---- 1 root disk 3, 69 May 5 1998 hdb5 brw-rw---- 1 root disk 3, 70 May 5 1998 hdb6 crw-r----- 1 root kmem 1, 2 May 5 1998 kmem crw-r----- 1 root kmem 1, 1 May 5 1998 mem lrwxrwxrwx 1 root root 12 Nov 1 15:39 modem -> ../dev/ttyS1 lrwxrwxrwx 1 root root 12 Nov 1 15:39 mouse -> ../dev/psaux crw-rw-rw- 1 root root 1, 3 May 5 1998 null crwxrwxrwx 1 root root 10, 1 Oct 5 20:22 psaux brw-r----- 1 root disk 1, 1 May 5 1998 ram brw-rw---- 1 root disk 1, 0 May 5 1998 ram0 brw-rw---- 1 root disk 1, 1 May 5 1998 ram1 brw-rw---- 1 root disk 1, 2 May 5 1998 ram2 brw-rw---- 1 root disk 1, 3 May 5 1998 ram3 brw-rw---- 1 root disk 1, 4 May 5 1998 ram4 brw-rw---- 1 root disk 1, 5 May 5 1998 ram5 brw-rw---- 1 root disk 1, 6 May 5 1998 ram6 brw-rw---- 1 root disk 1, 7 May 5 1998 ram7 brw-rw---- 1 root disk 1, 8 May 5 1998 ram8 brw-rw---- 1 root disk 1, 9 May 5 1998 ram9 lrwxrwxrwx 1 root root 4 Nov 1 15:39 ramdisk -> ram0 *** Doczyem jedynie urzdzenia IDE dla partycji ktrych uywam. *** Jeli korzystasz ze SCSI, uyj zamiast nich urzdze /dev/sdXX. crw------- 1 root root 4, 0 May 5 1998 tty0 crw--w---- 1 root tty 4, 1 Nov 1 15:39 tty1 crw------- 1 root root 4, 2 Nov 1 15:29 tty2 crw------- 1 root root 4, 3 Nov 1 15:29 tty3 crw------- 1 root root 4, 4 Nov 1 15:29 tty4 crw------- 1 root root 4, 5 Nov 1 15:29 tty5 crw------- 1 root root 4, 6 Nov 1 15:29 tty6 crw------- 1 root root 4, 7 May 5 1998 tty7 crw------- 1 root tty 4, 8 May 5 1998 tty8 crw------- 1 root tty 4, 9 May 8 12:57 tty9 crw-rw-rw- 1 root root 4, 65 Nov 1 12:17 ttyS1 crw-rw-rw- 1 root root 1, 5 May 5 1998 zero /etc: -rw------- 1 root root 164 Nov 1 15:39 conf.modules -rw------- 1 root root 668 Nov 1 15:39 fstab -rw------- 1 root root 71 Nov 1 15:39 gettydefs -rw------- 1 root root 389 Nov 1 15:39 group -rw------- 1 root root 413 Nov 1 15:39 inittab -rw------- 1 root root 65 Nov 1 15:39 issue -rw-r--r-- 1 root root 746 Nov 1 15:39 ld.so.cache *** Plik ld.so.cache jest tworzony przez ldconfig i przechowuje *** lokalizacje bibliotek. Podczas startowania wystpi wiele bdw *** jeli brakuje ld.so.cache. Moesz odtworzy go po stworzeniu *** dyskietki, albo doda ldconfig do dyskietki i uruchamia go ze *** skryptu rc.x. -rw------- 1 root root 32 Nov 1 15:39 motd -rw------- 1 root root 949 Nov 1 15:39 nsswitch.conf drwx--x--x 2 root root 1024 Nov 1 15:39 pam.d -rw------- 1 root root 139 Nov 1 15:39 passwd -rw------- 1 root root 516 Nov 1 15:39 profile -rwx--x--x 1 root root 387 Nov 1 15:39 rc -rw------- 1 root root 55 Nov 1 15:39 shells -rw------- 1 root root 774 Nov 1 15:39 termcap -rw------- 1 root root 78 Nov 1 15:39 ttytype lrwxrwxrwx 1 root root 15 Nov 1 15:39 utmp -> ../var/run/utmp lrwxrwxrwx 1 root root 15 Nov 1 15:39 wtmp -> ../var/log/wtmp /etc/pam.d: -rw------- 1 root root 356 Nov 1 15:39 other /lib: *** Posiadam system ELF z glibc, wic potrzebuj loadera ld-2.so -rwxr-xr-x 1 root root 45415 Nov 1 15:39 ld-2.0.7.so lrwxrwxrwx 1 root root 11 Nov 1 15:39 ld-linux.so.2 -> ld-2.0.7.so -rwxr-xr-x 1 root root 731548 Nov 1 15:39 libc-2.0.7.so lrwxrwxrwx 1 root root 13 Nov 1 15:39 libc.so.6 -> libc-2.0.7.so lrwxrwxrwx 1 root root 17 Nov 1 15:39 libcom_err.so.2 -> libcom_err.so.2.0 -rwxr-xr-x 1 root root 6209 Nov 1 15:39 libcom_err.so.2.0 -rwxr-xr-x 1 root root 153881 Nov 1 15:39 libcrypt-2.0.7.so lrwxrwxrwx 1 root root 17 Nov 1 15:39 libcrypt.so.1 -> libcrypt-2.0.7.so -rwxr-xr-x 1 root root 12962 Nov 1 15:39 libdl-2.0.7.so lrwxrwxrwx 1 root root 14 Nov 1 15:39 libdl.so.2 -> libdl-2.0.7.so lrwxrwxrwx 1 root root 16 Nov 1 15:39 libext2fs.so.2 -> libext2fs.so.2.4 -rwxr-xr-x 1 root root 81382 Nov 1 15:39 libext2fs.so.2.4 -rwxr-xr-x 1 root root 25222 Nov 1 15:39 libnsl-2.0.7.so lrwxrwxrwx 1 root root 15 Nov 1 15:39 libnsl.so.1 -> libnsl-2.0.7.so -rwx--x--x 1 root root 178336 Nov 1 15:39 libnss_files-2.0.7.so lrwxrwxrwx 1 root root 21 Nov 1 15:39 libnss_files.so.1 -> libnss_files-2.0.7.so lrwxrwxrwx 1 root root 14 Nov 1 15:39 libpam.so.0 -> libpam.so.0.64 -rwxr-xr-x 1 root root 26906 Nov 1 15:39 libpam.so.0.64 lrwxrwxrwx 1 root root 19 Nov 1 15:39 libpam_misc.so.0 -> libpam_misc.so.0.64 -rwxr-xr-x 1 root root 7086 Nov 1 15:39 libpam_misc.so.0.64 -r-xr-xr-x 1 root root 35615 Nov 1 15:39 libproc.so.1.2.6 lrwxrwxrwx 1 root root 15 Nov 1 15:39 libpwdb.so.0 -> libpwdb.so.0.54 -rw-r--r-- 1 root root 121899 Nov 1 15:39 libpwdb.so.0.54 lrwxrwxrwx 1 root root 19 Nov 1 15:39 libtermcap.so.2 -> libtermcap.so.2.0.8 -rwxr-xr-x 1 root root 12041 Nov 1 15:39 libtermcap.so.2.0.8 -rwxr-xr-x 1 root root 12874 Nov 1 15:39 libutil-2.0.7.so lrwxrwxrwx 1 root root 16 Nov 1 15:39 libutil.so.1 -> libutil-2.0.7.so lrwxrwxrwx 1 root root 14 Nov 1 15:39 libuuid.so.1 -> libuuid.so.1.1 -rwxr-xr-x 1 root root 8039 Nov 1 15:39 libuuid.so.1.1 drwx--x--x 3 root root 1024 Nov 1 15:39 modules drwx--x--x 2 root root 1024 Nov 1 15:39 security /lib/modules: drwx--x--x 4 root root 1024 Nov 1 15:39 2.0.35 /lib/modules/2.0.35: drwx--x--x 2 root root 1024 Nov 1 15:39 block drwx--x--x 2 root root 1024 Nov 1 15:39 cdrom /lib/modules/2.0.35/block: -rw------- 1 root root 7156 Nov 1 15:39 loop.o /lib/modules/2.0.35/cdrom: -rw------- 1 root root 24108 Nov 1 15:39 cdu31a.o /lib/security: -rwx--x--x 1 root root 8771 Nov 1 15:39 pam_permit.so *** Katalogi do montowania. /mnt: drwx--x--x 2 root root 1024 Nov 1 15:39 SparQ drwx--x--x 2 root root 1024 Nov 1 15:39 cdrom drwx--x--x 2 root root 1024 Nov 1 15:39 floppy /proc: /root: -rw------- 1 root root 176 Nov 1 15:39 .bashrc -rw------- 1 root root 182 Nov 1 15:39 .cshrc -rw------- 1 root root 47 Nov 1 15:39 .glintrc -rwx--x--x 1 root root 455 Nov 1 15:39 .profile -rw------- 1 root root 4014 Nov 1 15:39 .tcshrc /sbin: -rwx--x--x 1 root root 23976 Nov 1 15:39 depmod -rwx--x--x 2 root root 274600 Nov 1 15:39 e2fsck -rwx--x--x 1 root root 41268 Nov 1 15:39 fdisk -rwx--x--x 1 root root 9396 Nov 1 15:39 fsck -rwx--x--x 2 root root 274600 Nov 1 15:39 fsck.ext2 -rwx--x--x 1 root root 29556 Nov 1 15:39 getty -rwx--x--x 1 root root 6620 Nov 1 15:39 halt -rwx--x--x 1 root root 23116 Nov 1 15:39 init -rwx--x--x 1 root root 25612 Nov 1 15:39 insmod -rwx--x--x 1 root root 10368 Nov 1 15:39 kerneld -rwx--x--x 1 root root 110400 Nov 1 15:39 ldconfig -rwx--x--x 1 root root 6108 Nov 1 15:39 lsmod -rwx--x--x 2 root root 17400 Nov 1 15:39 mke2fs -rwx--x--x 1 root root 4072 Nov 1 15:39 mkfs -rwx--x--x 2 root root 17400 Nov 1 15:39 mkfs.ext2 -rwx--x--x 1 root root 5664 Nov 1 15:39 mkswap -rwx--x--x 1 root root 22032 Nov 1 15:39 modprobe lrwxrwxrwx 1 root root 4 Nov 1 15:39 reboot -> halt -rwx--x--x 1 root root 7492 Nov 1 15:39 rmmod -rwx--x--x 1 root root 12932 Nov 1 15:39 shutdown lrwxrwxrwx 1 root root 6 Nov 1 15:39 swapoff -> swapon -rwx--x--x 1 root root 5124 Nov 1 15:39 swapon lrwxrwxrwx 1 root root 4 Nov 1 15:39 telinit -> init -rwx--x--x 1 root root 6944 Nov 1 15:39 update /tmp: /usr: drwx--x--x 2 root root 1024 Nov 1 15:39 bin drwx--x--x 2 root root 1024 Nov 1 15:39 lib drwx--x--x 3 root root 1024 Nov 1 15:39 man drwx--x--x 2 root root 1024 Nov 1 15:39 sbin drwx--x--x 3 root root 1024 Nov 1 15:39 share lrwxrwxrwx 1 root root 10 Nov 1 15:39 tmp -> ../var/tmp /usr/bin: -rwx--x--x 1 root root 37164 Nov 1 15:39 afio -rwx--x--x 1 root root 5044 Nov 1 15:39 chroot -rwx--x--x 1 root root 10656 Nov 1 15:39 cut -rwx--x--x 1 root root 63652 Nov 1 15:39 diff -rwx--x--x 1 root root 12972 Nov 1 15:39 du -rwx--x--x 1 root root 56552 Nov 1 15:39 find -r-x--x--x 1 root root 6280 Nov 1 15:39 free -rwx--x--x 1 root root 7680 Nov 1 15:39 head -rwx--x--x 1 root root 8504 Nov 1 15:39 id -r-sr-xr-x 1 root bin 4200 Nov 1 15:39 passwd -rwx--x--x 1 root root 14856 Nov 1 15:39 tail -rwx--x--x 1 root root 19008 Nov 1 15:39 tr -rwx--x--x 1 root root 7160 Nov 1 15:39 wc -rwx--x--x 1 root root 4412 Nov 1 15:39 whoami /usr/lib: lrwxrwxrwx 1 root root 17 Nov 1 15:39 libncurses.so.4 -> libncurses.so.4.2 -rw-r--r-- 1 root root 260474 Nov 1 15:39 libncurses.so.4.2 /usr/sbin: -r-x--x--x 1 root root 13684 Nov 1 15:39 fuser -rwx--x--x 1 root root 3876 Nov 1 15:39 mklost+found /usr/share: drwx--x--x 4 root root 1024 Nov 1 15:39 terminfo /usr/share/terminfo: drwx--x--x 2 root root 1024 Nov 1 15:39 l drwx--x--x 2 root root 1024 Nov 1 15:39 v /usr/share/terminfo/l: -rw------- 1 root root 1552 Nov 1 15:39 linux -rw------- 1 root root 1516 Nov 1 15:39 linux-m -rw------- 1 root root 1583 Nov 1 15:39 linux-nic /usr/share/terminfo/v: -rw------- 2 root root 1143 Nov 1 15:39 vt100 -rw------- 2 root root 1143 Nov 1 15:39 vt100-am /var: drwx--x--x 2 root root 1024 Nov 1 15:39 log drwx--x--x 2 root root 1024 Nov 1 15:39 run drwx--x--x 2 root root 1024 Nov 1 15:39 tmp /var/log: -rw------- 1 root root 0 Nov 1 15:39 wtmp /var/run: -rw------- 1 root root 0 Nov 1 15:39 utmp /var/tmp: NN.. SSppiiss pplliikkww pprrzzyykkaaddoowweejj ddyysskkiieettkkii nnaarrzzddzziioowweejj.. total 579 -rwxr-xr-x 1 root root 42333 Jul 28 19:05 cpio* -rwxr-xr-x 1 root root 32844 Aug 28 19:50 debugfs* -rwxr-xr-x 1 root root 103560 Jul 29 21:31 elvis* -rwxr-xr-x 1 root root 29536 Jul 28 19:04 fdisk* -rw-r--r-- 1 root root 128254 Jul 28 19:03 ftape.o -rwxr-xr-x 1 root root 17564 Jul 25 03:21 ftmt* -rwxr-xr-x 1 root root 64161 Jul 29 20:47 grep* -rwxr-xr-x 1 root root 45309 Jul 29 20:48 gzip* -rwxr-xr-x 1 root root 23560 Jul 28 19:04 insmod* -rwxr-xr-x 1 root root 118 Jul 28 19:04 lsmod* lrwxrwxrwx 1 root root 5 Jul 28 19:04 mt -> mt-st* -rwxr-xr-x 1 root root 9573 Jul 28 19:03 mt-st* lrwxrwxrwx 1 root root 6 Jul 28 19:05 rmmod -> insmod* -rwxr-xr-x 1 root root 104085 Jul 28 19:05 tar* lrwxrwxrwx 1 root root 5 Jul 29 21:35 vi -> elvis*