081010081010
Kapitel 4 - Boot/init
Mer felsökning
/lib/modules/[version av linux]/[olika smaker tillgängliga]/
Varför kallas det boot?
Bootstrap loader (ladda via snöret för hela skon, dvs, förenkla) fanns förrut.
Förrut fanns inget ROM, så man var tvungen att manuellt (binärt) mata in den binärsnutt som behövdes för att ladda in resten.
BIOS - Basic Input/Output System
DOS skulle vara relativt hårdvaruoberoende, därför bestämdes det att de
grundläggande funktionerna som diskhantering och liknande skulle skötas
av BIOS.
Problem med BIOS:
IBMs första dator med hårddisk (kallas winchester, var på 5 MB) och
många problem kommer därför av att det är fortfarande i verkligheten
anpassat för att fungera med storlekar i den storleken.
Diskar har ofta lite fler sektorer redo än vad som representeras, detta
är för att skydda datat då den kan skicka datat från söndriga sektorer
till hela.
S.M.A.R.T. - kollar allt möjligt om diskar
EFI - Bara uppstartsprogram
Skapat av en stor kommité för att klara moderna behov, problemet är att
det är lite för komplext så det har inte rört sig speciellt snabbt och
det kommer ta tid innan det är stabilt i funktioner.
BIOS har problem med stora diskar och har alltid haft det, gränser har legat på lite olika mått, numer är problemet vid 2 TB.
LILO - Linux loader
Gör man en omkonfiguration måste man installera LILO igen.
GRUB - GRand Unified Boot loader
Installeras 1 gång, ändras i grub.cfg (kallas i legacy för menu.lst)
GRUB jobbar i tre steg, ett minimalt som startar ett
större initialiseringsprogram som startar det slutgiltiga programmet.
Har stöd för de vanliga filsystemen, det gör att man kan editera grub utan att ha ett avancerat OS.
GRUB2 - version 2 av GRUB
Helt modulär
Praktiskt för auto conf
Opraktiskt för människor
När man ser att GRUB laddas visar den en punkt för varje steg den laddar.
grub.cfg
-Kärnan
-nosplash
Tar bort splashscreenen.
-quiet (ibland kallas den silent)
Om man vill veta mer får man ta bort den flaggan.
init
Det första som startas i linux.
Problemet är att även i serverhallarna så är
datorerna inte statiska, man pluggar ur och in hårdvara tom under
drift, de flyttas runt mellan nätverk och miljöer, den har svårt att
hantera sånt.
init har börjat ersättas på diverse sätt för att få ner boot-tiderna och lite annat.
inittab
runlevels
0 - datorn nere (avslutad eller försöker avsluta)
1 - single user mode
2 - multi user mode
Ibland startas grafisk miljö här.
3 - multi user med nätverk
Ibland startas grafisk miljö här.
4 - multi user med näverk och grafisk inloggning
5 - Varierar
Kan vara som 4 med istället för 4.
6 - omstart
/etc/init.d/ start/stop/restart
Det är enkelt att göra så att script fixar det.
/var/run/....pid
processid för tjänsten, bra exempelvis
för att döda processen för en specifik apache-demon så att man startar
om bara den istället för hela tjänsten.
rc.local
oavsett vad man än har för init så kör man den i slutet av uppstarten
inittab
Runlevels
"Ctrl+alt+delete"s funktion kan ställas in
UPS ställs in där, den kör en demon för att hålla koll på UPS:en och hur lång tid den har kvar.
Ställer in getty också, man kan ställa av automatiskt uppstart av de olika tty:erna.
I CentOS kör de mingetty.
Man kan även ställa in saker som har med ens display manager.
Fotnot:
Linuxkärnan supportar upp till 3408 diskar.
Apache måste starta en demon för varje anslutning, därför har de hela tiden många processer igång.
Det går att göra så att varje demon kan hantera flera anslutningar, kanske 20-30 eller så.
nginx är en webbserver som många gillar.
startat av ryssar.
sysv init
UNIX system V, en fil för varje tjänst.
BSD init
Den andra stora smaken, en fil för varje runlevel, arch linux kör det.
/etc/init.d/http
lägre processnummer körs tidigare
/etc/rc3.d/S55http
Start
Länk till /etc/init.d/http
/etc/rc3.d/K55http
Kill
Länk till /etc/init.d/http
Kärnan laddar
initrd
Bantat system som laddar de moduler som
behövs, därför som det är lätt att byta disk mellan datorer.
När man bygger egen kärna kan man hoppa över det här steget, vilket är praktiskt för boot-tider.
init
går att byta ut med systemd (fedora) eller upstart (ubuntu), båda används i andra projekt
starta dator där man inte har root och få rootaccess
Från GRUB
kernel.... init=/bin/bash -l
mount -o remount -o rw /
Bra för labb2: /etx/selinux/config (selinux=disabled).