Portál AbcLinuxu, 30. dubna 2025 20:10

Potřeba readonly linuxu pro naše routery

11.10.2005 12:14 | Přečteno: 1492× | Linux - readonly debian pro routery

Trable z výroby upraveného debianu pro router


Upozornění: v textu je velké množství chyb, pokud nechcete toto tolerovat, prosím dál ani nečtěte :-)

Nedávno jsme se rozhodli zkusit sestavit trochu lepší router než jenom obyčejný linux s ospfd. Převážně nestabilita hdd (dost často umírali, neměli jsme zálohy, bylo s tím hodně zbytečné práce).


Proto jsem zakoupil redukci IDE an CompactFlash, ještě ten den jsem se pustil do práce, standardní instalace debianu na HDD, kompilace nového kernelu, přiinstalování několika dalších utilitek pro práci se sítí, kompilace driverů pro prism a atheros karty.

Vše jsem pak v fstabu připojil jako read only (aby nedocházelo k budoucímu poškozování CF karty a taky aby nemohlo dojít k chybám na disku vlivem například výpadku el.)


Reboot.... Linux nabíhal (aby taky ne) A najednou plno chyb, syslog nemuze logovat, nelze menit prava u /dev/xconsole.. Nelze spustit sit protoze nelze prepsat ifstate... jeden velkej bordel. Nic nenabehlo jak jsem si pral.


Řekl jsem si, že zkusím tedy /var/log umístit do ramdisku. Do fstabu jsem tedy vložil potřebný záznam která do /var/log mountoval ramdisk a zase reboot.


Start zase nebyl vpořádku, padalo to na dalších souborech, na PIDech a podobně.


Dozvěděl jsem se také něco o tmpfs - lepší volba ramdisku, jeho velikost se mění dle požadavku a není potřeba předem alokovat místo jako u ramdisku.


Obsah /var jsem tedy zabalil do tgz, originální obsah /var smazal, ve fstabu jsem cele /var mountnul jako tmpfs, do scriptu hned po nabehnuti kernelu a mountnuti / jsem pripsal radek ktery var.tgz rozbalil do /var, tím jsem získal zapisovací /var, ušetřil celkem asi 40MB na disku a myslel jsem si, že vše bude již vpořádku chodit.


Reboot... Vše nabíhá, a zdá se, že se mohu až na pár chyb i přihlásit - super, ještě upravit /tmp (linkovat do /var/tmp) a upravit /etc/network/ifstate, taky linkem do tmp/ifstate.

Po chvilce laborovánbí jsem si všiml že nejede syslog, nelze zapisovat do /dev :-(


Tedy jsem /dev udělal stejně jako /var (tedy dev.tgz, rozbalim do tmpfs). Bohužel, to se mi stalo usudným - neprošlo to, jakmile jsem přimountoval /dev jako tmpfs, došlo k znepřístupnění většiny zařízení v systému a na rozbalení dev.tgz ani nedošlo. Tento problém jsem vyřešil mountem /mnt, rozbalením dev.tgz, a mount --move /mnt /dev. Vše zase chodilo o kus lépe.


Ted jsem se rozhodl přenést vše na CF, připojil jsem tedy HDD, CF a cdrom s live linuxem. V live linuxu jsem překopíroval vše z HDD na CF, chrootnul na /CF, spustil lilo.


Reboot na CF... "Hurá, ono to jede"... zaradoval jsem se a hned jsem se letel chlubit kde komu. Reakce nebyla tak bouřlivá jak jsem čekal, nicméně sklidil jsem pochvalu ... konečně nebude třeba hdd a všichni budou mít normální debian na který jsou zvyklí.


Po 24h jsem ale zaznamenal chybu, při bootu lilo píše jenom "LI LI LI LI .. atd", zkusil jsem přimountit, lilo přepsat, nepomohlo, zkoušel jsem kde co, zkoušel jsem celej postup instalace z HDD zopakovat na jinou CF - bohužel problém trvá.


Pokud by snad někdo věděl, co jsem dělal špatně? Pokud by někdo věděl jak lépe tento postup provédst, prosím připište to do diskuze :)

Rád se nečemu přiučím.
Johny (Jaroslav Syrový) za podoli.org :-)

       

Hodnocení: -

zatím nehodnoceno
        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

Luk avatar 11.10.2005 12:26 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
Rozbalit Rozbalit vše ...
Odpovědět | Sbalit | Link | Blokovat | Admin
Přiohnout běžné distribuce tak, aby bez problémů běhaly z CF karty jsem zkoušel, a je to úmorná práce. Relativně bez problémů se mi to podařilo jen u Gentoo, ale i tak to nebylo úplně nejjednodušší.

