Jak zainstalować Debiana przy pomocy debootstrap – HOWTO

Co prawda instalacja systemu przy pomocy debootstrap jest trywialna, opisów są setki, a i man debootstrap niby jest wystarczający, ale zawsze kończy się tak, że o czymś zapominam jak z głowy robię i muszę bootować powtórnie, więc postanowiłem spisać. Tym bardziej, że ostatnio jest to najpopularniejsza dla mnie metoda instalacji. Instalator Debiana został wykastrowany z niewolnych firmware’ów, przez co instalacja Debiana na laptopach czy ultrabookach, gdy nie ma przewodowej karty sieciowej jest… powiedzmy delikatnie niefajna. No i parę instalacji znowu w ostatnim czasie było.

Instalację przy pomocy debootstrap można zrobić z dowolnego systemu, nie musi być to Debian. Zwykle korzystam z Debiana live lub – ostatnio – Ubuntu w wersji live (jakoś lepiej sprzęt wykrywa, a nie mam czasu sklikać debianowego live z testing/unstable…). Niemniej z bardziej pamiętnych zdarzało się i Gentoo. Cokolwiek co ma pakiet debootstrap się nada. Kolejne kroki wyglądają tak:

  • utworzenie i sformatowanie partycji, na którą ma być zrobiona instalacja
  • utworzenie punktu montowania, zamontowanie partycji – mkdir /chrooted; mount /dev/sda3 /chrooted
  • debootstrap właściwy – debootstrap squeeze /chrooted http://ftp2.de.debian.org/debian/
  • podmontowanie proc- mount proc /chrooted/proc -t proc
  • podmontowanie dev i sys – mount –bind /dev/ /chrooted/dev; mount –bind /sys/ /chrooted/sys
  • wejście do chroota – chroot /chrooted /bin/bash
  • edycja sources.list i aktualizacja listy pakietów
  • instalacja kernela, firmware’ów (także niewolne, jeśli wymagane), gruba
  • aktualizacja wpisów dla grub – update-grub2
  • instalacja dodatkowych programów – apt-get install wajig less mc wicd wpasupplicant wicd-curses
  • edycja /etc/fstab, /etc/network/interfaces, /etc/hosts (w sumie bez tego też działa)
  • zmiana hasła root, ew. dodanie użytkowników
  • wyjście z chroota – exit
  • reboot kontrolny – system powinien działać

Jest szansa,  że o czymś zapomniałem. Zatem jeśli coś się przypomni albo zmieni w nowszych wersjach systemów, to będę aktualizował instrukcję.

UPDATE: Może okazać się, że zainstalowana przy pomocy debootstrap maszyna, dostępna tylko po sieci nie pinguje się. Wtedy, jeśli skonfigurowaliśmy sieć, warto sprawdzić okolice /etc/udev/rules.d/70-persistent-net.rules czy MAC nie został przypisany do kolejnego interfejsu.

Wicd nie startuje w Debianie – problem z Pythonem.

Ostatnio wicd mi się w Debianie znarowiło – nie wstawał klient GTK. Wersja curses działała OK, więc nie wykazałem się należną czujnością i  zignorowałem problem. Zorientowałem się dość późno, bo korzystam z hibernacji głównie, a efektem był brak sieci WiFi po restarcie (no dobrze, skrót myślowy, nie tyle brak sieci, bo wpa_supplicant z ręki daje radę, co niestartowanie wicd). W każdym razie uruchomienie wicd dawało:

 Traceback (most recent call last):
