O tworzeniu nośników instalacyjnych

Przyczyną, dla której coraz rzadziej dystrybutorzy tworzą pełnowymiarowe płyty z wszystkimi pakietami jest fakt, że systemy linuksowe wiecznie się starzeją. Praktycznie codziennie można ściągnąć kilka nowych wersji różnych pakietów. Dlatego nie warto jest tworzyć nośnika instalacyjnego, zawierającego kompletny system, tylko dlatego, żeby po instalacji zaktualizować wszystkie ściągnięte pakiety. Szkoda czasu po prostu. Dystrybutorzy wpadli więc na pomysł instalacji bezpośrednio z Internetu. Nośniki instalacyjne przygotowywane są tylko wtedy, gdy z powodu jakichś modyfikacji nie działają już one z nowymi repozytoriami. Przygotowanie takiego nośnika jest w większości zautomatyzowane, korzysta się ze starych skryptów, gdyż nowe są ściągnięte z chwilą podłączenia do Internetu. Stare jest też jądro, które nie zawsze chce uruchomić każdy sprzęt, aktualizuje się je oczywiście na dysku w pakiecie. Po instalacji wszystkich paczek przychodzi czas na konfigurację. Należy określić wszystkie partycje, które chcemy montować. Jeżeli stworzyliśmy sobie osobną partycję /home, musimy także ją wskazać i wpisać do /etc/fstab. Ostatnio modne zrobiło się korzystanie z tzw. UUIDów, gdzie każdemu urządzeniu wygenerowany zostaje indywidualny kod identyfikacyjny. Dzięki temu dysk można przenosić między gniazdami.

Wybór pakietów i konfiguracja sieci

W dalszym ciągu instalator pyta o wybór pakietów. Tutaj już wszystko zależy od dystrybucji. W gentoo wyboru pakietów nie ma po prostu instaluje się, a właściwie rozpakowuje plik stage na dysk i oto większa część instalacji. W przypadku płyt miniiso instalowane są podstawowe pakiety, które jednak mogą pochodzić z płyty, ale częściej pochodzą z Internetu. Płyta tutaj przygotowana jest głównie po to, aby użytkownik mógł się połączyć z Internetem. Jest to problem dla użytkowników neostrad, którzy posiadają przestarzałe modemy USB zamiast skrętki, podpinanej pod kartę sieciową, działającej na zasadzie DHCP. Bez DHCP też można w miarę łatwo wpisać na sztywno IP i połączyć się, jeśli mamy ruter. Dalsza część instalacji przebiega już bezproblemowo, jednak połączenie się to najtrudniejsza część w niektórych konfiguracjach. Jeśli mamy laptop z modemem 3G na USB, także możemy spodziewać się sporych problemów. W tym przypadku lepiej sobie zawczasu przygotować firmware i skrypt konfigurujący, tak aby włączyć je w konsoli tekstowej poza instalatorem, albo podłączyć nasz laptop do normalnej sieci za pomocą wifi lub skrętki. Dalsza instalacja przebiega z Internetu i wymaga najczęściej ściągnięcia kilku GB danych, więc tutaj z modemem 3G także nie poszalejemy. Można też zastosować pełnowymiarowe płyty.

Konfiguracja poinstalacyjna – bootloader

