Cap. 3. Inițializarea sistemului

Cuprins

3.1. O prezentare generală a procesului de inițializare
3.1.1. Etapa 1: UEFI
3.1.2. Etapa 2: încărcătorul de pornire
3.1.3. Etapa 3: sistemul mini-Debian
3.1.4. Etapa 4: sistemul Debian normal
3.2. Rescue system
3.2.1. GRUB UEFI rescue system on USB
3.2.2. Linux live rescue system on USB
3.2.3. Linux live rescue system from GRUB
3.3. Systemd
3.3.1. Init systemd
3.3.2. Autentificarea cu systemd
3.4. Mesajele nucleului
3.5. Mesajele sistemului
3.6. Gestionarea sistemului
3.7. Alte monitoare de sistem
3.8. Configurația sistemului
3.8.1. Numele gazdei
3.8.2. Sistemul de fișiere
3.8.3. Inițializarea interfeței de rețea
3.8.4. Inițializarea sistemului cloud
3.8.5. Exemplu de personalizare pentru ajustarea serviciului sshd
3.9. Sistemul udev
3.10. Inițializarea modulelor de nucleu

Este recomandabil ca administratorul de sistem să cunoască în linii mari modul în care sistemul Debian este pornit și configurat. Deși detaliile exacte se găsesc în fișierele sursă ale pachetelor instalate și în documentația acestora, pentru majoritatea dintre noi acestea sunt puțin copleșitoare.

Iată o prezentare generală a punctelor cheie ale inițializării sistemului Debian. Deoarece sistemul Debian este o țintă în mișcare, ar trebui să consultați cea mai recentă documentație.

Sistemul informatic trece prin mai multe faze ale proceselor de inițializare de la momentul pornirii până când oferă utilizatorului un sistem de operare (SO) complet funcțional.

Pentru simplitate, voi limita discuția la platforma tipică de PC cu instalarea implicită.

Procesul tipic de inițializare este ca o rachetă cu patru trepte (în cazul nostru, etape). Fiecare treaptă a rachetei predă controlul sistemului treptei următoare.

Desigur, acestea pot fi configurate diferit. De exemplu, dacă ați compilat propriul nucleu, este posibil să săriți peste pasul cu sistemul mini-Debian. Așadar, vă rugăm să nu presupuneți că acesta este cazul pentru sistemul dvs. până nu verificați personal.

Interfața firmware extensibilă unificată (UEFI) definește un administrator de pornire ca parte a specificației UEFI. Când un calculator este pornit, administratorul de pornire este prima etapă a procesului de pornire, care verifică configurația de pornire și, pe baza parametrilor săi, execută încărcătorul de sistem de operare specificat sau nucleul sistemului de operare (de obicei încărcătorul de pornire). Configurația de pornire este definită de variabile stocate în NVRAM, inclusiv variabile care indică rutele sistemului de fișiere către încărcătoarele de sistem de operare sau nucleele sistemului de operare.

O partiție de sistem EFI (ESP) este o partiție a dispozitivului de stocare a datelor utilizată în calculatoarele care respectă specificațiile UEFI. Accesată de firmware-ul UEFI la pornirea calculatorului, aceasta stochează aplicațiile UEFI și fișierele necesare pentru rularea acestor aplicații, inclusiv programele de încărcare a sistemului de operare. (Pe sistemele PC vechi, se poate utiliza în schimb BIOS stocat în MBR.)

Încărcătorul de pornire este a doua etapă a procesului de pornire, care este inițiat de UEFI. Acesta încarcă imaginea nucleului sistemului și imaginea initrd în memorie și le transferă controlul. Această imagine initrd este imaginea sistemului de fișiere rădăcină, iar suportul acesteia depinde de încărcătorul de pornire utilizat.

Sistemul Debian utilizează în mod normal nucleul Linux ca nucleu implicit al sistemului. Imaginea initrd pentru nucleul Linux 5.x actual este, din punct de vedere tehnic, imaginea initramfs (sistem de fișiere RAM inițial).

Există multe opțiuni disponibile pentru încărcătoare de pornire și configurare.


