Przejdź do głównej zawartości

Linux RHCSA cz.1 - Inicjowanie systemu - botowanie, uruchomienie systemu

Proces uruchomienia i zainicjowania systemu może wydawać się dość skomplikowany szczególnie jeżeli nie miało się z tym do czynienia nigdy wcześniej. Niemniej jednak jest to istotna kwestia przydająca się w przypadku pojawienia się problemów z uruchomieniem się środowiska Linux. 

W momencie uruchomienia komputera pierwszym programem jaki zostaje wystartowany jest BIOS, którego pierwszym zadaniem jest przetestowanie systemu (POST - Power On Self Test), a następnie uruchomione zostają pozostałe urządzenia peryferyjne. BIOS wyszukuje urządzenia i przejmuje nad nimi kontrole. Urządzenia startujące zawierają się w (MBR - Master Boot Record) czyli głównym rekordzie startowym, w pierwszym sektorze dysku twardego. Tam znowu GRUB (Grant Unifiet Bootloader) poszukuje etykiety oznaczonej jako domyślna. Na koniec jądro systemu operacyjnego powołuje do życia proces, którego zadaniem jest uruchomienie całego środowiska. Aby móc rozwiązywać problemy związane z uruchomieniem środowiska, należy dobrze zrozumieć w jaki sposób usługi są uruchamiane oraz zatrzymywane, jak dodawać usługi systemowe do procesu botowania i jak zarządzać samym bootloaderem,

Proces uruchomienia systemu (botowanie).

W momencie uruchomienia środowiska narzędzie GRUB podczas startu wyświetla listę istniejących (zainstalowanych) systemów na danej maszynie i jeżeli nie dokonamy wyboru po określonym czasie, uruchamia system oznaczony jako domyślny. Po uruchomieniu inicjowane jest jądro systemu, które w dalszej kolejności rozpoczyna zarządzanie nad urządzeniami, na jakie dana konfiguracja się składa. W zależności od tego, w jaki sposób GRUB został skonfigurowany proces uruchomienia może być widoczny lub niewidoczny dla użytkownika. Wszystko co dzieje się w momencie uruchamiania środowiska zostaje zalogowane do pliku :

/var/log/dmesg

Jeżeli sterowniki systemu są na właściwym miejscu jądro systemu wywołuję : 

/sbin/init 

Chociaż na potrzeby egzaminów RedHat nie jest wymagane przeprowadzanie testów sprzętowych w realnych sytuacjach pomocna może okazać się komenda : # lsmod

Od wersji RedHat 6 pojawiło się nowe narzędzie botowania o nazwie UpStart zastępując tradycyjnie używane SysV init. Nowe rozwiązanie zaprojektowano tak by szybciej uruchamiać środowisko. Ponieważ wiele środowisk opartych o RedHat wciąż działa na wersjach 5, warto wiedzieć, w jaki sposób używa się SysV init. 

Program "init" jest pierwszym procesem powoływanym do życia przez jądro systemu. Stanowi on, jak gdyby "punkt zapalny" systemu i odpowiada za kolejne etapy uruchomienia systemu, wraz z konfiguracją wprowadzoną przez użytkownika. Konfigurację dotyczącą uruchomienia systemu znajdziemy w pliku : 

/etc/inittab

Zawartość pliku inittab :

#
# inittab This file describes how the INIT process should set up
# the system in a certain run-level.
#
# Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
# Modified for RHS Linux by Marc Ewing and Donnie Barnes
#
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:


# System initialization.


si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6



# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# When our UPS tells us power has failed, assume we have a few minutes


# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have power installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 “Power Failure; System Shutting Down”


# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c “Power Restored; Shutdown Cancelled”


# Run gettys in standard runlevels


1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon


Z zawartości pliku /etc/inittab wynika, iż domyślnym poziomem uruchomienia jest poziom 5, który oznacza powłokę graficzną systemu z poziomu której dostępne są programy znajdujące się /etc/rc.d/rc#.d .

By zmienić poziom uruchamiania systemu w w/w pliku odnajdujemy linie : 

id:5:initdefault:
i zmieniamy na 
id:3:initdefault:

Po wykonaniu powyższego system uruchomi się z poziomu konsoli (terminala).  

Komentarze

Najczęściej czytane w tym miesiącu

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

Generowanie testowych plików o określonej wielkości