File "/usr/share/wicd/daemon/wicd-daemon.py", line 47, in
import dbus
File "/usr/lib/python2.7/dist-packages/dbus/__init__.py", line 100, in
from dbus._dbus import Bus, SystemBus, SessionBus, StarterBus
File "/usr/lib/python2.7/dist-packages/dbus/_dbus.py", line 46, in
from dbus.bus import BusConnection
File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 46, in
from dbus.connection import Connection
File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 42, in
from dbus.proxies import ProxyObject
File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 35, in
from dbus._expat_introspect_parser import process_introspection_data
File "/usr/lib/python2.7/dist-packages/dbus/_expat_introspect_parser.py", line 26, in
from xml.parsers.expat import ExpatError, ParserCreate
File "/usr/lib/python2.7/xml/parsers/expat.py", line 4, in
from pyexpat import *
ImportError: /usr/lib/python2.7/lib-dynload/pyexpat.so: undefined symbol: XML_SetHashSalt

W ramach zmyłki – w pakiecie wicd błąd nie jest zgłoszony (i słusznie), za to zgłoszony jest błąd 665346 w Pythonie. I faktycznie, upgrade libexpat1 do 2.1~beta3 (wersja z unstable) pomaga. HTH

Jak zdobyć certyfikat IPv6 i fajną koszulkę za darmo.

No i udało się. Szczerze mówiąc myślałem, że będzie trudniej i nie przypuszczałem, że cel jest tak blisko. Blokada IRC przez HE o której pisałem niedawno okazała się świetnym motywatorem do skończenia testu, czyli osiągnięcia poziomu Sage, który pozwala na odblokowanie dostępu do IRC. No i okazuje się, że prawdą jest to, co chciałem sprawdzić, czyli że certyfkiat IPv6 od HE da się zrobić, nie wydając ani złotówki i korzystając wyłącznie z zasobów (domeny, serwery DNS), dostępnych zupełnie za darmo w Internecie.

Nie zamierzam robić tutoriala krok po kroku – sam proces certyfikacji jest prosty i w sumie daje sporo frajdy (pod warunkiem, że nie trzeba powtarzać kroków kilka razy jak w moim przypadku…), poza tym samo HE daje tutoriale video, ale parę wskazówek się przyda, żeby się nie frustrować niepotrzebnie.

Adresację (tunel) IPv6 za darmo dostaniemy na przykład od samego HE. Z kolei domeny (dobra, subdomeny) za darmo daje na przykład afraid.org w ramach usługi FreeDNS. Niestety, ich NSy nie posiadają adresów IPv6 (żaden!). Można to jednak obejść delegując subdomenę na takie NSy, które posiadają obsługę IPv6. Na przykład te od HE.

Żeby nie było za prosto – wygląda, że jest jakiś problem z cache’owaniem(?) wpisów DNS po stronie HE – w pewnym momencie panel żadną miarą nie chciał przyjąć obsługi domeny, mimo, że powinien (support też tak twierdził). Rozwiązaniem jest dodanie delegacji na wszystkie ns1 do ns5 na he.net. Potem, przy którymś teście co prawda trzeba usunąć ns1, bo test wymaga (IMHO błędnie, powinien sprawdzać czy minimum 1 ma), żeby wszystkie NSy miały adresy IPv6, ale to insza inszość.

I tyle. Warto dodać, że ukończenie certyfikatu IPv6 od HE daje nie tylko możliwość odblokowania dostępu do IRC. Dodatkowo (a może przede wszystkim?) każdy, kto uzyska poziom Sage może otrzymać fajną, geekową, unikatową koszulkę za darmo (wysyłka też) – wystarczy podać rozmiar w panelu HE i potwierdzić adres do wysyłki. Taki – podobno bardzo udany – pomysł HE na popularyzację IPv6.

Zachęcam do zabawy. Mi pozostało wymaksowanie punktów. Osobną kategorią zabawy jest znalezienie błędów (implementacyjnych, nie rzeczowych) w samym teście (można udawać, że się zrobiło pewne rzeczy, nie robiąc ich, ale nie o to oczywiście chodzi). 😉

UPDATE: Szczerze mówiąc, myślałem, że Sage jest więcej, szczególnie, że sporo spotkałem na IRCu. Tymczasem na PLNOG dowiedziałem się, że jest raptem 87 osób w Polsce i ok. 4600 na całym świecie. Więcej statystyk.