Pentru sistemul UEFI, GRUB2 citește mai întâi partiția ESP și utilizează UUID-ul specificat pentru search.fs_uuid în „/boot/efi/EFI/debian/grub.cfg” pentru a determina partiția fișierului de configurare a meniului GRUB2 „/boot/grub/grub.cfg”.

Partea esențială a fișierului de configurare a meniului GRUB2 arată astfel:

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
}

Pentru această parte din /boot/grub/grub.cfg, această intrare din meniu înseamnă următoarele.


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
[Indicație] Indicație

You can show kernel boot log messages by removing "quiet" from the "GRUB_CMDLINE_LINUX_DEFAULT" value in "/etc/default/grub".

[Indicație] Indicație

You can add GRUB splash background by placing its image file in "/boot/grub/".

See "info grub", grub-install(8), grub-mkconfig(8).

Sistemul mini-Debian este a treia etapă a procesului de pornire, care este inițiată de încărcătorul de pornire. Acesta rulează nucleul sistemului cu sistemul său de fișiere rădăcină în memorie. Aceasta este o etapă pregătitoare opțională a procesului de pornire.

[Notă] Notă

Termenul „sistemul mini-Debian” este inventat de autor pentru a descrie această a treia etapă a procesului de pornire în acest document. Acest sistem este denumit în mod obișnuit initrd sau sistem initramfs. Un sistem similar în memorie este utilizat de programul de instalare Debian.

Programul „/init” este executat ca primul program din acest sistem de fișiere rădăcină din memorie. Este un program care inițializează nucleul în spațiul utilizatorului și transferă controlul către etapa următoare. Acest mini-sistem Debian oferă flexibilitate procesului de pornire, cum ar fi adăugarea de module de nucleu înainte de procesul principal de pornire sau montarea sistemului de fișiere rădăcină ca unul criptat.

  • Programul „/init” este un program script shell dacă initramfs a fost creat de initramfs-tools.

    • Puteți întrerupe această parte a procesului de pornire pentru a obține shell-ul root, furnizând „break=init” etc. parametrului de pornire al nucleului. Consultați scriptul „/init” pentru mai multe condiții de întrerupere. Acest mediu shell este suficient de sofisticat pentru a efectua o inspecție bună a hardware-ului mașinii dvs.

    • Comenzile disponibile în acest mini-sistem Debian sunt simplificate și furnizate în principal de un instrument GNU numit busybox(1).

  • Programul „/init” este un program binar systemd dacă initramfs a fost creat de dracut.

    • Comenzile disponibile în acest mini-sistem Debian sunt reduse la mediul systemd(1).

[Atenție] Atenție

Trebuie să utilizați opțiunea „-n” pentru comanda mount când vă aflați în sistemul de fișiere rădăcină numai pentru citire.

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.

Programul init este executat ca primul program cu PID=1 pentru a efectua procesul principal de pornire a mai multor programe. Ruta implicită a fișierului pentru programul init este „/usr/sbin/init”, dar poate fi modificată prin parametrul de pornire al nucleului ca „init=/ruta/către/programul-init” .

/usr/sbin/init” este legat simbolic de „/lib/systemd/systemd” după Debian 8 Jessie (lansat în 2015).

[Indicație] Indicație

Comanda init actuală din sistemul dvs. poate fi verificată cu comanda «ps --pid 1 -f».


[Indicație] Indicație

Consultați Debian wiki: BootProcessSpeedup pentru cele mai recente sfaturi privind accelerarea procesului de pornire.

[Avertisment] Avertisment

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.

[Indicație] Indicație

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
[Notă] Notă

The bootable GRUB rescue ISO image can be generated by following "info grub-mkrescue", too. It offers a CLI GRUB shell prompt but doesn't offer automatic discovery of bootable installed systems.

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 Secțiune 9.6, „Sfaturi pentru stocarea datelor”).

[Avertisment] Avertisment

Your GUI screen of the Linux live system may be locked after the inactivity.

[Indicație] Indicație

