InnehÄllsförteckning
Det Ă€r klokt att du som systemadministratör vet ungefĂ€r hur Debian-systemet startas och konfigureras. Ăven om de exakta detaljerna finns i kĂ€llfilerna för de installerade paketen och deras dokumentationer, Ă€r det lite övervĂ€ldigande för de flesta av oss.
HÀr Àr en grov översikt över de viktigaste punkterna i initieringen av Debiansystemet. Eftersom Debiansystemet Àr ett rörligt mÄl, bör du lÀsa den senaste dokumentationen.
Debian Linux Kernel Handbook Àr den primÀra kÀllan till information om Debians kÀrnprogram.
bootup(7) beskriver systemets uppstartsprocess baserad pÄ
systemd. (Senaste Debian)
boot(7) beskriver systemets uppstartsprocess baserat pÄ
UNIX System V Release 4. (Ăldre Debian)
Datorsystemet genomgÄr flera faser av boot strap-processer frÄn det att det slÄs pÄ tills det erbjuder ett fullt fungerande operativsystem (OS) till anvÀndaren.
För enkelhetens skull begrÀnsar jag diskussionen till den typiska PC-plattformen med standardinstallation.
Den typiska boot strap-processen Àr som en fyrstegsraket. Varje steg i raketen överlÀmnar systemkontrollen till nÀsta steg.
Naturligtvis kan dessa konfigureras pÄ olika sÀtt. Om du till exempel har kompilerat din egen kÀrna kanske du hoppar över steget med mini-Debian-systemet. SÄ anta inte att detta Àr fallet för ditt system förrÀn du har kontrollerat det sjÀlv.
UEFI (Unified Extensible Firmware Interface) definierar en starthanterare som en del av UEFI-specifikationen. NÀr en dator slÄs pÄ Àr starthanteraren det första steget i startprocessen som kontrollerar startkonfigurationen och utifrÄn dess instÀllningar kör den angivna startladdaren för operativsystemet eller operativsystemets kÀrna (vanligtvis startladdaren). Startkonfigurationen definieras av variabler som lagras i NVRAM, inklusive variabler som anger filsystemets sökvÀgar till OS-laddare eller OS-kÀrnor.
En EFI-systempartition (ESP) Àr en datalagringsenhetspartition som anvÀnds i datorer som följer UEFI-specifikationen. Den öppnas av UEFI-firmware nÀr datorn slÄs pÄ och lagrar UEFI-program och de filer som dessa program behöver för att köras, inklusive operativsystemets startladdare. (I Àldre PC-system kan BIOS som lagras i MBR anvÀndas i stÀllet)
Startladdaren Àr det andra steget i startprocessen som startas av UEFI. Den laddar systemkÀrnans avbildning och initrd-avbildningen till minnet och överlÀmnar kontrollen till dem. Denna initrd-bild Àr rotfilsystembilden och dess stöd beror pÄ vilken startladdare som anvÀnds.
Debian-systemet anvÀnder normalt Linux-kÀrnan som standardkÀrna för systemet. Initrd-avbildningen för den aktuella LinuxkÀrnan 5.x Àr tekniskt sett initramfs-avbildningen (initial RAM filesystem).
Det finns mÄnga olika boot loaders och konfigurationsalternativ.
Tabell 3.1. Lista över startladdare
| paket | popcon | storlek | initrd | startladdare | beskrivning |
|---|---|---|---|---|---|
| grub-efi-amd64 | I:440 | 142 | Stöds | GRUB UEFI | Den Àr tillrÀckligt smart för att förstÄ diskpartitioner och filsystem som vfat, ext4, .... (UEFI) |
| grub-pc | V:17, I:536 | 479 | Stöds | GRUB 2 | Den Àr tillrÀckligt smart för att förstÄ diskpartitioner och filsystem som vfat, ext4, .... (BIOS) |
| grub-rescue-pc | V:0.08, I:0.69 | 7323 | Stöds | GRUB 2 | Detta Àr GRUB 2 startbara rÀddningsavbildningar (CD och diskett) (PC/BIOS-version) |
| grml-rescueboot | V:0.1, I:1.2 | 36 | N/A | GRUB 2 plug-in | grml-rescueboot adds live Linux ISO images to the grub2 boot menu |
| syslinux | V:3, I:31 | 325 | Stöds | Isolinux | Detta förstÄr filsystemet ISO9660. Detta anvÀnds av start-CD:n. |
| syslinux | V:3, I:31 | 325 | Stöds | Syslinux | Detta förstÄr MSDOS filsystem (FAT). Detta anvÀnds av startdisketten. |
| loadlin | V:0.04, I:0.48 | 87 | Stöds | Loadlin | Nytt system startas frÄn FreeDOS/MSDOS-systemet. |
| mbr | V:0.3, I:3.2 | 47 | Stöds inte | MBR av Neil Turton | Detta Àr fri programvara som ersÀtter MSDOS MBR. Detta förstÄr bara diskpartitioner. |
För UEFI-system lÀser GRUB2 först ESP-partitionen och anvÀnder UUID som
anges för search.fs_uuid i
"/boot/efi/EFI/debian/grub.cfg" för att bestÀmma
partitionen i GRUB2-menyns konfigurationsfil
"/boot/grub/grub.cfg".
Den viktigaste delen av GRUB2-menykonfigurationsfilen ser ut som följer:
menuentry 'Debian GNU/Linux' ... {
load_video
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root fe3e1db5-6454-46d6-a14c-071208ebe4b1
echo 'Loading Linux 5.10.0-6-amd64 ...'
linux /boot/vmlinuz-5.10.0-6-amd64 root=UUID=fe3e1db5-6454-46d6-a14c-071208ebe4b1 ro quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-5.10.0-6-amd64
}
För den hÀr delen av /boot/grub/grub.cfg betyder den hÀr
menyposten följande.
Tabell 3.2. Betydelsen av menyalternativet i ovanstÄende del av
/boot/grub/grub.cfg
| instÀllningen | vÀrde |
|---|---|
| GRUB2-moduler laddade | gzio, part_gpt,
ext2 |
| root filsystem partition anvÀnds | partition identifierad av
UUID=fe3e1db5-6454-46d6-a14c-071208ebe4b1 |
| sökvÀg till kÀrnavbildningen i rotfilsystemet | /boot/vmlinuz-5.10.0-6-amd64 |
| parameter för kÀrnstart som anvÀnds | "root=UUID=fe3e1db5-6454-46d6-a14c-071208ebe4b1 ro quiet" |
| initrd-bildsökvÀg i rotfilsystemet | /boot/initrd.img-5.10.0-6-amd64 |
On Debian system, "/boot/grub/grub.cfg" is managed by the
installed GRUB package (e.g. grub-efi-amd64) and direct
user modification to this file is deprecated. You should customize
configuration files in "/etc/grub.d/" and
"/etc/default/grub", instead. Then configure the GRUB
configuration files and update NVRAM variables to automatically boot into
Debian by:
# dpkg-reconfigure grub-efi-amd64
|
Tips |
|---|---|
|
You can show kernel boot log messages by removing " |
|
Tips |
|---|---|
|
You can add GRUB splash background by placing its image file in
" |
See "info grub", grub-install(8),
grub-mkconfig(8).
Mini-Debian-systemet Àr det 3:e steget i startprocessen som startas av startladdaren. Det kör systemkÀrnan med dess rotfilsystem i minnet. Detta Àr ett valfritt förberedande steg i startprocessen.
|
Notera |
|---|---|
|
Termen "mini-Debian-systemet" har myntats av författaren för att beskriva det tredje steget i uppstartsprocessen i det hÀr dokumentet. Det hÀr systemet kallas vanligen initrd- eller initramfs-systemet. Ett liknande system i minnet anvÀnds av Debians installationsprogram. |
Programmet "/init" körs som det första programmet i detta
rotfilsystem pÄ minnet. Det Àr ett program som initierar kÀrnan i
anvÀndarutrymmet och överlÀmnar kontrollen till nÀsta steg. Detta
mini-Debian-system erbjuder flexibilitet i uppstartsprocessen, t.ex. genom
att lÀgga till kÀrnmoduler före den huvudsakliga uppstartsprocessen eller
genom att montera rotfilsystemet som ett krypterat filsystem.
Programmet "/init" Àr ett skalskriptprogram om initramfs
skapades av initramfs-tools.
Du kan avbryta denna del av startprocessen för att fÄ root shell genom att
ange "break=init" etc. till kernel boot parameter. Se
skriptet "/init" för fler avbrottsvillkor. Den hÀr
skalmiljön Àr tillrÀckligt sofistikerad för att du ska kunna göra en bra
inspektion av maskinens maskinvara.
De kommandon som finns tillgÀngliga i detta mini-Debian-system Àr avskalade
och tillhandahÄlls huvudsakligen av ett GNU-verktyg som heter
busybox(1).
Programmet "/init" Àr ett binÀrt
systemd-program om initramfs skapades av
dracut.
Kommandon som Àr tillgÀngliga i detta mini-Debian-system Àr avskalade frÄn
systemd(1)-miljön.
|
Observera |
|---|---|
|
Du mÄste anvÀnda alternativet " |
The normal Debian system is the 4th stage of the boot process which is started by the mini-Debian system. The system kernel for the mini-Debian system continues to run in this environment. The root filesystem is switched from the one on the memory to the one on the physical storage device.
Init-programmet körs som det första programmet
med PID=1 för att utföra den huvudsakliga startprocessen för att starta
mÄnga program. StandardfilvÀgen för init-programmet Àr
"/usr/sbin/init", men den kan Àndras med kÀrnans
startparameter "init=/path/to/init_program".
"/usr/sbin/init" Àr symlÀnkat till
"/lib/systemd/systemd" efter Debian 8 Jessie (utgiven
2015).
|
Tips |
|---|---|
|
Det faktiska init-kommandot pÄ ditt system kan verifieras med kommandot
" |
Tabell 3.3. Lista över uppstartsverktyg för Debian-systemet
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
systemd
|
V:909, I:979 | 10798 | hÀndelsebaserad init(8)-daemon för samtidighet
(alternativ till sysvinit) |
cloud-init
|
V:3.5, I:6.2 | 3231 | initialiseringssystem för molninstanser för infrastruktur |
systemd-sysv
|
V:898, I:980 | 67 | de manussidor och lÀnkar som behövs för att systemd ska
kunna ersÀtta sysvinit |
init-system-helpers
|
V:904, I:986 | 133 | hjÀlpverktyg för att vÀxla mellan sysvinit och
systemd |
initscripts
|
V:18, I:68 | 203 | skript för initiering och avstÀngning av systemet |
sysvinit-core
|
V:3.4, I:4.0 | 369 | System-V-liknande init(8)-verktyg |
sysv-rc
|
V:35, I:73 | 91 | System-V-liknande mekanism för Àndring av runlevel |
sysvinit-utils
|
V:720, I:1000 | 106 | System-V-liknande verktyg(startpar(8),
bootlogd(8), ...) |
lsb-base
|
V:248, I:359 | 12 | Funktionalitet för init-skript i Linux Standard Base 3.2 |
insserv
|
V:40, I:72 | 132 | verktyg för att organisera startsekvensen med hjÀlp av LSB init.d-skriptberoenden |
kexec-tools
|
V:1.2, I:5.5 | 320 | kexec-verktyg för kexec(8)-omstart (varm omstart) |
systemd-bootchart
|
V:0.22, I:0.66 | 131 | analysator för prestanda i startprocessen |
mingetty
|
V:0.1, I:2.5 | 36 | konsol endast getty(8) |
mgetty
|
V:0.14, I:0.56 | 315 | smart modem getty(8) ersÀttning |
|
Tips |
|---|---|
|
Se Debian wiki: BootProcessSpeedup för de senaste tipsen för att snabba upp uppstartsprocessen. |
|
Varning |
|---|---|
|
Do not perform system administration tasks around the boot strap process without having a rescue system. |
Availability of a rescue system enables us to perform challenging tasks such as:
Booting a system from a broken boot loader installation
Fixing a broken boot loader installation
Extracting data from a broken unbootable system
Editing filesystems, disk partitions, and LVM volumes involving the root filesystem
Typically, a rescue system is provided as a ISO image file and written to a removable storage media such as:
For simplicity, USB flash drive cases are mentioned as examples below but CD or DVD may be used as well.
|
Tips |
|---|---|
|
You may need to change some UEFI NVRAM variables to boot arbitrary boot loaders on the removable storage media. |
The GRUB UEFI rescue system with menu can be started by turning on system power with the "GRUB UEFI rescue system on USB" inserted.
This "GRUB UEFI rescue system on USB" is prepared by writing the Super Grub2 Disk ISO image to USB flash drive in advance.
In case of broken boot loader configuration by the installation of another operating system etc., you can fix this by:
Start the GRUB UEFI rescue system to discover bootable installed systems automatically.
Start the installed Debian system from the GRUB menu.
At Linux root shell prompt:
# dpkg-reconfigure grub-efi-amd64
|
Notera |
|---|---|
|
The bootable GRUB rescue ISO image can be generated by following
" |
The Linux live rescue system can be started by turning on system power with the "Linux live rescue system on USB" inserted.
This "Linux live rescue system on USB" can be prepared by writing one of Linux live ISO images based on Debian to a USB flash drive in advance. Here are some examples of such Linux live images.
Here are some use cases of this Linux live rescue system:
Fix the broken boot loader configuration caused by the installation of another operating system etc.:
Start the Linux live rescue system.
Mount the partition containing the root filesystem of the unbootable
installed Debian system to "/mnt".
At Linux root shell prompt:
# chroot /mnt; dpkg-reconfigure grub-efi-amd64
Fix the broken dpkg package:
Start the Linux live rescue system.
Mount the partition containing the root filesystem of the installed Debian
system with the broken dpkg package to
"/mnt".
At Linux root shell prompt:
# dpkg --root /mnt -i /mnt/var/cache/apt/archives/dpkg_old_version_amd64.deb
Perform normally prohibited changes such as filesystem operations to the installed system (see Avsnitt 9.6, âTips om datalagringâ).
|
Varning |
|---|---|
|
Your GUI screen of the Linux live system may be locked after the inactivity. |
|
Tips |
|---|---|
|
The Linux live rescue system can be started from the GRUB menu entry. The GRUB configuration for this is prepared by the following:
Installera paketet grml-rescueboot.
Find a Linux live ISO image which has
"/boot/grub/loopback.cfg" in its image.
ISO images mentioned in Avsnitt 3.2.2, âLinux live rescue system on USBâ
have "/boot/grub/loopback.cfg" in their image.
Copy some of these Linux live ISO images to the
"/boot/grml/" directory.
Update GRUB menu by:
# dpkg-reconfigure grub-efi-amd64
Upon turning on system power, the GRUB displays menu with candidates for Linux live rescue systems.
NĂ€r Debian-systemet startar, startas /usr/sbin/init
symlÀnkad till /usr/lib/systemd som
init-systemprocessen(PID=1) som Àgs av
root(UID=0). Se systemd(1).
Systemd init-processen skapar parallella processer
baserat pÄ enhetskonfigurationsfilerna (se
systemd.unit(5)) som Àr skrivna i deklarativ stil
istÀllet för SysV-liknande procedurell stil.
De processer som skapas placeras i individuella Linux-kontrollgrupper som fĂ„r sitt namn efter den enhet de tillhör i den privata systemd-hierarkin (se cgroups och Avsnitt 4.7.5, âSĂ€kerhetsfunktioner i Linuxâ).
Enheter för systemlÀget laddas frÄn "System Unit Search Path" som beskrivs i
systemd.unit(5). De viktigaste Àr följande i
prioritetsordning:
"/etc/systemd/system/*": Systemenheter som skapats av
administratören
"/run/systemd/system/*": Runtime-enheter
"/lib/systemd/system/*": Systemenheter som installerats
av distributionens pakethanterare
Deras inbördes beroenden specificeras av direktiven
"Wants=", "Requires=",
"Before=", "After=", ... (se "MAPPING
OF UNIT PROPERTIES TO THEIR INVERSES" i
systemd.unit(5)). Resurskontrollerna Àr ocksÄ
definierade (se systemd.resource-control(5)).
Suffixet i enhetens konfigurationsfil kodar deras typer som:
*.service beskriver den process som styrs
och övervakas av systemd. Se
systemd.service(5).
*.device beskriver den enhet som
exponeras i sysfs(5) och udev(7)
enhetstrÀdet. Se systemd.device(5).
*.mount beskriver den monteringspunkt för
filsystemet som kontrolleras och övervakas av systemd. Se
systemd.mount(5).
*.automount beskriver den automatiska
monteringspunkten för filsystemet som kontrolleras och övervakas av
systemd. Se systemd.automount(5).
*.swap beskriver den swap-enhet eller
-fil som kontrolleras och övervakas av systemd. Se
systemd.swap(5).
*.path beskriver den sökvÀg som övervakas
av systemd för sökvÀgsbaserad aktivering. Se
systemd.path(5).
*.socket beskriver det uttag som styrs
och övervakas av systemd för uttagsbaserad aktivering. Se
systemd.socket(5).
*.timer beskriver den timer som styrs och
övervakas av systemd för timerbaserad aktivering. Se
systemd.timer(5).
*.slice hanterar resurser med
cgroups(7). Se systemd.slice(5).
*.scope skapas programmatiskt med hjÀlp
av bussgrÀnssnitten i systemd för att hantera en
uppsÀttning systemprocesser. Se systemd.scope(5).
*.target grupperar andra
enhetskonfigurationsfiler för att skapa synkroniseringspunkten under
uppstarten. Se systemd.target(5).
Vid systemstart (dvs. init) försöker systemd-processen
att starta "/lib/systemd/system/default.target (normalt
symlÀnkat till "graphical.target"). Först dras nÄgra
speciella mÄlenheter (se systemd.special(7)) som
"local-fs.target", "swap.target" och
"cryptsetup.target" in för att montera filsystemet.
Sedan dras Àven andra mÄlenheter in genom mÄlenhetsberoendena. För mer
information, lÀs bootup(7).
systemd erbjuder funktioner för bakÄtkompatibilitet.
Startskript i SysV-stil i
"/etc/init.d/rc[0123456S].d/[KS]name"
tolkas fortfarande och telinit(8) översÀtts till begÀran
om aktivering av systemd-enheter.
|
Observera |
|---|---|
|
Emulerade runlevel 2 till 4 Àr alla symlÀnkade till samma
" |
NÀr en anvÀndare loggar in pÄ Debiansystemet via gdm3(8),
sshd(8), etc., startas /lib/systemd/system
--user som den process för hantering av anvÀndartjÀnster som Àgs
av motsvarande anvÀndare. Se systemd(1).
Processen systemd user service manager skapar parallella
processer baserat pÄ de deklarativa konfigurationsfilerna för enheter (se
systemd.unit(5) och user@.service(5)).
Enheter för anvÀndarlÀget laddas frÄn "User Unit Search Path" som beskrivs i
systemd.unit(5). De viktigaste Àr följande i
prioritetsordning:
"~/.config/systemd/user/*": Enheter för
anvÀndarkonfiguration
"/etc/systemd/user/*": AnvÀndarenheter som skapats av
administratören
"/run/systemd/user/*": Runtime-enheter
"/lib/systemd/user/*": AnvÀndarenheter som installerats
av distributionens pakethanterare
Dessa hanteras pĂ„ samma sĂ€tt som Avsnitt 3.3.1, âSystemd startasâ.
Det kÀrnfelmeddelande som visas pÄ konsolen kan konfigureras genom att stÀlla in dess tröskelnivÄ.
# dmesg -n3
Tabell 3.4. Lista över felnivÄer i kÀrnan
| fel nivÄ vÀrde | namn pÄ felnivÄ | betydelse |
|---|---|---|
| 0 | KERN_EMERG | systemet Àr oanvÀndbart |
| 1 | KERN_ALERT | ÄtgÀrder mÄste vidtas omedelbart |
| 2 | KERN_CRIT | kritiska förhÄllanden |
| 3 | KERN_ERR | felförhÄllanden |
| 4 | KERN_VARNING | varningsvillkor |
| 5 | KERN_NOTICE | normalt men signifikant tillstÄnd |
| 6 | KERN_INFO | informativ |
| 7 | KERN_DEBUG | meddelanden pÄ felsökningsnivÄ |
Under systemd loggas bÄde kÀrn- och systemmeddelanden av
journaltjÀnsten systemd-journald.service (a.k.a
journald) antingen till en bestÀndig binÀr data under
"/var/log/journal" eller till en flyktig binÀr data under
"/run/log/journal/". Dessa binÀra loggdata nÄs med
kommandot journalctl(1). Du kan t.ex. visa loggen frÄn
den senaste uppstarten pÄ följande sÀtt:
$ journalctl -b
Tabell 3.5. Lista över typiska journalctl-kommandoutdrag
| Operation | Kommandosnuttar |
|---|---|
| Visa loggen för systemtjÀnster och kÀrnan frÄn den senaste uppstarten | "journalctl -b --system" |
| Visa logg för tjÀnster för den aktuella anvÀndaren frÄn den senaste uppstarten | "journalctl -b --user" |
Visa jobblogg för "$unit" frÄn den senaste uppstarten |
"journalctl -b -u $enhet" |
Visa jobblogg för "$unit" ( "tail
-f"-stil) frÄn den senaste uppstarten |
"journalctl -b -u $unit -f" |
Under systemd kan systemloggningsverktyget
rsyslogd(8) avinstalleras. Om det installeras Àndrar det
sitt beteende för att lÀsa flyktiga binÀra loggdata (i stÀllet för
"/dev/log" som var standard före systemd) och för att
skapa traditionella permanenta ASCII-systemloggdata. Detta kan anpassas med
"/etc/default/rsyslog" och
"/etc/rsyslog.conf" för bÄde loggfilen och visningen pÄ
skÀrmen. Se rsyslogd(8) och
rsyslog.conf(5). Se Ă€ven Avsnitt 9.3.2, âLogganalysatorâ.
Systemd erbjuder inte bara init-system utan Àven
generiska systemhanteringsÄtgÀrder med kommandot
systemctl(1).
Tabell 3.6. Lista över typiska kommandoutdrag för systemctl
| Operation | Kommandosnuttar |
|---|---|
| Lista alla tillgÀngliga enhetstyper | "systemctl list-units --type=help" |
| Lista alla mÄlenheter i minnet | "systemctl list-units --type=target" |
| Lista alla serviceenheter i minnet | "systemctl list-units -typ=service" |
| Lista alla enheter i minnet | "systemctl list-units --type=device" |
| Lista alla monteringsenheter i minnet | "systemctl list-units --type=mount" |
| Lista alla uttagsenheter i minnet | "systemctl list-sockets" |
| Lista alla timerenheter i minnet | "systemctl list-timers" |
Starta "$unit" |
"systemctl start $unit" |
Stoppa "$enhet" |
"systemctl stop $unit" |
| Ladda om tjÀnstespecifik konfiguration | "systemctl reload $unit" |
Stoppa och starta alla "$enheter" |
"systemctl restart $unit" |
Starta "$unit" och stoppa alla andra |
"systemctl isolate $unit" |
Byt till "grafisk" (GUI-system) |
"systemctl isolera grafisk" |
VĂ€xla till "multi-user" (CLI-system) |
"systemctl isolate multi-user" |
VÀxla till "rÀddning" (CLI-system med en anvÀndare) |
"systemctl isolate rescue" |
Skicka dödssignal till "$unit" |
"systemctl kill $unit" |
Kontrollera om tjÀnsten "$unit" Àr aktiv |
"systemctl is-active $unit" |
Kontrollera om tjÀnsten "$unit" Àr misslyckad |
"systemctl is-failed $unit" |
Kontrollera status för "$unit|$PID|device" |
"systemctl status $unit|$PID|$device" |
Visa egenskaper för "$unit|$job" |
"systemctl show $unit|$job" |
Ă
terstÀllning misslyckades "$unit" |
"systemctl reset-failed $unit" |
| Lista beroendet av alla enhetstjÀnster | "systemctl list-beroenden --all" |
| Lista enhetsfiler installerade pÄ systemet | "systemctl list-unit-files" |
Aktivera "$unit" (lÀgg till symlÀnk) |
"systemctl enable $unit" |
Inaktivera "$unit" (ta bort symlÀnk) |
"systemctl disable $unit" |
Avmaskera "$unit" (ta bort symlÀnken till
"/dev/null") |
"systemctl unmask $unit" |
Mask "$unit" (lÀgg till symlÀnk till
"/dev/null") |
"systemctl mask $enhet" |
| HÀmta instÀllning för standardmÄl | "systemctl get-default" |
StÀll in default-target till "graphical" (GUI-system) |
"systemctl set-default graphical" |
StÀll in default-target till "multi-user" (CLI-system) |
"systemctl set-default multi-user" |
| Visa arbetsmiljön | "systemctl show-environment" |
StÀll in "variabel" för jobbmiljö till
"vÀrde" |
"systemctl set-environment variable=value" |
Oreglerad "variabel" i arbetsmiljön |
"systemctl unset-environment variable" |
| Ladda om alla enhetsfiler och daemons | "systemctl daemon-reload" |
| StÀng av systemet | "systemctl poweroff" |
| StÀnga av och starta om systemet | "systemctl reboot" |
| StÀnga av systemet | "systemctl suspend" |
| LÀgg systemet i vilolÀge | "systemctl hibernate" |
HĂ€r kan "$unit" i exemplen ovan vara ett enskilt
enhetsnamn (suffix som .service och
.target Àr valfria) eller, i mÄnga fall, flera
enhetsspecifikationer (globs i shell-stil "*",
"?", "[]" med
fnmatch(3) som kommer att matchas mot de primÀra namnen
pÄ alla enheter som för nÀrvarande finns i minnet).
Kommandon som Àndrar systemtillstÄndet i exemplen ovan föregÄs vanligtvis av
"sudo" för att uppnÄ den administrativa behörighet som
krÀvs.
Utdata frÄn "systemctl status $unit|$PID|$device"
anvĂ€nder punktens fĂ€rg ("â") för att sammanfatta enhetens tillstĂ„nd pĂ„ ett
överskÄdligt sÀtt.
Vitt "â" anger ett "inaktivt" eller "avaktiverande" tillstĂ„nd.
Röd "â" indikerar ett "misslyckat" eller "felaktigt" tillstĂ„nd.
Grönt "â" indikerar ett "aktivt", "omladdande" eller "aktiverande" tillstĂ„nd.
HÀr Àr en lista över andra kommandoutdrag för övervakning under
systemd. LĂ€s relevanta manpages inklusive
cgroups(7).
Tabell 3.7. Lista över andra kommandosnuttar för övervakning under
systemd
| Operation | Kommandosnuttar |
|---|---|
| Visa tidsÄtgÄngen för varje initialiseringssteg | "systemd-analysera tid" |
| Lista över alla enheter efter tid för initialisering | "systemd-analyze blame" |
Ladda och upptÀcka fel i filen "$unit" |
"systemd-analyze verify $unit" |
| Visa kortfattad runtime-statusinformation för anvÀndaren av den uppringandes session | "loginctl anvÀndarstatus" |
| Visa kortfattad statusinformation under körning för den uppringandes session | "loginctl session-status" |
| SpÄra startprocessen av cgroups | "systemd-cgls" |
| SpÄra startprocessen av cgroups | "ps xawf -eo pid,user,cgroup,args" |
| SpÄra startprocessen av cgroups | LÀs sysfs under
"/sys/fs/cgroup/" |
KÀrnan underhÄller systemets vÀrdnamn.
Systemenheten som startas av systemd-hostnamed.service
stÀller in systemets vÀrdnamn vid start till det namn som finns lagrat i
"/etc/hostname". Den hÀr filen ska bara innehÄlla systemets vÀrdnamn, inte ett
fullstÀndigt kvalificerat domÀnnamn.
För att skriva ut det aktuella vÀrdnamnet kör hostname(1)
utan argument.
Monteringsalternativen för normala disk- och nÀtverksfilsystem anges i
"/etc/fstab". Se fstab(5) och Avsnitt 9.6.7, âOptimering av filsystem med hjĂ€lp av mount-alternativâ.
Konfigurationen av det krypterade filsystemet anges i
"/etc/crypttab". Se crypttab(5)
Konfigurationen av RAID-programvara med mdadm(8) anges i
"/etc/mdadm/mdadm.conf". Se
mdadm.conf(5).
|
Varning |
|---|---|
|
Efter montering av alla filsystem rensas temporÀra filer i
" |
NÀtverksgrÀnssnitt initialiseras vanligtvis i
"networking.service" för
lo-grÀnssnittet och
"NetworkManager.service" för andra grÀnssnitt pÄ moderna
Debian-skrivbordssystem under systemd.
Se Kapitel 5, NÀtverkskonfiguration för information om hur du konfigurerar dem.
Molnsysteminstansen kan startas som en klon av "Debian Official Cloud Images"
eller liknande bilder. För en sÄdan systeminstans kan personligheter som
vÀrdnamn, filsystem, nÀtverk, lokal, SSH-nycklar, anvÀndare och grupper
konfigureras med hjÀlp av funktioner som tillhandahÄlls av
cloud-init- och netplan.io-paketen med
flera datakÀllor, t.ex. filer som placerats i den ursprungliga
systemavbildningen och externa data som tillhandahÄlls under lanseringen.
Dessa paket möjliggör deklarativ systemkonfiguration med hjÀlp av YAML-data.
Se mer pĂ„ "Cloud Computing with Debian and its descendants", "Cloud-init documentation" och Avsnitt 5.4, âDen moderna nĂ€tverkskonfigurationen för molnâ.
Vid standardinstallation startas mÄnga nÀtverkstjÀnster (se Kapitel 6, NÀtverkstillÀmpningar) som daemonprocesser efter network
.target vid uppstarten av systemd.
"sshd" Àr inget undantag. LÄt oss Àndra detta till
on-demand start av "sshd" som ett exempel pÄ anpassning.
Först inaktiverar du den systeminstallerade serviceenheten.
$ sudo systemctl stop sshd.service $ sudo systemctl mask sshd.service
Systemet för aktivering av uttag pÄ begÀran i de klassiska Unix-tjÀnsterna
skedde via superservern inetd (eller
xinetd). Under systemd kan
motsvarande aktiveras genom att lÀgga till enhetskonfigurationsfilerna
*.socket och * .service.
sshd.socket för att ange ett uttag att lyssna pÄ
[Unit] Description=SSH Socket for Per-Connection Servers [Socket] ListenStream=22 Accept=yes [Install] WantedBy=sockets.target
sshd@.service som den matchande servicefilen för
sshd.socket
[Unit] Description=SSH Per-Connection Server [Service] ExecStart=-/usr/sbin/sshd -i StandardInput=socket
Ladda sedan om.
$ sudo systemctl daemon-reload
Systemet udev tillhandahÄller en mekanism
för automatisk upptÀckt och initialisering av maskinvara (se
udev(7)) sedan Linux-kÀrnan 2.6. NÀr kÀrnan upptÀcker
varje enhet startar udev-systemet en anvÀndarprocess som anvÀnder
information frĂ„n sysfs-filsystemet (se Avsnitt 1.2.12, âprocfs och sysfsâ), laddar nödvĂ€ndiga kĂ€rnmoduler med hjĂ€lp av
modprobe(8)-programmet (se Avsnitt 3.10, âInitialisering av kĂ€rnmodulenâ) och skapar motsvarande
enhetsnoder.
|
Tips |
|---|---|
|
Om
" För monteringsregler i " |
Eftersom udev-systemet Àr nÄgot av ett rörligt mÄl, lÀmnar jag detaljerna till andra dokumentationer och beskriver minimiinformationen hÀr.
|
Varning |
|---|---|
|
Försök inte att köra lÄngvariga program som t.ex. sÀkerhetskopieringsskript
med |
Programmet modprobe(8) gör det möjligt för oss att
konfigurera Linux-kÀrnan frÄn anvÀndarprocessen genom att lÀgga till och ta
bort kĂ€rnmoduler. Udev-systemet (se Avsnitt 3.9, âUdev-systemetâ)
automatiserar dess anrop för att underlÀtta initieringen av kÀrnmodulen.
Det finns moduler som inte Àr hÄrdvarumoduler och speciella
drivrutinsmoduler för hÄrdvara, t.ex. följande, som mÄste förinstalleras
genom att de listas i filen "/etc/modules" (se
modules(5)).
TUN/TAP-moduler som tillhandahÄller virtuell enhet för punkt-till-punkt-nÀtverk (TUN) och virtuell enhet för Ethernet-nÀtverk (TAP),
netfilter-moduler som ger
netfilter-brandvĂ€ggsfunktioner(iptables(8), Avsnitt 5.7, âNetfilters infrastrukturâ), och
drivmoduler för watchdog-timer.
Konfigurationsfilerna för modprobe(8)-programmet finns i
katalogen "/etc/modprobes.d/", vilket förklaras i
modprobe.conf(5). (Om du vill undvika att vissa
kÀrnmoduler laddas automatiskt kan du övervÀga att svartlista dem i filen
"/etc/modprobes.d/blacklist")
Filen
"/lib/modules/version/modules.dep"
som genereras av programmet depmod(8) beskriver
modulberoenden som anvÀnds av programmet modprobe(8).
|
Notera |
|---|---|
|
Om du har problem med modulinlÀsningen vid start eller med
|
Programmet modinfo(8) visar information om en modul i
Linux-kÀrnan.
Programmet lsmod(8) formaterar innehÄllet i
"/proc/modules" pÄ ett snyggt sÀtt och visar vilka
kÀrnmoduler som för nÀrvarande Àr inlÀsta.
|
Tips |
|---|---|
|
Du kan identifiera exakt maskinvara i ditt system. Se Avsnitt 9.5.3, âIdentifiering av hĂ„rdvaraâ. Du kan konfigurera maskinvaran vid start för att aktivera förvĂ€ntade maskinvarufunktioner. Se Avsnitt 9.5.4, âKonfiguration av hĂ„rdvaraâ. Du kan förmodligen lĂ€gga till stöd för din speciella enhet genom att kompilera om kĂ€rnan. Se Avsnitt 9.10, âKĂ€rnanâ. |