Było sobie Gentoo, czyli pochwała swapa na osobnej partycji.

15 kwietnia, 2008

Nie tak dawno temu zadzwonił kumpel przebywający na urlopie bez dostępu do netu. "Routerek mi padł - zajrzysz? Tzn. żyje ale NAT nie działa". Zajrzałem. Systemem okazało się być Gentoo, oczywistych błędów nie było widać... Ręczny start usług i... nie działa nadal. I tylko natowanie nie działa (Invalid operation przy próbie włączenia maskarady, mimo, że moduły są załadowane/wkompilowane). W logach błędów nie widać.

Po odświeżeniu znajomości z emerge (kompilacja nowego iptables), truciu głowy znajomym magikom od Gentoo (dzięki redhand i #gentoo.pl) nie było dużego postępu. Jedyne co udało się ustalić to, że "coś jest zwalone". W sumie jak po make modules wywala się co drugi moduł, to faktycznie nie jest dobrze.

System był zapuszczony (kernel to 2.4.28 jakieś, dwie wersje iptables w systemie) i niezupełnie aktualizowany, moja znajomość Gentoo jest pobieżna, sprzęt to jakiś celeron, więc przebudowanie świata średnio mi się uśmiechało. Na dodatek ludzie z kanału #gentoo.pl podpowiadali, że może system plików się rozjechał po zaniku prądu. No może i się rozjechał, ale naprawy nie zaryzykuję, zdalnie, zwł. że to jedyny system na dysku był... System wstaje, więc źle nie jest.

Po bliższym przyjrzeniu się tablicy partycji okazało się, że leży sobie niezupełnie użwyany swap. 512 MB. Ilość, która spokojnie wystarcza na działający system routerowy w przypadku Debiana. Szybkie upewnienie się o konfig sieci, mkfs.ext3 na dawnym swapie, emerge debootstrap i... lipa. Debootstrap (narzędzie do instalacji base systemu Debiana we wskazanym katalogu - tak w skrócie) który był dostępny nie obsługiwał Etch, a instalacja Sarge i upgrade to niepotrzebna komplikacja.

Na szczęście wystarczyło zwykłe skopiowanie plików debootstrap z Etch. Potem edycje obu fstabów, edycja konfigu grub, edycja konfigu sieci, przeniesienie konfiguracji DHCP i... Na szczęście jeszcze nie chwila prawdy AKA reboot.

Kolej na triple check. Okazało się, że mkfs.ext3 to symlink do mkfs.ext2 - poprawka fstab. Dodałem wielokrotny fallback w grub (strzyżonego... ;)). Moduły do sieciówek dopisane na wszelki wypadek do /etc/modules. Powinno wstać... Reboot.

Wstało. Szybka konfiguracja NAT i tymczasowo problem z głowy. Kumpel wróci, to sobie dopieści. ;)

Konkluzja: debootstrap dobrze się nadaje do postawienia ratunkowego systemu "na boku", bez konieczności bootowania z CD/USB (tak, można stawiać dowolny system na tej zasadzie - wybrałem Debiana bo go znam i jest dopracowany na zasadzie fire && forget - w przypadku zdalnej instalacji każdy drobiazg się liczy). Swap na osobnej partycji się jednak przydaje (choć ze względów ratunkowo-logistycznych, nie wydajnościowych). Instalacja na 512 MB bez problemu (zapewne da się na 256 postawić base, przyciąć go, dodać parę dodatkowych potrzebnych pakietów i uruchomić system - nie testowałem, bo nie było potrzeby). Działający base system z dodatkami (mc, wajig (wymaga pythona), vim itp.) zajął ~350 MB (po wyczyszczeniu cache pakietów).

1. night napisał(a):
15 kwietnia 2008, 09:04:54

Routerowy Slackware z takimi rzeczami jak pp2p, htb itd. stawiam na 210 MB;] Ale i tak brawo za szybkie poradzenie sobie z problemem !

2. rozie napisał(a):
15 kwietnia 2008, 09:54:45

No szybkie jak szybkie. Fakt faktem, że dochodzenie co się stało z Gentoo i jak to poprawić trwało trzy razy tyle, co postawienie Debiana (samo postawienie trwało jakieś 2h – z przemyśleniem i testami czy OK). Co do wielkości – dałoby się przyciąć: mc, wajig (python!), tethereal, tcpdump, less, vim – nie są wymagane, a były wrzucone (się przydają, jednak). HTB – gotowe do działania. Ipp2p – musisz mieć jajko z boku wzięte, bo w skompilowanie kernela na 512 MB dysku coś nie wierzę. Ale nie jest stosowane tam. ;) Ogólnie tam nie ma dziesiątek klientów i działający goły NAT do powrotu
właściciela załatwił sprawę.

3. Jajcuś napisał(a):
15 kwietnia 2008, 10:02:42

Phi… ja na 100MB stawiam centralkę VoIP z webowym GUI w Javie (routing i NAT to coś też robi)... ;-)

4. Spo0lsh napisał(a):
15 kwietnia 2008, 10:31:57

398M GNU/Debian 4.0 z wodotryskami pod router i nie sprzątany.
W końcu to całe 512MB (Compact Flash), więc bardzo dużo miejsca jak na router. :)

5. D4rky napisał(a):
15 kwietnia 2008, 10:32:23

a co sie rozjechalo w samym Gentoo?

6. rozie napisał(a):
15 kwietnia 2008, 17:23:07

D4rky: nie wiadomo. Objawy były jak opisane wyżej – nie pozwalał na włączenie maskarady mimo załadowanych/wkompilowanych modułów. Wywalał się na make modules. Spece z #gentoo.pl stawiali na uszkodzony FS. Nie fsck’owałem, przyznaję, bo grub konfig czyta, a reszta mi zbędna była… Poza tym, jak sam właściciel przyznał, system był zapuszczony, rzeźbiony, >200 dni uptime i do końca nie pamięta, co robił. Wpis nie jest z kategorii „złe Gentoo” tylko „dobry, łatwy Debian”. No flame! ;)

7. RedHand napisał(a):
15 kwietnia 2008, 20:38:13

Polecam się na przyszłość. :-)

8. jARRodx napisał(a):
15 kwietnia 2008, 22:48:34

mkfs.ext3 to zawsze był symlink do mke2fs :P
Jedyną opcją, która powoduje, że mke2fs robi ext3 jest -j – dodaje księgowanie.
Ja zawsze używam mke2fs -j i mountuję jako ext3 :D

9. rozie napisał(a):
16 kwietnia 2008, 06:22:08

jARRodx: Tak, już to słyszałem na #gentoo.pl. Tyle, że tam twierdzili, że w przypadku wywołania mkfs.ext3 argument -j jest dodawany automatycznie. Raczej nie był, bo po mkfs.ext3 /dev/hda2 i mount /dev/hda2 <mountpoint> system był widoczny jako ext2. Natomiast w Debianie mkfs.ext3 to osobna binarka, a i sam system plików montuje się jako ext3. OK – możliwe, że to wina starego systemu, mount czy czegośtam, w każdym razie nie ryzykowałem, tylko wpisałem ext2 do fstab…