The Linux live rescue system can be started from the GRUB menu entry. The GRUB configuration for this is prepared by the following:

Upon turning on system power, the GRUB displays menu with candidates for Linux live rescue systems.

Când sistemul Debian pornește, /usr/sbin/init legat simbolic la /usr/lib/systemd este pornit ca proces al sistemului init (PID=1) deținut de root (UID=0). Vedeți systemd(1).

Procesul de inițializare systemd generează procese în paralel pe baza fișierelor de configurare a unităților (vezi systemd.unit(5)), care sunt scrise în stil declarativ, în loc de stilul procedural de tip SysV.

Procesele generate sunt plasate în grupuri de control Linux individuale, denumite după unitatea căreia aparțin în ierarhia privată systemd (a se vedea cgroups și Secțiune 4.7.5, „Caracteristici de securitate Linux”).

Unitățile pentru modul sistem sunt încărcate din „Ruta de căutare a unităților sistemului” descrisă în systemd.unit(5). Cele principale sunt următoarele, în ordinea priorității:

  • /etc/systemd/system/*”: Unități de sistem create de administrator

  • /run/systemd/system/*”: Unități de execuție

  • /lib/systemd/system/*”: Unități de sistem instalate de gestionarul de pachete al distribuției

Interdependențele lor sunt specificate de directivele „Wants=”, „Requires=”, „Before=”, „After=”, … (a se vedea „MAPPING OF UNIT PROPERTIES TO THEIR INVERSES” în systemd.unit(5)). De asemenea, sunt definite și controalele resurselor (a se vedea systemd.resource-control(5)).

Sufixul fișierului de configurare al unității codifică tipurile acestora astfel:

  • *.service descrie procesul controlat și supravegheat de systemd. Consultați systemd.service(5).

  • *.device descrie dispozitivul expus în sysfs(5) ca arbore de dispozitive udev(7). Consultați systemd.device(5).

  • *.mount descrie punctul de montare al sistemului de fișiere controlat și supravegheat de systemd. Consultați systemd.mount(5).

  • *.automount descrie punctul de montare automată a sistemului de fișiere controlat și supravegheat de systemd. Consultați systemd.automount(5).

  • *.swap descrie dispozitivul sau fișierul spațiului de interschimb (swap) controlat și supravegheat de systemd. Consultați systemd.swap(5).

  • *.path descrie ruta monitorizată de systemd pentru activarea bazată pe rută. Consultați systemd.path(5).

  • *.socket descrie soclul controlat și supravegheat de systemd pentru activarea bazată pe soclu. Consultați systemd.socket(5).

  • *.timer descrie temporizatorul controlat și supravegheat de systemd pentru activarea bazată pe temporizator. Consultați systemd.timer(5).

  • *.slice gestionează resursele cu ajutorul cgroups(7). Consultați systemd.slice(5).

  • *.scope este creat programatic folosind interfețele de magistrală ale systemd pentru a gestiona un set de procese de sistem. Consultați systemd.scope(5).

  • *.target grupează alte fișiere de configurare ale unității pentru a crea punctul de sincronizare în timpul pornirii. Consultați systemd.target(5).

La pornirea sistemului (adică, init), procesul systemd încearcă să pornească „/lib/systemd/system/default.target (în mod normal, legat simbolic la „graphical.target”). Mai întâi, unele unități țintă speciale (vezi systemd.special(7)), cum ar fi „local-fs.target”, „swap.target” și „cryptsetup.target”, sunt introduse pentru a monta sistemele de fișiere. Apoi, alte unități țintă sunt, de asemenea, introduse de dependențele unității țintă. Pentru detalii, citiți bootup(7).

systemd oferă funcții de compatibilitate cu versiunile anterioare. Scripturile de pornire în stil SysV din „/etc/init.d/rc[0123456S].d/[KS]nume” sunt în continuare analizate, iar telinit(8) este tradus în cereri de activare a unităților systemd.

[Atenție] Atenție

Nivelurile de execuție emulate 2 până la 4 sunt toate legate prin legături simbolice la aceeași țintă „multi-user.target”.

Mesajul de eroare al nucleului afișat pe consolă poate fi configurat prin definirea nivelului lui de prag.

# dmesg -n3

În cadrul systemd, atât mesajele nucleului, cât și cele ale sistemului sunt înregistrate de serviciul jurnal systemd-journald.service (cunoscut și sub numele de journald) fie într-un fișier binar persistent sub „/var/log/journal”, fie într-un fișier binar volatil sub „/run/log/journal/”. Aceste date binare din jurnal sunt accesate prin comanda journalctl(1). De exemplu, puteți afișa jurnalul de la ultima pornire astfel:

$ journalctl -b

În cadrul systemd, instrumentul de înregistrare a sistemului rsyslogd(8) poate fi dezinstalat. Dacă este instalat, acesta își modifică comportamentul pentru a citi datele volatile din jurnalul binar (în loc de „/dev/log” implicit înainte de systemd) și pentru a crea date tradiționale permanente ASCII din jurnalul sistemului. Acest lucru poate fi personalizat prin „/etc/default/rsyslog” și „/etc/rsyslog.conf” atât pentru fișierul jurnal, cât și pentru afișarea pe ecran. Consultați rsyslogd(8) și rsyslog.conf(5). Consultați și Secțiune 9.3.2, „Analizator de jurnale”.

Sistemul systemd oferă nu numai sistemul init, ci și operații generice de gestionare a sistemului cu comanda systemctl(1).

Tabel 3.6. Lista fragmentelor tipice de comenzi systemctl

Operația Fragmente de comandă
Listează toate tipurile de unități disponibile «systemctl list-units --type=help»
Listează toate unitățile țintă din memorie «systemctl list-units --type=target»
Afișează toate unitățile de serviciu din memorie «systemctl list-units --type=service»
Listează toate unitățile de dispozitiv din memorie «systemctl list-units --type=device»
Listează toate unitățile de montare din memorie «systemctl list-units --type=mount»
Afișează toate unitățile de soclu din memorie «systemctl list-sockets»
Afișează toate unitățile de temporizare din memorie «systemctl list-timers»
Pornește „$unit «systemctl start $unit»
Oprește „$unit «systemctl stop $unit»
Reîncarcă configurația specifică serviciului «systemctl reload $unit»
Oprește și pornește toate „$unit «systemctl restart $unit»
Pornește „$unit” și oprește toate celelalte unități «systemctl isolate $unit»
Comută la „graphical” (sistem GUI, cu interfață grafică) «systemctl isolate graphical»
Comută la „multi-user” (sistem CLI, cu interfață de linie de comandă) «systemctl isolate multi-user»
Comută la „rescue” (sistem CLI, cu interfață de linie de comandă, mono-utilizator) «systemctl isolate rescue»
Trimite semnalul de omorâre către „$unit «systemctl kill $unit»
Verifică dacă serviciul „$unit” este activ «systemctl is-active $unit»
Verifică dacă serviciul „$unit” a eșuat «systemctl is-failed $unit»
Verificăi starea „$unit|$PID|dispozitiv «systemctl status $unit|$PID|$device»
Afișează proprietățile „$unit|$job «systemctl show $unit|$job»
Reinițializează „$unit” eșuată «systemctl reset-failed $unit»
Listează dependențele tuturor serviciilor de unitate «systemctl list-dependencies --all»
Listează fișierele de unitate instalate în sistem «systemctl list-unit-files»
Activează „$unit” (adaugă legătură simbolică) «systemctl enable $unit»
Dezactivează „$unit” (elimină legătura simbolică) «systemctl disable $unit»
Demască „$unit” (elimină legătura simbolică către „/dev/null”) «systemctl unmask $unit»
Maschează „$unit” (adaugă legătură simbolică la „/dev/null”) «systemctl mask $unit»
Obține configurația țintei implicite «systemctl get-default»
Stabilește ținta implicită la „graphical” (sistem GUI, cu interfață grafică) «systemctl set-default graphical»
Stabilește ținta implicită la „multi-user” (sistem CLI, cu interfață de linie de comandă) «systemctl set-default multi-user»
Afișează mediul de lucru «systemctl show-environment»
Definește „variabila” din mediul de lucru la „valoare «systemctl set-environment variabilă=valoare»
Elimină definiția (valoarea) „variabilei” din mediul de lucru «systemctl unset-environment variabilă»
Reîncarcă toate fișierele de unitate și demonii «systemctl daemon-reload»
Închide(oprește) sistemul «systemctl poweroff»
Oprește și repornește sistemul «systemctl reboot»
Suspendă sistemul «systemctl suspend»
Hibernează sistemul «systemctl hibernate»

Aici, „$unit” din exemplele de mai sus poate fi un singur nume de unitate (sufixele precum .service și .target sunt opționale) sau, în multe cazuri, mai multe specificații de unități (modele globale de tip shell „*”, „?”, „[]” folosind fnmatch(3) care vor fi comparate cu numele primare ale tuturor unităților aflate în prezent în memorie).

Comenzile de modificare a stării sistemului din exemplele de mai sus sunt precedate de obicei de „sudo” pentru a obține privilegiile administrative necesare.

Rezultatul comenzii „systemctl status $unit|$PID|$device” utilizează culoarea punctului („●”) pentru a rezuma starea unității dintr-o privire.

  • Culoarea albă a „●” indică starea „inactivă” sau „dezactivată”.

  • Culoarea roșie a „●” indică o stare „eșuată” sau „de eroare”.

  • Culoarea verde a „●” indică starea „activă”, „reîncărcare” sau „de activare”.

Iată o listă cu alte fragmente de comenzi de monitorizare sub systemd. Vă rugăm să citiți paginile de manual relevante, inclusiv cgroups(7).


Opțiunile de montare ale sistemelor de fișiere normale de disc și de rețea sunt definite în „/etc/fstab”. Consultați fstab(5) și Secțiune 9.6.7, „Optimizarea sistemului de fișiere prin opțiuni de montare”.

Configurația sistemului de fișiere criptat este definită în „/etc/crypttab”. Consultați crypttab(5)

Configurația RAID software cu mdadm(8) este definită în „/etc/mdadm/mdadm.conf”. Consultați mdadm.conf(5).

[Avertisment] Avertisment

După montarea tuturor sistemelor de fișiere, fișierele temporare din „/tmp”, „/var/lock” și „/var/run” sunt șterse la fiecare pornire.

Instanța sistemului cloud poate fi lansată ca o clonă a „Imaginilor cloud oficiale Debian” sau a unor imagini similare. Pentru o astfel de instanță de sistem, caracteristici precum numele gazdei, sistemul de fișiere, rețeaua, configurația regională, cheile SSH, utilizatorii și grupurile pot fi configurate folosind funcționalitățile oferite de pachetele cloud-init și netplan.io cu mai multe surse de date, cum ar fi fișierele plasate în imaginea originală a sistemului și datele externe furnizate în timpul lansării sale. Aceste pachete permit configurarea declarativă a sistemului utilizând date YAML.

Pentru mai multe informații, consultați „Cloud Computing cu Debian și descendenții săi”, „Documentația Cloud-init” și Secțiune 5.4, „Configurația modernă a rețelei pentru cloud”.

Cu instalarea implicită, multe servicii de rețea (a se vedea Cap. 6, Aplicații de rețea) sunt pornite ca procese demon după network.target la pornire de către systemd. „sshd” nu face excepție. Să schimbăm acest lucru în pornirea la cerere a „sshd” ca exemplu de personalizare.

Mai întâi, dezactivați unitatea de serviciu instalată în sistem.

 $ sudo systemctl stop sshd.service
 $ sudo systemctl mask sshd.service

Sistemul de activare la cerere a soclurilor serviciilor Unix clasice se realiza prin intermediul superserverului inetd (sau xinetd). În cadrul systemd, echivalentul poate fi activat prin adăugarea fișierelor de configurare a unităților *.socket și *.service.

sshd.socket pentru specificarea unui soclu pe care să se asculte

[Unit]
Description=SSH Socket for Per-Connection Servers

[Socket]
ListenStream=22
Accept=yes

[Install]
WantedBy=sockets.target

sshd@.service ca fișier de serviciu corespunzător pentru sshd.socket

[Unit]
Description=SSH Per-Connection Server

[Service]
ExecStart=-/usr/sbin/sshd -i
StandardInput=socket

Apoi reîncărcați.

 $ sudo systemctl daemon-reload

Sistemul udev oferă un mecanism pentru detectarea și inițializarea automată a hardware-ului (a se vedea udev(7)) începând cu nucleul Linux 2.6. La detectarea fiecărui dispozitiv de către nucleu, sistemul udev pornește un proces de utilizator care folosește informații din sistemul de fișiere sysfs (a se vedea Secțiune 1.2.12, „procfs și sysfs”), încarcă modulele de nucleu necesare utilizând programul modprobe(8) (a se vedea Secțiune 3.10, „Inițializarea modulelor de nucleu”) și creează nodurile de dispozitiv corespunzătoare.

[Indicație] Indicație

Dacă „/lib/modules/versiunea-nucleului/modules.dep” nu a fost generat corect de depmod(8) din anumite motive, este posibil ca modulele să nu fie încărcate așa cum se așteaptă sistemul udev. Executați „depmod -a” pentru a remedia problema.

Pentru regulile de montare din „/etc/fstab”, nodurile dispozitivelor nu trebuie să fie statice. Puteți utiliza UUID pentru a monta dispozitive în locul numelor de dispozitive, cum ar fi „/dev/sda”. Consultați Secțiune 9.6.3, „Accesarea partiției folosind UUID”.

Deoarece sistemul udev este o țintă în continuă schimbare, las detaliile pentru alte documentații și descriu aici doar informațiile minimale.

[Avertisment] Avertisment

Nu încercați să rulați programe de lungă durată, cum ar fi scriptul de copie de rezervă, cu RUN în regulile udev, așa cum se menționează în udev(7). Creați în schimb un fișier systemd.service(5) adecvat și activați-l. Consultați Secțiune 10.2.3.2, „Mount event triggered backup”.

Programul modprobe(8) ne permite să configurăm nucleul Linux în execuție din procesul utilizatorului prin adăugarea și eliminarea modulelor nucleului. Sistemul udev (a se vedea Secțiune 3.9, „Sistemul udev”) automatizează invocarea acestuia pentru a ajuta la inițializarea modulului nucleului.

Există module non-hardware și module speciale de controlor hardware, precum cele enumerate mai jos, care trebuie preîncărcate prin listarea lor în fișierul „/etc/modules” (consultați modules(5)).

Fișierele de configurare pentru programul modprobe(8) se află în directorul „/etc/modprobes.d/”, așa cum se explică în modprobe.conf(5). (Dacă doriți să evitați încărcarea automată a anumitor module ale nucleului, luați în considerare adăugarea acestora pe lista neagră din fișierul „/etc/modprobes.d/blacklist”.)

Fișierul „/lib/modules/versiune/modules.dep” generat de programul depmod(8) descrie dependențele modulelor utilizate de programul modprobe(8).

[Notă] Notă

Dacă întâmpinați probleme la încărcarea modulelor la pornirea sistemului sau cu modprobe(8), comanda „depmod -a” poate rezolva aceste probleme prin reconstruirea fișierului „modules.dep”.

Programul modinfo(8) afișează informații despre un modul al nucleului Linux.

Programul lsmod(8) formatează conținutul „/proc/modules”, arătând ce module ale nucleului sunt încărcate în prezent.

[Indicație] Indicație

Puteți identifica hardware-ul exact din sistemul dvs. Consultați Secțiune 9.5.3, „Identificarea hardware-ului”.

Puteți configura hardware-ul la pornire pentru a activa funcțiile hardware dorite. Consultați Secțiune 9.5.4, „Configurația hardware”.

Probabil puteți adăuga suport pentru dispozitivul dvs. special prin recompilarea nucleului. Consultați Secțiune 9.10, „Nucleul”.