Existuje řešení - některé ze speciálních embedded Linuxů (ELinOS, Metrowerks apod.), které mají nástroj, kde si to člověk za pár minut nakliká podle potřeby (a třeba s CF není žádný problém). Bohužel jsou tyto balíky poměrně drahé (desítky tisíc Kč). Takže se to vyplatí jen tomu, kdo to dělá ve velkém.
Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
Johny z Podoli avatar 11.10.2005 12:35 Johny z Podoli | skóre: 26 | blog: rocfdebian
Rozbalit Rozbalit vše Re: ...
Já toto dělám neziskově, peníze co máme dou do HW :) a hlavně to dělám protože to dělat chci z koupení nebo použití něčeho hotového bych neměl ani radost.

Docela jsem přemejšlel nad nějakým speciálním "mountem" typu tmpfs..

například, mám /var, v něm mám obsah, teď to přimountnu "nějak" jako tmpfs s tím, že originální obsah se přenese do tmpfs, po rebootu samozřejmě o data přijdu.

Kdyby se toto dalo udělat s /var, /dev..., tak by se vše řešilo, při startu by se vše přesunulo do ram, po rebootu zase vše na svém místě.

Nějaký nápad?
Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
11.10.2005 13:52 iSteve | skóre: 15 | blog: isteve
Rozbalit Rozbalit vše Re: ...
Co je na tmpfs specialniho?
Luk avatar 11.10.2005 14:21 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
Rozbalit Rozbalit vše Re: ...
Tohle jsem řešil skriptem spouštěným při ukončení systému (spustí se jako poslední, aby logy apod. obsahovaly všechna data) - originální FS na CF se někam připojí jako R/W, tam se data překopírují (na své místo), FS se odpojí a systém se zastaví/vypne nebo restartuje.
Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
11.10.2005 15:14 vladki
Rozbalit Rozbalit vše Re: ...
Mozna by te mohl zajimat modul translucency. Funguje jako mount, ale stale vidis obsah puvodniho adresare, pouze zmeny se zapisuji do jineho (napr. na tmpfs).

Jinak s tim aby mi bezel debian z read-only media (CF, CD) jsem si pohral a neni toho potreba az tak moc, lze to vyresit symlinky do tmpfs, a na /dev pouzit devfs.

Funkcni reseni si muzes prohlednout na http://linux.brno-czfree.net/
hwsoft avatar 12.10.2005 09:36 hwsoft | skóre: 19
Rozbalit Rozbalit vše Re: ...
zkus treba www.czfree.net a czfree debian. Ja teda pouzivam Voyage Linux, coz je vic prace a vetsi svoboda, je to taky Debian based.
11.10.2005 12:38 kavol | skóre: 28
Rozbalit Rozbalit vše "zkoušel jsem kdeco"
Odpovědět | Sbalit | Link | Blokovat | Admin
hm, když to píše LI LI LI, proč nezkusíš Grub? :-)
martink avatar 11.10.2005 12:49 martink | skóre: 10 | Hradec Králové
Rozbalit Rozbalit vše /dev
Odpovědět | Sbalit | Link | Blokovat | Admin
/dev nemusí být na ramdisku. syslog sice běžně používá soket /dev/log, ten je ale možné umístit jinam (tj. do ramdisku, viz man syslogd a hledat parametr -p). Případné další problémy s /dev je možné řešit symlinky do ramdisku.

Mohou se vyskytnout další problémy (třeba s /etc/mtab nebo s dynamickým přidáváním položek do /etc/resolv.conf), ale všechno jde řešit buď symlinky do ramdisku, mount --bind nebo vhodnými parametry problémových programů.

K lilo: odpověď si přečtěte v /usr/share/doc/lilo/README.common.problems
11.10.2005 12:55 blackjam
Rozbalit Rozbalit vše je na to balicek
Odpovědět | Sbalit | Link | Blokovat | Admin
Kluci, zkuste debianovy balicek flashybrid (je minimalne v sidu), tam je naznaceny postup dotazen o dost dale. Ja to vetsinou nainstaluju na HDD v readonly modu a pak pretahnu image na CF, abych ji pri experimentech zbytecne "nemasiroval".
11.10.2005 14:18 pupala | skóre: 21
Rozbalit Rozbalit vše Skús to takto...
Odpovědět | Sbalit | Link | Blokovat | Admin
Nechcem zbytočne kecať, ale ja som to vyriešil podľa tohoto: http://linuxdevices.com/articles/AT4540125636.html

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.