Instalator po uruchomieniu najczęściej pyta o tak podstawowe rzeczy jak data i czas, później prosi o określenie punktów montowania. Punkty montowania to miejsca, gdzie system będzie zapisywał dane. Najczęściej należy określić punkt montowania dla korzenia systemu plików (/), wskazując mu odpowiednią partycję. Oczywiście nie musimy korzystać z partycji, możemy ją utworzyć w pliku czy na dyskach RAID, wszystko jedno, byle dało się to potem uruchomić jakoś, chyba że nie chcemy naszego systemu uruchamiać. Kiedyś Linux potrzebował jeszcze osobnej partycji /boot na dane, związane z uruchamianiem: menedżer ładowania typu GRUB czy LiLO. W tej chwili ciągle wymagana jest ta partycja w systemach typu Fedora, gdyż przydaje się do instalacji aktualizacji. Nowsze wersje wgrywają na /boot swoje pliki. Kiedyś tworzyło się też partycję swap do wymiany. Polega to na tym, że w razie braku fizycznej pamięci RAM, system operacyjny zapisuje dane niemieszczące się w pamięci na dysk twardy. Jest to znacznie wolniejsze i nie sprawdza się za bardzo w praktycznym użytkowaniu. W tej chwili komputery posiadają tyle pamięci RAM, że zaprzestano używania tej funkcjonalności. Może się ona przydawać jeszcze jako wentyl bezpieczeństwa, jeśli pamięci czasem nam zabraknie z powodu błędu jakiegoś programu, który wszystko zajmie.

Trudności z bootowaniem linuksa

Gdy już wybierzemy naszą płytę instalacyjną x86 dla procesora 32bitowego i x86_64 dla 64bitowego, najwyższy czas ją zbootować. Bootowanie to proces, polegający na uruchomieniu przez BIOS z sektora rozruchowego płyty programu, który przejmie kontrolę nad komputerem i zacznie uruchamiać system operacyjny w tym przypadku środowisko przeznaczone do jego instalacji. Wiele Linuksów zrezygnowało z tradycyjnych instalatorów na rzecz tych, uruchamianych w normalnym środowisku pracy. Nagrywamy płytkę live cd, uruchamiamy z niej komputer i na niej dopiero znajduje się instalator. Ma to swoje wady i zalety. Do wad należy z pewnością mniejsza kompatybilność. Stare komputery mogą mieć problemy z uruchomieniem wszystkich funkcji z płyty i w efekcie się zawieszać, podobnie laptopy. Do zalet należy kompletne środowisko pracy, które może posłużyć do zmodyfikowania kilku rzeczy na dysku już w trakcie instalacji. Najlepsze jest tutaj gentoo, gdzie także instalacyjną płytą jest płyta live, jednak nie posiada ona instalatora. Po prostu wszystkie kroki, które zostałyby wykonane przez instalator, wykonywane są przez użytkownika w konsoli. Dlatego gentoo nie musi być koniecznie instalowane z takiej płyty, wystarczy w zupełności jakaś działająca dystrybucja linuksa. Normalnie jednak jest instalator.

Pakiety binarne wciąż najpopularniejsze

Dystrybucje binarne posiadają pakiety w formie już skompilowanych programów i umożliwiają ich ściąganie przez menedżer pakietów. Kompilacja programu jest średnio skomplikowaną procedurą, jednak zajmuje sporo czasu procesora i trwa trochę czasu, w zależności od szybkości komputera. Wielkie dystrybucje prowadzą coś w rodzaju build serwerów, gdzie użytkownicy przesyłają po prostu przez formularz plik build, będący skryptem w bashu, który to serwer przetwarza i kompiluje program. W ten sposób powstają całe bazy slackbiuldów lub innych buildów, które służą do automatycznego generowania pakietów dla danej dystrybucji, ale nie tylko. Takie serwery są czasem współdzielone przez inne dystrybucje. Po co w ogóle pakiety z konkretnym programem dla każdej dystrybucji z osobna? Mówi się, że właśnie tutaj najwięcej energii marnuje się w Linuksie na kompilowanie programów. Jest to poniekąd prawda, jednak zajmują się tym osoby, które to lubią i chcą to robić, a nie zajmowałyby się na przykład programowaniem. Poza tym programy po prostu muszą zostać przygotowane pod konkretny system, jako że te systemy się różnią i różnią się też menedżery pakietów. Uważam jednak, że powinna zostać wprowadzona pewnego rodzaju standaryzacja, tak żeby mniej ważne pakiety można było bezproblemowo zainstalować dla każdej dystrybucji.

