Systemy BSD w praktyce – instalacja i testy OpenBSD na Acer Emachines EM350
15.07.2016 | aktual.: 15.07.2016 13:58
Zainspirowany wpisem użytkownika dragon321 postanowiłem przetestować, jak OpenBSD, system z rodziny BSD, poradzi sobie poza maszyną wirtualną jako komputer do użytku domowego. Użyłem do tego starego już netbooka Emachines EM350
Uprzedzając komentarze typu
Ale to system na firewalle, a nie na Desktop!
Mam tego świadomość, a ten wpis ma głównie charakter poradnika, jak poprawnie zainstalować i skonfigurować ten system.
Dlaczego akurat OpenBSD, a nie Free, Ghost czy DragonFlyBSD?
OpenBSD ma kilka zalet, dzięki którym przeważa nad innymi – kładzie duży nacisk na bezpieczeństwo i posiada bardzo dobre wsparcie sprzętowe. W sieci jest bardzo mało poradników, jak zainstalować go, by mógł współpracować z innymi systemami, a nie powstał ani jeden, jak zainstalować go na zaszyfrowanej partycji, tak, aby mógł działać z innymi systemami na jednym dysku. Ostrzegam – wpis będzie długi, a zrzuty ekranu z instalacji musiałem robić na maszynie wirtualnej. Warto przed instalacją przeczytać FAQ znajdujące się na stronie systemu – można tam znaleźć dużo przydatnych informacji.
Krok pierwszy, czyli rozpoznanie sprzętu
Rozpoznanie naszej karty graficznej i sieciowej możemy wykonać za pomocą polecenia
inxi -b
na GNU/Linux lub używając programu Speccy na Windows
Jeśli posiadasz:
- kartę graficzną AMD Radeon z architekturą CGN lub Nvidia GeForce nowszą niż GTX 3xx
- Grafikę Intela z serii Skylake
- Kartę sieciową, której nie ma na tej liście
- Grafikę hybrydową (Muxless Graphics)
To zabawa z OpenBSD odpada, co nie oznacza, że to już koniec z *BSD – można spróbować Free lub GhostBSD, które mają wsparcie dla własnościowych sterowników Nvidii.
Krok drugi, czyli przygotowanie partycji dla nowego systemu
Tu sprawa jest prosta – wystarczy, że za pomocą Gparted lub jakiegokolwiek innego narzędzia wydzielisz dodatkową partycję ext2 - może być każdy inny typ. Dlaczego nie UFS? Bo będziemy instalować system na tzw. Softraid, czyli programowy RAID, który będzie zaszyfrowany. Jeśli nie chcesz mieć zaszyfrowanego systemu, możesz po prostu stworzyć partycję UFS dla OpenBSD i jako swap używać Linuksowej partycji wymiany lub stworzyć drugą partycję specjalnie do tego celu. Zrzut ekranu, jak to powinno wyglądać:
Krok trzeci, czyli instalacja systemu
Ściągamy obraz ISO z dowolnego serwera lustrzanego podanego na tej liście, a najlepiej któregoś z Polski np. tego. Wybieramy najnowszą wersję systemu (Obecnie 5.9) i architekturę (w moim wypadku amd64) i pobieramy obraz ISO install59.iso lub install59.fs jeśli będziemy używać pendrive to tego celu. Obraz możemy nagrać na płytce z pomocą np. Xfburn lub na Pendrive za pomocą komendy dd. Po uruchomieniu instalacji obraz powinien wyglądać tak:
Wybieramy shell, by móc skonfigurować partycję dla OpenBSD oraz nasz programowy RAID. Najpierw sprawdźmy, jakie oznaczenia mają nasze dyski używając do tego polecenia
dmesg | grep "^[sw]d"
W moim wypadku było to wd0, jednak na maszynie wirtualnej był to sd0. Wyjaśnienie tych oznaczeń znajduje się w FAQ. Teraz musimy zmodyfikować MBR dla wcześniej stworzonej partycji dla OpenBSD używając polecenia
fdisk -e sd0
Gdzie sd0 to twój dysk. Na tym etapie trzeba być bardzo ostrożnym, by niczego nie zepsuć, bo możemy się pożegnać z MBR. Wpisujemy p, aby znaleźć naszą partycję przeznaczoną dla OpenBSD.
Na maszynie wirtualnej była to 3 partycja, a na netbooku 4 – pamiętajmy, że fdisk numeruje je od zera. Teraz gdy znamy numer naszej partycji, wydajemy komendę
setpid x
gdzie x to numer partycji. Fdisk zapyta o Partition id - podajemy A6, które odpowiada partycji OpenBSD. Zapisujemy zmiany poleceniem write i wychodzimy z narzędzia fdisk, wpisując q lub quit. Teraz tworzymy partycję RAID, która będzie konieczna do zbudowania programowego RAID. Wydajemy polecenie
disklabel -E sd0
i wybieramy opcję wyświetlenia partycji, czyli p.
Mamy 3 partycje – c,i oraz j. Pierwsza to litera oznaczająca cały dysk, druga to partycja /boot, a trzecia to system — nie została rozpoznana, bo była to partycja LVM. Dodajemy kolejną partycję (w tym przypadku k) poleceniem
a k
Następnie wybieramy offset i rozmiar, który pojawi nam się przy wydawaniu polecenia p jako
OpenBSD area: offset-rozmiar
Niestety nie posiadam zrzutu ekranu z tego polecenia. Teraz wybieramy system plików, wpisując RAID i zatwierdzając Enterem. Następnie zapisujemy zmiany poleceniem w i wychodzimy za pomocą polecenia q.
Teraz przystępujemy do stworzenia zaszyfrowanego programowego RAID 0 poleceniem
bioctl -c C -l /dev/sd0k softraid0
Gdzie sd0k to nasza partycja k na dysku sd0. Podajemy powtórnie hasło (można też użyć partycji-klucza, ale to wymaga stworzenia dodatkowej partycji na innym urządzeniu np. karcie SD czy pendrive) do naszego systemu i zapamiętujemy, jako który dysk został podłączony nasz programowy RAID – hasło też warto zapamiętać :)
Przed instalacją warto sprawdzić, czy nasza karta sieciowa wymaga dodatkowego firmware – jeśli po wpisaniu komendy
dmesg | grep configured
znajdziemy gdzieś informację device not configured, to musimy najpierw połączyć się np. za pomocą tetheringu w smartfonie. Po podłączeniu smartfona zostanie wyświetlona nazwa interfejsu tetheringu USB - z reguly jest to urndis. Potem trzeba uzyskać lokalne IP za pomocą polecenia
dhclient urndis0
i uruchomić skrypt
fw_update
który pobierze niezbędny firmware. Wydajemy polecenie exit i przystępujemy do instalacji systemu. Tu już z górki – ustawiamy układ klawiatury na pl, nazwę komputera, konfigurujemy WiFi i Ethernet, hasło roota i tworzymy użytkownika.
Przy wybieraniu dysku do inicjalizacji używamy tego, który stworzyliśmy przy zbudowaniu Softraid.
Wybieramy whole MBR i tworzymy własny układ partycji wybierając c i tworzymy partycję: najpierw a b, czyli partycja wymiany, a potem a a, czyli partycja dla naszego systemu.
Jeśli system instalujemy z płytki, przy pytaniu, skąd instalować system wybieramy cd, a jeśli pendrive wybieramy disk, odpowiadamy no na pytanie, czy jest on zamontowany i wybieramy nasz pendrive z listy dysków. Ja instalowałem z płytki z zewnętrznego napędu CD, bo pendrive odmawiał posłuszeństwa. Na pytanie, czy instalować system bez podpisu SHA256 odpowiadamy yes – powód tego jest wyjaśniony w FAQ.
o zainstalowaniu systemu powinniśmy zostać powitani takim komunikatem:
Krok czwarty, czyli konfiguracja GRUB
Teraz restartujemy system poleceniem reboot i wracamy do Linuxa, by stworzyć dla OpenBSD wpis w GRUB. Można użyć do tego narzędzia Grub customizer i stworzyć wpis ustawiając tryb Chainloader i wybierając partycję z OpenBSD (Dalej jest widziana jako ext2):
Po zapisaniu możemy już Wybrać nasz system z listy Gruba po restarcie komputera. Teraz zaczyna się największa zabawa – konfiguracja systemu. Po uruchomieniu systemu logujemy się jako root i wydajemy kolejno polecenia: [code=shell][/code]
touch /etc/pkg.conf
echo installpath=ftp.icm.edu.pl > /etc/pkg.conf
Dzięki nim dodajemy serwer lustrzany, z którego mają być pobierane nowe pakiety. Teraz przetestujmy, czy wszystko jest ok, instalując edytor nano, który na pewno się jeszcze przyda.
pkg_add nano
Jeśli poprawnie skonfigurowaliśmy sieć podczas instalacji, to edytor nano zainstaluje się bez problemu. Teraz zainstalujemy środowisko Xfce4, dzięki któremu system będzie nadawał się do pracy bez konsoli. Używamy do tego polecenia
pkg_add xfce
Po zakończonej instalacji tworzymy plik doas.conf. Doas to odpowiednik sudo, który pojawił się w OpenBSD 5.8 i jest bardzo prosty do skonfigurowania. Używamy do tego polecenia
nano /etc/doas.conf
w pliku wpisujemy dwa wiersze:
permit nopass keepenv root as root
permit keepenv user as root
gdzie user to nazwa użytkownika stworzonego podczas instalacji. Teraz wychodzimy z roota, wpisując
su user
(gdzie user to twój użytkownik) i startujemy Xfce poleceniem
startxfce4
Teraz, już w terminalu Xfce doinstalujemy resztę aplikacji poleceniem:
doas pkg_add xfce-extras slim chromium libreoffice libreoffice-i18n-pl gimp inkscape shotwell evince audacious audacious-plugins wget toad firefox firefox-i18n-pl
Z tej listy nie można pominąć slim oraz toad – pierwszy to tzw. Display Manager, który będzie nam niezbędny do zalogowania się (chyba że ktoś woli za każdym razem wklepywać startxfce4), a drugi umożliwia automatyczne montowanie urządzeń wymiennych takich jak pendrive. Niestety nie udało mi się zmusić GDM do działania z Xfce, a jeszcze nie ma portu LightDM, który byłby chyba najlepszy. Teraz musimy stworzyć plik .xinitrc, z którego Slim wczytuje sesję użytkownika. Robimy to w terminalu za pomocą polecenia
nano ~/.xinitrc
W pliku wpisujemy następujące wiersze: [code=shell][/code]
export LC_CTYPE="pl_PL.UTF-8"
export LANG="pl_PL.UTF-8"
exec ck-launch-session startxfce4
Dzięki eksportowi zmiennych środowiskowych LC_CTYPE oraz LANG aplikacje wyświetlają się w języku polskim, a dzięki użyciu ck‑launch-session można z poziomu Xfce wyłączyć system czy go uśpić. Kolejnym plikiem jaki stworzymy będzie rc.conf.local w folderze etc. Robimy to poleceniem
doas nano /etc/rc.conf.local
Podajemy hasło użytkownika i w edytorze dopisujemy następujące wiersze:
multicast_host=YES
hotplugd_flags=""
apmd_flags="-A"
pkg_scripts="messagebus toadd slim"
Dzięki nim włączony zostanie demon zarządzania energią, automatycznego montowania i menedżer wyświetlania. Ponieważ partycję wymiany mamy na programowym RAID, który jest zaszyfrowany, nie ma potrzeby powtórnego szyfrowania partycji wymiany, która w OpenBSD jest domyślnie szyfrowana. Aby wyłączyć szyfrowanie partycji wymiany, trzeba skopiować plik sysctl.conf z folderu /etc/examples do folderu etc poleceniem
doas cp /etc/examples/sysctl.conf /etc/sysctl.conf
i za pomocą edytora nano:
doas nano /etc/sysctl.conf
usunąć znak # z linijki zawierającej tekst vm.swapencrypt.enable=0. Ostatnią istotną zmianą jest zwiększenie limitów pamięciowych dla zwykłego użytkownika. Można to zrobić zmieniając plik login.conf w folderze etc poleceniem
doas nano /etc/login.conf
i przy grupie default:\ zmienić linijki :datasize-max i :datasize-cur np.
:datasize-max=512M:\
:datasize-cur=256M:\
na
:datasize-max=1024M:\
:datasize-cur=512M:\
W zależności od liości posiadanego Ramu. Aby zaktualizować bazę, trzeba wydać polecenie
doas cap_mkdb /etc/login.conf
Warto teraz skonfigurować sobie panele Xfce i wygląd, a później zrestartować system poleceniem
doas reboot
Po uruchomieniu systemu wyświetli się domyślny ekran logowania slim, a po zalogowaniu będziemy mieli gotowy do pracy system. Możesz sobie pogratulować i założyć swoją czapeczkę z folii aluminiowej.
Teraz pora na kilka testów!
Dla porównania na Xubuntu Chromium osiągnął około 350 punktów, a Midori 512. OpenBSD jest niestety nieco wolniejszy niż Xubuntu, ale myślę, że jest to spowodowane słabym sprzętem – różnice powinny być dużo mniejsze na silniejszej maszynie. Poza tym spadkiem wydajności muszę powiedzieć, że działa praktycznie wszystko - łącznie z dźwiękiem i bezproblemowym usypianiem. Jedyny problem, na który jak na razie natrafiłem to konieczność ręcznego montowania karty SD - z czytnika kart na USB działa bez problemu.
Postanowiłem, że podłączę do netbooka tablet graficzny Wacom Bamboo 3 i przetestuję Inkscape – tablet zadziałał do razu.
Jeśli wytrwałeś aż do tego momentu, to w nagrodę otrzymujesz obrazek tego ładnego kota z blinem:
Jeśli macie jakieś uwagi, pytania czy pomysły na przetestowanie tego systemu piszcie! Chętnie posłucham uwag i przeprowadzę inne testy. Dziękuję za uwagę i do następnego wpisu!