Felhasználói eszközök

Eszközök a webhelyen


oktatas:linux:boot

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

oktatas:linux:boot [2019/08/16 20:05] (aktuális)
admin létrehozva
Sor 1: Sor 1:
 +[[oktatas:​linux|<​ Linux]]
 +
 +====== Boot ======
 +
 +  * **Szerző:​** Sallai András
 +  * Copyright (c) Sallai András, 2011, 2013, 2017
 +  * Licenc: GNU Free Documentation License 1.3
 +  * Web: http://​szit.hu
 +
 +===== Bevezetés =====
 +
 +A hibaelhárításhoz fontos ismerni a rendszerindítási folyamatot.
 +Az alábbi leírásban megnézzük pontról-pontra mi történik a 
 +rendszer indulásakor. A leírás egy része a https://​wiki.debian.org/​systemd
 +oldal egy részének a fordítása.
 +
 +
 +===== Boot folyamatok =====
 +
 +A következő felsorolásban,​ megtekinthetjük milyen rendszerek vesznek részt a rendszer elindulásában,​ sorrendben:
 +
 +  * BIOS -- a BIOS futtatja a MBR-ben található kódot
 +  * MBR -- az MBR futtatja a GRUB-ot
 +  * GRUB -- A GRUB futtatja kernelt
 +  * kernel -- futtatja az /sbin/init folyamatot
 +  * init -- futtatja a futási szintű programokat
 +  * futási szinteken induló programok
 +
 +
 +A gép bekapcsolása után a memória üres, a processzor alapállapotba kerül. ​
 +A végrehajtást a gép BIOS-a számára adja át, amelynek címe:
 +  0xFFFF FFF0
 +A BIOS a hardver tesztelése és előkészítése után, betölti az indítható eszköz
 +fő betöltőszektorát,​ az MBR-t. Az MBR átadja a vezérlést az indítani kívánt
 +eszköz betöltő szektorára (boot szektor). A betöltő szektor elindítja a 
 +kernelt, ha kell paraméterezve. ​
 +
 +A kernel betöltése után szükségünk van egy rendszerpartícióra. Ha fájlrendszer meghajtója
 +modulként van fordítva, akkor ez a rendszerpartíció közvetlenül nem csatolható. ​
 +A megoldás egy initrd nevű képfájl és a linuxrc script vagy bináris használata jelenti. ​
 +Ezek segítségével felcsatolható a valódi rendszerpartíció,​ ahol elindul a systemd. ​
 +A Debian 9 rendszeren ez valójában még mindig egy init folyamat, de már a systemd
 +része. A CentOS 7-en már konkrétan a systemd nevű démon indul.
 +
 +A systemd a beállításoknak megfelelően elindítja a rendszer szolgáltatásait. ​
 +
 +A rendszer a SysVinit korában úgynevezett futási szinteket tartalmazott. Minden futási szinten más-más szolgáltatás,​ indult, állt le. A Systemd rendszerben a számokat nevek váltják le, 
 +amelyeket nem szinteknek, hanem céloknak (target) nevezünk. ​
 +
 +===== A systemd =====
 +
 +A systemd a linuxos rendszer és szolgáltatásainak menedzsere. ​
 +A DebianJessie változata óta a Debian rendszerekben alapértelmezés
 +a SysV után. A systemd kompatibilis a SysV-al és az LSB init scriptekkel. ​
 +
 +A systemd tulajdonságai:​
 +  * agresszív párhuzamosságot biztosít
 +  * socket és D-Bus aktiválást használ a szolgáltatások indításához
 +  * a démonok igény szerint variálva indíthatók
 +  * tranzakciós függőségkezelési logikát alkalmaz
 +  * a linuxos cgroupok segítségével követi a folyamatokat
 +  * támogatja a pillanatfelvételt és a helyreállítást
 +  * támogatja a mount és automount pontokat
 +
 +
 +Az induló rendszeren a systemd kapja a 1-es PID-et. A Debian ps ax kimenete
 +megtéveszthet minket, mert létezik a /sbin/init, ami valójában egy
 +szimbolikus link a /​lib/​sysmtemd/​systemd állományra. ​
 +
 +A systemd feladatai unitokba vannak szervezve. A legáltalánosabb unitok a
 +szolgáltatás (.service), csatolási pont (.mount), eszközök (.device),
 +socketek (.socket) vagy az időzítők (.timer). A példa kedvééért a 
 +a secure shell démon unitja ssh.service.
 +
 +Minden unit egy önálló konfigurációs fájlban van definiálva.
 +A unit fájlok kiterjesztése mutatja annak típusát. ​
 +A unitok a /​lib/​systemd/​system könyvtárban találhatók. ​
 +Ha egy azonos nevű fájl létezik a /​etc/​systemd/​system könyvtárban,​
 +akkor a systemd figyelmen kívül hagyja a /​lib/​systemd/​system
 +könyvtárban lévőt. A rendszergazda a /​etc/​systemd/​system könyvtárban
 +elhelyezett fájlokkal szabja testre a rendszert. Egyes unitokat
 +a systemd úgy állít elő, hogy a fájlrendszerben nem tartozik hozzá
 +állomány. ​
 +
 +A systemd minden szolgáltatást egy erre a célra kijelölt vezérlőcsoportba
 +(cgroup) helyez. A modern kernelek támogatják az erőforrások csoportok
 +alapján történő elosztását. ​
 +
 +
 +
 +
 +
 +
 +
 +
 +===== Függelék =====
 +
 +==== A SysVinit futási szintjei ====
 +
 +
 +Nyolcféle futási szinttel van dolgunk. ​
 +
 +| 0 | A rendszer leállásakor végrehajtódó műveletek. |
 +| 6 | Újraindításkor végrehajtandó műveletek. |
 +| S | A rendszer indulásának egy fázisában egyfelhasználós mód.  |
 +| 1 | Alaprendszert indító egyfelhasználós mód |
 +| 2 | Általános több felhasználós mód (Debian GNU/Linuxon alapértelmezés). |
 +| 3 | Általános több felhasználós mód. |
 +| 4 | Általános több felhasználós mód. |
 +| 5 | Általános több felhasználós mód. |
 +
 +
 +Az aktuális futási szint a következő paranccsal kérdezhető le:
 +  runlevel
 +
 +Az eredmény például:
 +  N 2
 +Az eredményben az előző futási szint is megjelenik. Ha az előző "​N",​ akkor
 +nem volt még más futási szint.
 +
 +
 +Minden futási szintnek van egy könyvtára,​ ahova scripteket linkelünk be 
 +szimbolikusan. Ezek a scriptek lefutnak az adott futási szintre lépéskor. ​
 +
 +Az egyes futási szinteknek megfelelő könyvtárak Debian GNU/​Linuxon:​
 +  /etc/rc0.d
 +  /etc/rc1.d
 +  /etc/rc2.d
 +  /etc/rc3.d
 +  /etc/rc4.d
 +  /etc/rc5.d
 +  /etc/rc6.d
 +  /etc/rcS.d
 +
 +Mint azt fentebb említettük ide nem szokás állományokat másolni, ide csak
 +linkelünk. Az egyes szolgáltatások scriptjei a következő könyvtárban
 +szokás elhelyezni:
 +  /​etc/​init.d/​
 +Ebből a könyvtárból linkelünk az egyes futási szintekre. ​
 +
 +Ha belenézünk rc0.d, stb, könyvtárba,​ azt látjuk, hogy minden
 +link egy S vagy K betűvel kezdődik, majd egy kétjegyű szám követi. ​
 +Az S karaktert akkor használjuk,​ ha azt szeretnék, hogy az adott 
 +futási szintre lépre az adott szolgáltatás elinduljon. A K betűt
 +pedig akkor használjuk,​ ha leakarjuk állítani a szolgáltatást. ​
 +A számok prioritást határoznak meg. Amely linknek kisebb ​
 +a száma, az a szolgáltatás előbb indul.
 +
 +
 +Minden többfelhasználós futási szint végén a következő script lefut:
 +  /​etc/​rc.local
 +
 +
 +==== Scriptek, démonok indítása, leállítása ====
 +
 +Ha szeretnénk egy scriptet induláskor lefuttatni, akkor két lehetőségünk van.
 +A legegyszerűbb ha /​etc/​rc.local fájlban felveszem, útvonalastul,​ mindenestül,​
 +mivel ez minden többfelhasználós futási szinten (2, 3, 4, 5) lefut. ​
 +
 +A másik lehetőség,​ hogy beteszem egy futás szintre. ​
 +Másoljuk a scriptet a következő könyvtárba:​
 +  /etc/init.d
 +
 +
 +Állítsuk be például a sajat.sh nevű scriptet, amelynek útvonala a következő:​
 +  /​root/​bin/​sajat.sh
 +
 +  cp /​root/​bin/​sajat.sh
 +  update-rc.d sajat.sh defaults
 +
 +Most töröljük a futásiszintekről:​
 +  update-rc.d sajat.sh remove
 +
 +Ha precízebbek szeretnénk lenni a scriptet a következő minta alapján készítsük el:
 +  /​etc/​init.d/​skeleton
 +Ezen fájl alapján készítsük el a script fejlécét a BEGIN INIT INFO és END INIT INFO
 +közötti rész scriptünkbe másolásával,​ átírásával.
 +
 +Olvasni valók:
 +  man update-rc.d
 +  man insserv
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +===== Linkek =====
 +
 +  * https://​wiki.debian.org/​systemd
 +  * http://​www.thegeekstuff.com/​2011/​02/​linux-boot-process/​
 +  * http://​unixlinux.tmit.bme.hu/​A_bootfolyamat
 +  * http://​oldfield.wattle.id.au/​luv/​boot.html
 +  * http://​milindchoudhary.wordpress.com/​2009/​03/​30/​linux-boot-process/​
 +  * http://​en.wikipedia.org/​wiki/​Linux_startup_process
 +  * http://​lateral.netmanagers.com.ar/​stories/​23.html
 +  * http://​ubuntu.hu/​node/​13573
 +
 +
 +Kapcsolódó:​
 +  * http://​hu.wikipedia.org/​wiki/​Boot
 +  * http://​wiki.hup.hu/​index.php/​Pc_boot_folyamat
 +  * http://​en.wikipedia.org/​wiki/​NTLDR
 +
 +Élet systemd nélkül:
 +  * [[http://​without-systemd.org/​wiki/​index.php/​How_to_remove_systemd_from_a_Debian_jessie/​sid_installation|http://​without-systemd.org/​]]
 +  * http://​without-systemd.org/​wiki/​index.php/​Debian_Stretch
 +
  
oktatas/linux/boot.txt · Utolsó módosítás: 2019/08/16 20:05 szerkesztette: admin