Optymalizacje dla architektury procesora

W określeniu prędkości i responzywności systemu przydatne jest raczej określenie, jakiego środowiska graficznego będzie on używać, ile usług wystartuje przy starcie i jakie modyfikacje zostały wprowadzone przez dystrybutora. Przereklamowana jest także rola kompilacji jądra z wyrzuceniem niepotrzebnych modułów i ustawieniem flag pod procesor. Co prawda daje to pewne zyski, szczególnie przy grach, jednak taka kompilacja jest niewygodna i czas zaoszczędzony na każdorazowe kompilowanie, lepiej przeznaczyć na nieco wolniejsze działanie. To samo tyczy się gentoo i menedżera pakietów emerge. Ilość energii elektrycznej przeznaczona na kompilację każdej aktualizacji raczej nie opłaca się, podobnie spowolnienie systemu przez to spowodowane nie jest najmądrzejsze, jeśli chodzi o to, żeby system przez cały czas szybko działał. Wydaje się to trochę sztuką dla sztuki, tak żeby można się było pochwalić, o jaki to ja mam szybki system. Lepiej już zainstalować coś minimalistycznego, dokonfigurować do swoich potrzeb i włączyć lekkie środowisko graficzne wtedy znacznie szybciej osiągniemy efekt dużej responzywności i nie będziemy musieli wiecznie czegoś kompilować dla najwyżej piętnastu procent zwiększenia szybkości działania. Dystrybucje, które to umożliwiają, nazywane są dystrybucjami binarnymi.

Wymagania sprzętowe pod dystrybucje

W trakcie szukania płyt, a raczej obrazów płyt, należy sobie zdać sprawę z tego, jaki właściwie komputer posiadamy. Czy ilość pamięci RAM wystarczy do poprawnego działania dystrybucji i środowiska graficznego, którego chcemy używać i ile miejsca na dysku możemy na system przeznaczyć oraz czy trzeba nam robić wolne miejsce, zmniejszając partycję windowsową. Jeśli tak, musimy się poznać trochę na partycjonowaniu. Jeśli wiemy niewątpliwie, że posiadamy procesor sześćdziesięciocztero bitowy, możemy się zająć ściąganiem obrazu oznaczonego x86_64. W przeciwnym wypadku trzeba nam skorzystać z obrazów i386, i486, i586 lub najnowszych i686. Wszystko zależy od architektury procesora, choć w tej chwili chyba nie ma w powszechnym użytku komputerów na architekturze gorszej niż i686. Istnieją jeszcze optymalizacje dla Athlonów i innych procesorów, jednak nie każdy procesor ma system przygotowany specjalnie pod niego. Kłania tu się znowu gentoo, gdzie w kompilatorze możemy wpisać flagi specjalnie przeznaczone pod nasz sprzęt i później w taki sposób kompilować programy. Przy dzisiejszej mocy procesorów i w sumie nikłej optymalizacji programów pod architektury, poza nielicznymi przypadkami typu przekodowywanie materiału video, wszystko jedno. Nie będzie architektura miała większego znaczenia dla działania.

Root i zwykły użytkownik

Po instalacji systemu z miniiso najczęściej musimy go dopiero skonfigurować. Zastajemy bowiem system w stanie, gdzie nie posiadamy ani środowiska graficznego, ani nawet X serwera, który jest wymagany do jego działania. Użytkownik jest być może tworzony na etapie instalacji, ale i to nie zawsze się dzieje. Po pierwsze musimy podać hasło roota, tj. administratora systemu. Trzeba pamiętać, że zwykły użytkownik w Linuksie może zapisywać do katalogu domowego (swojego) i do katalogu /tmp, który znajduje się w ramdysku. Nie zawsze jednak i to mu wolno. Dlatego ważne jest, aby do konfiguracji mieć konto roota, któremu wolno wszystko, w tym system zniszczyć. Użytkownik nie ma absolutnie takiej możliwości, i głównie dlatego Linuksy działają po 20 lat bez przerwy, w odróżnieniu od Windowsa, gdzie uprawnienia zwykle kuleją, a użytkownik dostaje po instalacji konto administratora. Po stworzeniu hasła roota należy stworzyć zwykłego użytkownika oraz nadać jemu hasło. Hasła są bardzo ważne, gdyż decydują o bezpieczeństwie naszego komputera. Jeżeli wystawimy do Internetu jakąś usługę typu serwer ssh lub serwer stron internetowych, przekonamy się, że pozostawienie pustego hasła jest bardzo złym pomysłem. Lepiej poza tym takich usług nie wystawiać bez wyraźnej potrzeby i zabezpieczać je. Następnie instalujemy środowisko.

