Welcome to Brutusware 1.6 ##### ####### @ ## # ## ###### @@# #VVVVV# ## # ## VVV ## ## @@@ ### #### ### ### ##### ###### # ## ## @ @# ### ## ## ## ### ## # ## ## @ @# ## ## ## ## ### # ### ## @@# ## ## ## ## ### QQ# ##Q ## # @@# ## ## ## ## ## ## QQQQQQ# #QQQQQQ ## ## @@# # ## ## ### ### ## ## QQQQQQQ# #QQQQQQQ ############ ### #### #### #### ### ##### ###### QQQQQ#######QQQQQAuthor: Ladislav Vaiz
You can visit Brutusware homepage.
#include <std_disclaimer.h>
Jedno až dvoudisketová minidistribuce Linuxu. Její původní cíl byl poskytnout majiteli operační systém pro připojení k internetu prostřednictvím ethernetové karty pokud možno nezávisle na tom, v jakém stupni rozkladu je okolní síť nebo lokální disk. Později přibylo i místo pro utility typu e2fsck, takže je použitelná i jako záchranná disketa.
Vybrané vlastnosti: TCP/IP networking, podpora FAT32, NTFS včetně automatického namountování při startu, ssh, v rámci možností podpora češtiny (fonty, klávesnice).
První a hlavní disketa je v klasickém formátu FAT12, neměl by být problém spustit loadlinem systém i na strojích, které z diskety nebootujou (bootromka, heslo v setupu). Image lze vypálit na bootovaci CD.
Na první disketě jsou programy:
Na /usr jsou: badblocks, chown, date, dosfsck, finger, hd, links, mc, mkdosfs, netstat, nslookup, rar, smbmount, sort, strace, stty, unarj, unzip, zgv
X-window system se serverem VGA16 byl z /usr diskety vyřazen.
Objeví-li skript adresář /usr/boot, není ke klonování třeba bootovací disketa, potřebné soubory jsou brány z tohoto adresáře. Musí zde být ještě soubor bootsect, což je prvních 512 bytů z bootovací diskety.
Po zkopírování souborů se skript zeptá, jestli má do bootsektoru partišny vložit zavaděč. Pak stačí nastavit fdiskem partišnu jako bootovací a není pro zavedení systému třeba M$-DO$. POZOR! Ačkoli jsem skript skoušel na několika různých počítačích, nemohu vyloučit, že přepíše i nějakou důležitou část disku. Pokud máte rád(a) svá data, tak této možnosti nevyužívejte.
V každém případě se vytvoří soubor \AUTO.BAT, který zavede systém loadlinem.
Na serveru by na příslušném portu měl poslouchat nbd-server (viz stránka Pavla Machka. Doporučuji server startovat přes (x)inetd. Verze 0.14, kterou používám, vyžaduje drobnou úpravu. Je třeba zlikvidovat VŠECHNY příkazy, které zapisují ladicí výpisy na stdout nebo stderr. Ty totiž dostane klient a samozřejmě jim nerozumí. Mělo by stačit vyhledávat 'printf' a odstraňovat výpisy typu 'Opening file blabla.img'.
Binárce nbd-server přibyl parametr -a, který musí být následován parametrem udávajícím po kolika sekundách nečinnosti klienta se server ukončí. To je vhodné, pokud se klientský počítač ukončí tak, že se neuzavře spojení se serverem a program nbd-server tam visí v syscallu. Já používám timeout 21600 neboli 6 hodin.
Serveru zadáte jako parametr soubor, který je image souborového systému ext2. Já používám tento . Je vhodné exportovat read-only, protože z principu není možný zápis více klienty. (filesystém je vytvářený u klienta a chybí jakákoli synchronizace).
Jelikož neznám žádný způsob, jak korektně ukončit program nbd-client (zůstane ve volání ioctl() a statečně ignoruje všechny signály), řeším to silně prasecky. Prostě do /dev/nd0 zapíšu. Server ví, že je read-only a ukončí spojení s klientem, ten vypadne ze syscallu a všechno by mělo být v pořádku.
"Xka" se spouští tradičně skriptem startx.. Program testuje existenci souboru /etc/XF86Config. Pokud existuje, jsou Xka prohlášeny za nakonfigurované a spustí se. V opačném případě program pokusí zdetekovat grafickou kartu. Pohledem do /proc/pci by měl odhalit S3 a Mach64. Při neúspěchu proběhne adresu e000:0000 v /proc/kcore a hledá řetězec 'trident', takže i tuto grafiku by měl najít. V opačném případě se na typ karty zeptá, zadáním prázdného řetězce bude použit VGA setver (640x480 při šestnácti barvách).
Následuje otázka na zařízení, ke kterému je připojena myš. Pokud máte nějakou nestandardní, budete muset použít ruční práci.
Pak naběhne Xserver a spustí se windowmanager fvwm2. V jeho nabídce je pouze xterm (u kterého zlobí barvamy) a netscape verze 3 (který jak je u Netskejpů zvykem) padá na SIGBUS.
Připojení na server, na kterém běží xdm (kdm, gdm), se provádí: X -query jmeno_serveru
Parametr -s způsobí, že program projde první a dvě hlavy všech stop. Hledá známá magická čísla. Umí najít tabulku rozdělení, linux swap, ext2, FAT12 a 16 (32 jsem nezkoušel, nikde ji nemám). Samozřejmě, že magická čísla se mohou na disku nacházet i náhodně (například záloha MBR uschovaná lilem). I tak je program užitečný, když se rozsype disk a není uschována informace o partišnách. S trochou znalostí o původním rozdělení (alespoň s přibližnými velikostmi partišen) lze fdiskem rekonstruovat původní rozdělení.
Parametr -t zapne důkladné prohledávání disku, tj. prohledávají se všechny hlavy (zatím jsem se s partišnou začínající na hlavě 22 nesetkal). Důkladné porovnání může být až 100x pomalejší.
Vyhledávání magckých čísel může zlobit u disků s méně než osmi sektory na stopu. Takové disky, doufám, nejsou. I disketa má víc.
Na počítači s 8MB je velmi vhodné distribuci naklonovat na dosovou partišnu a spouštět LOADLINem. Tím uvolníme asi 2300 kB (rootový fs). Na pár sshček sice 8MB stačí, ale pro více programů by už začne mít jádro problémy (nemáme totiž swap).
Nechcete-li používat DOS, je možno použít ldlinux.sys. Je třeba do bootsektoru disku nahrát bootsektor diskety a to tak, aby se přepsal pouze zaváděcí program, nikoli data o partišně. To vyžaduje znalosti formátu bootsektoru. Časem jistě vznikne skript, který to provede.
Skript clone vytvoří také na disku soubor /var/swap, který se při startu připojí jako swapovací soubor.
POZOR! Skripty jsou hloupé a nekontrolují například, jestli je již disketa namountovaná! Klidně ji přepíší.
Ti, kdož budou chtít zkomplikovat i kernel, mají k dispozici adresář src/kernel, jehož obsah je též téměř jasný. Napovím, že některé soubory opravdu nejsou součástí jádra a zůstaly v adresáři mou leností.
Na notebooku s LCD displejem mi nechodilo rozlišení 80x30 (4). Posledních pět řádek nebylo vidět. Lze to napravit: rdev -v bzImage -1.
Midnight se už překresluje správně, ale ignoruje překladové tabulky, takže se v něm (a v programech z něj spuštěných) špatně zobrazují české znaky. Spouštěcí alias po ukončení mc znovu tabulky načte a čeština opět začne fungovat.
Midnight také špatně zobrazuje velikost souborů řádu desítek MB a větších. Nejvyšší řády odsekne, místo 64MB souboru vidíme jen 4MB.
Je-li připojené /usr přes nbd, pak se při shutdownu (ctrl+alt+del) těsně před rebootem objeví spousta chybových hlášek. To se ukončuje spojení se serverem. Ignorujte.
Použití skriptů v balíku bw-devel-x.y.tar.gz vyžaduje programy, které nejsou součástí Brutusware. Je třeba provádět vývoj na plnohodnotném linuxu. Já používám RedHat 6.0, problémy by neměly být ani s jinými distribucemi.
Snad jen pokud se Vám distribuce líbí, řekněte to všem kolem, včetně těch, co neznáte, pokud se Vám na ní něco nelíbí, řekněte to mě.
La'd"a Vaiz, ok1zia zavináč nagano tečka cz
P.S. Za veškeré přkelepy a hrupky se omlouvám.