Konfiguracja X serwera – dawniej i teraz

Aby zainstalować środowisko graficzne, koniecznie potrzebujemy X serwera, który potrafi rozmawiać z kartą graficzną. Można się zdziwić jak to jest, że widzimy obraz, skoro nie mamy X serwera. Otóż jądro linuksa posiada także sterowniki do grafiki, zwane buforem ramki. Właściwie to x serwer korzysta ze sterowników jądra, bo nawet komercyjna nvidia czy ati instalowane są jako muduły jądra. Panuje tu pewien rozgardiasz i problem kompetencyjny, szczególnie że X serwer przeznaczony jest generalnie na platformy uniksowe, a niekoniecznie tylko na linuksa. Po jego zainstalowaniu kolejnym krokiem jeszcze pięć lat temu była konfiguracja: odpowiedź na szereg pytań lub stworzenie na podstawie szablonu pliku /etc/X11/xorg.conf. Była to czynność, z którą zwykle nie radzili sobie początkujący użytkownicy i nic dziwnego. Mnogość opcji do wpisania i obszerność dokumentacji skutecznie uniemożliwiała poprawną konfigurację tego potwora. Na szczęście istniało kilka konfiguratorów, które, wykrywając sprzęt, same tworzyły plik konfiguracyjny, który potem wystarczyło tylko lekko poprawić. Dzisiaj /etc/X11/xorg.conf nierzadko w ogóle nie istnieje, chyba że ktoś potrzebuje zaawansowanych, niestandardowych ustawień. Zamiast tego powstały pojedyncze pliki z prefiksami cyfrowymi, konfigurujące konkretny aspekt działania.

Uprawnienia i system graficzny

I tak będziemy musieli poprawić plik konfiguracyjny, jeśli chcemy mieć polską klawiaturę lub skorzystać z innego sterownika graficznego (stosuje się to najczęściej przy komercyjnej nvidii lub ati). W tej chwili jednak xorg dokładnie wie, co ma robić i nie trzeba mu tego wpisywać w plik konfiguracyjny. Wszystko jest wykrywane automatycznie. Problemem kiedyś było ustawienie odpowiedniej częstotliwości odświeżania na monitorze, teraz w dobie monitorów LCD nikt na to nie zwraca szczególnej uwagi. Powoli zapomina się o xorgu. Po instalacji ików i środowiska graficznego czas je jakoś uruchomić. Nie jest to takie proste. Użytkownik potrzebuje pewnych uprawnień do ich działania. Najprościej przy montowaniu systemów mających uruchamiać środowisko graficzne, podstawiając przed skryptem np. startkde czy gnomesession, nazwę programu zarządzającego uprawnieniami: cklaunch. Dzięki temu będziemy mogli łatwo konfigurować za pomocą grup i mechanizmu policykit, co użytkownikowi wolno, a co nie. Domyślnie jest to wszystko skonfigurowane całkiem znośnie, poza grupami. W trakcie dodawania zwykłego użytkownika pamiętajmy, żeby zapisać go do grupy users, audio, disks, bin, storage, video, games i innych przydatnych. Na podstawie tego udzielane są autoryzacje systemu policykit i innych furtek do uprawnień roota.