{"id":3583,"date":"2026-07-07T16:11:02","date_gmt":"2026-07-07T14:11:02","guid":{"rendered":"https:\/\/rootmail.it\/courses\/lpic-1-exam-101-010-160-corso-completo-in-italiano\/lessons\/101-2-avviare-il-sistema\/"},"modified":"2026-07-20T21:55:01","modified_gmt":"2026-07-20T19:55:01","slug":"101-2-avviare-il-sistema","status":"publish","type":"lesson","link":"https:\/\/rootmail.it\/en\/courses\/lpic-1-exam-1-101-500-corso-completo-in-italiano\/lessons\/101-2-avviare-il-sistema\/","title":{"rendered":"101.2 Avviare il sistema"},"content":{"rendered":"<h2>101.2 Avviare il sistema<\/h2>\n<p>L&#8217;avvio di un sistema Linux \u00e8 un processo composto da diverse fasi, durante le quali firmware, bootloader, kernel e sistema di inizializzazione collaborano per rendere il computer operativo. Comprendere il funzionamento del processo di boot \u00e8 una competenza fondamentale per qualsiasi amministratore di sistema. Molti problemi di avvio possono infatti essere individuati e risolti solo conoscendo cosa accade nelle varie fasi dell&#8217;inizializzazione del sistema. In questa lezione analizzerai l&#8217;intero processo di avvio di Linux, partendo dall&#8217;accensione del computer fino al caricamento dei servizi di sistema e alla presentazione della schermata di login.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Il processo di boot \u00e8 uno degli argomenti pi\u00f9 importanti dell&#8217;esame LPIC-1 Exam 101. \u00c8 fondamentale conoscere il ruolo di BIOS\/UEFI, bootloader, kernel, initramfs e systemd, oltre alla corretta sequenza delle fasi di avvio.<\/p>\n<\/blockquote>\n<hr \/>\n<h2>\ud83c\udfaf Obiettivi della lezione<\/h2>\n<p>Al termine di questa lezione sarai in grado di:<\/p>\n<ul>\n<li>comprendere le principali fasi del processo di avvio di un sistema Linux;<\/li>\n<li>distinguere il ruolo di BIOS e UEFI durante il boot;<\/li>\n<li>comprendere il funzionamento del bootloader GRUB 2;<\/li>\n<li>descrivere il caricamento del kernel Linux e dell&#8217;initramfs;<\/li>\n<li>comprendere il ruolo di systemd durante l&#8217;inizializzazione del sistema;<\/li>\n<li>identificare le principali cause dei problemi di avvio.<\/li>\n<\/ul>\n<hr \/>\n<h2>Argomenti trattati<\/h2>\n<ul>\n<li>Bootloader e parametri del kernel.<\/li>\n<li>Firmware BIOS e UEFI.<\/li>\n<li>Bootloader GRUB 2.<\/li>\n<li>Kernel Linux.<\/li>\n<li>Initramfs.<\/li>\n<li>Systemd e processo di inizializzazione.<\/li>\n<li>Sequenza completa del boot.<\/li>\n<\/ul>\n<hr \/>\n<h2>101.2.1 Bootloader e parametri del kernel<\/h2>\n<p>Quando un computer viene acceso, il firmware (<strong>BIOS<\/strong> o <strong>UEFI<\/strong>) inizializza l&#8217;hardware e individua il dispositivo dal quale avviare il sistema operativo. A questo punto entra in funzione il <strong>bootloader<\/strong>, un componente fondamentale del processo di avvio. Il bootloader \u00e8 un piccolo programma il cui compito principale \u00e8 <strong>caricare il kernel Linux nella memoria RAM<\/strong> e trasferirgli il controllo del sistema. Senza un bootloader il sistema operativo non potrebbe essere eseguito, poich\u00e9 il firmware non \u00e8 in grado di caricare direttamente il kernel. Oltre ad avviare Linux, il bootloader permette di scegliere quale sistema operativo eseguire, quale versione del kernel utilizzare e quali parametri passare al kernel durante il boot.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 fondamentale conoscere il ruolo del bootloader. Ricorda che il suo compito principale \u00e8 caricare il kernel Linux in memoria e avviarne l&#8217;esecuzione.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Cos&#8217;\u00e8 un bootloader?<\/h3>\n<p>Un <strong>bootloader<\/strong> \u00e8 un programma di piccole dimensioni che viene eseguito immediatamente dopo il firmware BIOS o UEFI. Le sue principali responsabilit\u00e0 sono:<\/p>\n<ul>\n<li>individuare il kernel Linux sul disco;<\/li>\n<li>caricare il kernel nella memoria RAM;<\/li>\n<li>caricare l&#8217;<strong>initramfs<\/strong> (Initial RAM Filesystem), se presente;<\/li>\n<li>passare al kernel eventuali parametri di avvio;<\/li>\n<li>trasferire il controllo al kernel affinch\u00e9 continui il processo di inizializzazione del sistema.<\/li>\n<\/ul>\n<p>Nei sistemi configurati in <strong>dual boot<\/strong> o <strong>multi boot<\/strong>, il bootloader consente inoltre di scegliere quale sistema operativo avviare.<\/p>\n<hr \/>\n<h3>I principali bootloader Linux<\/h3>\n<p>Nel corso degli anni Linux ha utilizzato diversi bootloader. I pi\u00f9 conosciuti sono:<\/p>\n<table>\n<thead>\n<tr>\n<th>Bootloader<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>GRUB 2 (GRand Unified Bootloader)<\/strong><\/td>\n<td>Bootloader utilizzato dalla maggior parte delle distribuzioni Linux moderne.<\/td>\n<\/tr>\n<tr>\n<td><strong>LILO (Linux Loader)<\/strong><\/td>\n<td>Storico bootloader ormai quasi completamente sostituito da GRUB 2.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Attualmente <strong>GRUB 2<\/strong> rappresenta lo standard adottato dalle principali distribuzioni Linux, tra cui Ubuntu, Debian, Fedora, openSUSE e molte altre.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> Sebbene LILO possa ancora comparire in alcune domande d&#8217;esame, nella pratica quasi tutti i sistemi Linux moderni utilizzano <strong>GRUB 2<\/strong>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Il menu di GRUB<\/h3>\n<p>Durante l&#8217;avvio del computer, GRUB visualizza normalmente un menu che permette di scegliere come avviare il sistema. Tra le opzioni pi\u00f9 comuni troviamo:<\/p>\n<ul>\n<li>avvio normale di Linux;<\/li>\n<li>selezione di una diversa versione del kernel;<\/li>\n<li>modalit\u00e0 di ripristino (Recovery Mode);<\/li>\n<li>altri sistemi operativi installati (ad esempio Microsoft Windows).<\/li>\n<\/ul>\n<p>Un esempio semplificato del menu di GRUB \u00e8 il seguente:<\/p>\n<pre><code>GNU GRUB\r\n\r\n&gt; Ubuntu\r\n  Ubuntu (Advanced options)\r\n  Windows Boot Manager<\/code><\/pre>\n<p>Se sul computer \u00e8 installata una sola distribuzione Linux, il menu potrebbe non essere visualizzato e il sistema verr\u00e0 avviato automaticamente dopo alcuni secondi.<\/p>\n<hr \/>\n<h3>Parametri del kernel<\/h3>\n<p>I <strong>parametri del kernel<\/strong> sono opzioni che il bootloader passa al kernel Linux durante il processo di avvio. Essi consentono di modificare il comportamento del sistema prima ancora che venga completata l&#8217;inizializzazione di Linux. Gli amministratori di sistema li utilizzano frequentemente per attivit\u00e0 di manutenzione, diagnostica e risoluzione dei problemi. Alcuni parametri comuni sono:<\/p>\n<table>\n<thead>\n<tr>\n<th>Parametro<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>quiet<\/code><\/td>\n<td>Riduce i messaggi visualizzati durante il boot.<\/td>\n<\/tr>\n<tr>\n<td><code>splash<\/code><\/td>\n<td>Visualizza una schermata grafica durante l&#8217;avvio del sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>single<\/code><\/td>\n<td>Avvia il sistema in modalit\u00e0 utente singolo (single-user mode).<\/td>\n<\/tr>\n<tr>\n<td><code>nomodeset<\/code><\/td>\n<td>Disabilita temporaneamente il Kernel Mode Setting, utile per risolvere alcuni problemi video.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>Modificare temporaneamente i parametri di avvio<\/h3>\n<p>GRUB permette di modificare temporaneamente i parametri del kernel prima dell&#8217;avvio del sistema. Per farlo \u00e8 sufficiente:<\/p>\n<ol>\n<li>selezionare la voce desiderata nel menu di GRUB;<\/li>\n<li>premere il tasto <strong>e<\/strong> (<em>Edit<\/em>);<\/li>\n<li>individuare la riga che inizia con <code>linux<\/code>;<\/li>\n<li>aggiungere i parametri desiderati al termine della riga;<\/li>\n<li>premere <strong>Ctrl + X<\/strong> oppure <strong>F10<\/strong> per avviare il sistema.<\/li>\n<\/ol>\n<p>Ad esempio:<\/p>\n<pre><code>linux \/boot\/vmlinuz-6.8.0 root=\/dev\/sda2 ro quiet splash single<\/code><\/pre>\n<p>In questo caso viene aggiunto il parametro <code>single<\/code>, che avvia il sistema in modalit\u00e0 utente singolo.<\/p>\n<blockquote>\n<p><strong>\u26a0\ufe0f Errore comune<\/strong> Le modifiche effettuate premendo <strong>e<\/strong> nel menu di GRUB sono <strong>temporanee<\/strong>. Hanno effetto solo per l&#8217;avvio corrente e non modificano in modo permanente la configurazione del bootloader.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Prima di rendere permanente un nuovo parametro del kernel, \u00e8 consigliabile provarlo temporaneamente dal menu di GRUB. Se il sistema si avvia correttamente, sar\u00e0 possibile applicare la modifica in modo definitivo aggiornando la configurazione del bootloader.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li>Il bootloader viene eseguito subito dopo BIOS o UEFI.<\/li>\n<li>Il suo compito principale \u00e8 caricare il kernel Linux nella memoria RAM.<\/li>\n<li>GRUB 2 \u00e8 il bootloader utilizzato dalla maggior parte delle distribuzioni Linux moderne.<\/li>\n<li>Dal menu di GRUB \u00e8 possibile scegliere il sistema operativo o una diversa versione del kernel.<\/li>\n<li>I parametri del kernel consentono di modificare il comportamento del sistema durante il boot.<\/li>\n<li>Le modifiche effettuate dal menu di GRUB sono temporanee e valgono solo per l&#8217;avvio corrente.<\/li>\n<\/ul>\n<h2>101.2.2 Panoramica della sequenza di avvio<\/h2>\n<p>L&#8217;avvio di un sistema Linux \u00e8 composto da una serie di fasi che vengono eseguite sempre nello stesso ordine. Ogni componente ha un compito ben preciso e, al termine del proprio lavoro, trasferisce il controllo al componente successivo.<\/p>\n<p>Comprendere questa sequenza \u00e8 fondamentale per diagnosticare eventuali problemi di avvio e per capire il ruolo dei vari componenti che partecipano al processo di boot.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 importante conoscere l&#8217;ordine corretto delle fasi del boot. Una domanda tipica consiste nel riordinare correttamente BIOS\/UEFI, bootloader, kernel, initramfs e sistema di inizializzazione.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Sequenza completa del boot<\/h3>\n<p>Il processo di avvio pu\u00f2 essere riassunto nel seguente schema:<\/p>\n<pre><code>Accensione del computer\r\n        \u2502\r\n        \u25bc\r\nBIOS \/ UEFI\r\n        \u2502\r\n        \u25bc\r\nBootloader (GRUB 2)\r\n        \u2502\r\n        \u25bc\r\nKernel Linux\r\n        \u2502\r\n        \u25bc\r\ninitramfs\r\n        \u2502\r\n        \u25bc\r\nFilesystem root\r\n        \u2502\r\n        \u25bc\r\nsystemd (PID 1)\r\n        \u2502\r\n        \u25bc\r\nServizi di sistema\r\n        \u2502\r\n        \u25bc\r\nSchermata di login<\/code><\/pre>\n<p>Ogni fase prepara quella successiva fino a rendere il sistema completamente operativo.<\/p>\n<hr \/>\n<h3>1. Accensione del computer<\/h3>\n<p>Il processo di boot inizia nel momento in cui il computer viene acceso.<\/p>\n<p>La CPU esegue immediatamente il codice contenuto nel firmware della scheda madre, che pu\u00f2 essere:<\/p>\n<ul>\n<li><strong>BIOS (Basic Input\/Output System)<\/strong>, presente nei sistemi meno recenti;<\/li>\n<li><strong>UEFI (Unified Extensible Firmware Interface)<\/strong>, utilizzato dalla quasi totalit\u00e0 dei computer moderni.<\/li>\n<\/ul>\n<p>Lo scopo di questa fase \u00e8 inizializzare l&#8217;hardware e verificare che il sistema sia pronto per l&#8217;avvio.<\/p>\n<hr \/>\n<h3>2. BIOS o UEFI<\/h3>\n<p>Il firmware esegue il <strong>Power-On Self Test (POST)<\/strong>, una serie di controlli diagnostici che verificano il corretto funzionamento dei principali componenti hardware.<\/p>\n<p>Tra gli elementi controllati troviamo:<\/p>\n<ul>\n<li>processore (CPU);<\/li>\n<li>memoria RAM;<\/li>\n<li>controller dei dischi;<\/li>\n<li>tastiera;<\/li>\n<li>periferiche essenziali.<\/li>\n<\/ul>\n<p>Terminata questa fase, BIOS o UEFI cercano un dispositivo avviabile (boot device), ad esempio un SSD, un hard disk o una chiavetta USB.<\/p>\n<p>Una volta individuato il dispositivo corretto, il firmware carica il bootloader e gli trasferisce il controllo.<\/p>\n<hr \/>\n<h3>3. Bootloader<\/h3>\n<p>Il bootloader (generalmente <strong>GRUB 2<\/strong>) rappresenta il collegamento tra il firmware e il sistema operativo.<\/p>\n<p>Le sue principali funzioni sono:<\/p>\n<ul>\n<li>mostrare il menu di avvio;<\/li>\n<li>consentire la scelta del sistema operativo;<\/li>\n<li>caricare il kernel Linux;<\/li>\n<li>caricare l&#8217;initramfs;<\/li>\n<li>passare eventuali parametri di avvio al kernel.<\/li>\n<\/ul>\n<p>Dopo aver completato queste operazioni, il bootloader cede il controllo al kernel Linux.<\/p>\n<hr \/>\n<h3>4. Kernel Linux<\/h3>\n<p>Il kernel \u00e8 il cuore del sistema operativo.<\/p>\n<p>Durante le prime fasi dell&#8217;avvio provvede a:<\/p>\n<ul>\n<li>inizializzare la memoria;<\/li>\n<li>configurare la CPU;<\/li>\n<li>inizializzare i driver integrati;<\/li>\n<li>rilevare i dispositivi hardware;<\/li>\n<li>decomprimere ed eseguire l&#8217;initramfs.<\/li>\n<\/ul>\n<p>In questa fase il sistema non \u00e8 ancora completamente operativo, poich\u00e9 il filesystem principale non \u00e8 stato ancora montato.<\/p>\n<hr \/>\n<h3>5. Initramfs<\/h3>\n<p>L&#8217;<strong>initramfs (Initial RAM Filesystem)<\/strong> \u00e8 un piccolo filesystem temporaneo caricato interamente nella memoria RAM.<\/p>\n<p>Contiene i driver e gli strumenti necessari affinch\u00e9 il kernel possa individuare e montare il filesystem root del sistema.<\/p>\n<p>Una volta montato il filesystem principale, l&#8217;initramfs termina il proprio lavoro e trasferisce il controllo al sistema di inizializzazione.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> L&#8217;initramfs \u00e8 un filesystem temporaneo. Viene utilizzato esclusivamente durante il processo di boot e non coincide con il filesystem root definitivo del sistema.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>6. Sistema di inizializzazione<\/h3>\n<p>Dopo il montaggio del filesystem principale, il kernel avvia il primo processo dello spazio utente, chiamato <strong>init<\/strong>.<\/p>\n<p>Nei sistemi Linux moderni questo ruolo \u00e8 svolto quasi sempre da <strong>systemd<\/strong>, mentre nei sistemi pi\u00f9 datati pu\u00f2 essere presente <strong>SysVinit<\/strong>.<\/p>\n<p>Il sistema di inizializzazione ha il compito di:<\/p>\n<ul>\n<li>avviare i servizi di sistema;<\/li>\n<li>configurare la rete;<\/li>\n<li>montare gli altri filesystem;<\/li>\n<li>avviare i demoni necessari;<\/li>\n<li>presentare la schermata di login.<\/li>\n<\/ul>\n<p>Il primo processo eseguito nello spazio utente possiede sempre il <strong>PID 1<\/strong>, un dettaglio frequentemente richiesto negli esami LPIC.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Il processo con <strong>PID 1<\/strong> \u00e8 il sistema di inizializzazione. Nei sistemi Linux moderni \u00e8 generalmente <strong>systemd<\/strong>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li>Il firmware (BIOS o UEFI) inizializza l&#8217;hardware ed esegue il POST.<\/li>\n<li>Il bootloader carica il kernel Linux e l&#8217;initramfs.<\/li>\n<li>Il kernel inizializza il sistema e prepara l&#8217;ambiente di esecuzione.<\/li>\n<li>L&#8217;initramfs permette di montare il filesystem root.<\/li>\n<li>Il sistema di inizializzazione (systemd) avvia servizi, demoni e presenta la schermata di login.<\/li>\n<\/ul>\n<h2>101.2.3 I sistemi di inizializzazione (Init Systems)<\/h2>\n<p>Una volta che il kernel Linux ha completato l&#8217;inizializzazione dell&#8217;hardware e montato il filesystem principale, il controllo del sistema viene affidato al <strong>sistema di inizializzazione<\/strong>, comunemente chiamato <strong>init system<\/strong>.<\/p>\n<p>L&#8217;init system \u00e8 il primo processo eseguito nello spazio utente e possiede sempre il <strong>Process ID (PID) 1<\/strong>. Il suo compito \u00e8 preparare il sistema all&#8217;utilizzo, avviando tutti i servizi e i processi necessari per il corretto funzionamento del sistema operativo.<\/p>\n<p>Tra le sue principali responsabilit\u00e0 troviamo:<\/p>\n<ul>\n<li>avviare i servizi di sistema (daemon);<\/li>\n<li>montare i filesystem aggiuntivi;<\/li>\n<li>configurare la rete;<\/li>\n<li>gestire i processi di sistema;<\/li>\n<li>presentare la schermata di login.<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Il primo processo avviato dal kernel nello spazio utente ha sempre <strong>PID 1<\/strong>. Nei sistemi Linux moderni questo processo \u00e8 quasi sempre <strong>systemd<\/strong>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>SysVinit<\/h3>\n<p><strong>SysVinit<\/strong> (System V Init) \u00e8 stato per molti anni il sistema di inizializzazione standard delle distribuzioni Linux.<\/p>\n<p>Si basa su una serie di script di shell che vengono eseguiti in un ordine prestabilito durante l&#8217;avvio e l&#8217;arresto del sistema.<\/p>\n<p>Le principali caratteristiche di SysVinit sono:<\/p>\n<ul>\n<li>configurazione basata su script;<\/li>\n<li>esecuzione sequenziale dei servizi;<\/li>\n<li>utilizzo dei runlevel per definire lo stato operativo del sistema.<\/li>\n<\/ul>\n<p>I file di configurazione principali sono:<\/p>\n<ul>\n<li><code>\/etc\/inittab<\/code> (nelle distribuzioni che lo utilizzano);<\/li>\n<li><code>\/etc\/init.d\/<\/code>, contenente gli script di avvio dei servizi.<\/li>\n<\/ul>\n<p>Sebbene SysVinit sia stato quasi completamente sostituito, \u00e8 ancora importante conoscerne il funzionamento perch\u00e9 compare frequentemente nelle domande LPIC.<\/p>\n<hr \/>\n<h3>Upstart<\/h3>\n<p><strong>Upstart<\/strong> \u00e8 un sistema di inizializzazione sviluppato da Canonical come evoluzione di SysVinit.<\/p>\n<p>A differenza di SysVinit, che avviava i servizi in una sequenza fissa, Upstart introduceva un modello <strong>event-driven<\/strong>, nel quale i servizi venivano avviati in risposta a specifici eventi del sistema.<\/p>\n<p>Questo approccio permetteva di:<\/p>\n<ul>\n<li>ridurre i tempi di avvio;<\/li>\n<li>gestire meglio i servizi dinamici;<\/li>\n<li>reagire automaticamente ai cambiamenti dello stato del sistema.<\/li>\n<\/ul>\n<p>Upstart \u00e8 stato utilizzato per alcuni anni, soprattutto nelle versioni meno recenti di Ubuntu, ma oggi \u00e8 stato quasi completamente sostituito da <strong>systemd<\/strong>.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> Upstart rappresenta una fase di transizione tra il tradizionale SysVinit e il moderno systemd.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>systemd<\/h3>\n<p>Oggi la quasi totalit\u00e0 delle distribuzioni Linux utilizza <strong>systemd<\/strong> come sistema di inizializzazione.<\/p>\n<p>A differenza di SysVinit, systemd utilizza file di configurazione chiamati <strong>unit file<\/strong>, che descrivono servizi, dispositivi, punti di mount e molte altre risorse del sistema.<\/p>\n<p>Tra i principali vantaggi di systemd troviamo:<\/p>\n<ul>\n<li>avvio parallelo dei servizi;<\/li>\n<li>gestione delle dipendenze tra servizi;<\/li>\n<li>maggiore velocit\u00e0 di boot;<\/li>\n<li>integrazione con il journal di sistema (<code>journalctl<\/code>);<\/li>\n<li>gestione centralizzata dei servizi tramite il comando <code>systemctl<\/code>.<\/li>\n<\/ul>\n<p>I file di configurazione delle unit\u00e0 sono generalmente memorizzati nelle directory:<\/p>\n<pre><code>\/usr\/lib\/systemd\/system\/\r\n\/etc\/systemd\/system\/<\/code><\/pre>\n<hr \/>\n<h3>Gestione dei servizi con systemctl<\/h3>\n<p>Il comando principale per amministrare systemd \u00e8 <strong>systemctl<\/strong>.<\/p>\n<p>Alcuni dei comandi pi\u00f9 utilizzati sono:<\/p>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>systemctl start nome_servizio<\/code><\/td>\n<td>Avvia un servizio.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl stop nome_servizio<\/code><\/td>\n<td>Arresta un servizio.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl restart nome_servizio<\/code><\/td>\n<td>Riavvia un servizio.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl status nome_servizio<\/code><\/td>\n<td>Visualizza lo stato di un servizio.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl enable nome_servizio<\/code><\/td>\n<td>Abilita l&#8217;avvio automatico del servizio al boot.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl disable nome_servizio<\/code><\/td>\n<td>Disabilita l&#8217;avvio automatico del servizio.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Ad esempio:<\/p>\n<pre><code>sudo systemctl start ssh\r\nsudo systemctl enable ssh<\/code><\/pre>\n<p>Il primo comando avvia immediatamente il servizio SSH, mentre il secondo ne abilita l&#8217;avvio automatico ad ogni accensione del sistema.<\/p>\n<blockquote>\n<p><strong>\u26a0\ufe0f Errore comune<\/strong> Molti utenti confondono <code>start<\/code> con <code>enable<\/code>. <strong>start<\/strong> avvia il servizio solo nella sessione corrente, mentre <strong>enable<\/strong> lo configura affinch\u00e9 venga avviato automaticamente ai successivi riavvii.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Confronto tra i principali sistemi di inizializzazione<\/h3>\n<table>\n<thead>\n<tr>\n<th>Init System<\/th>\n<th>Caratteristica principale<\/th>\n<th>Stato attuale<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>SysVinit<\/strong><\/td>\n<td>Script e runlevel<\/td>\n<td>Storico<\/td>\n<\/tr>\n<tr>\n<td><strong>Upstart<\/strong><\/td>\n<td>Avvio basato su eventi<\/td>\n<td>Obsoleto<\/td>\n<\/tr>\n<tr>\n<td><strong>systemd<\/strong><\/td>\n<td>Unit file e gestione centralizzata dei servizi<\/td>\n<td>Standard attuale<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>\u2699\ufe0f Best Practice<\/strong> Anche se oggi quasi tutte le distribuzioni utilizzano systemd, un amministratore Linux dovrebbe conoscere anche SysVinit e Upstart, poich\u00e9 possono comparire nella documentazione tecnica, in sistemi legacy e nelle domande d&#8217;esame LPIC.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li>L&#8217;init system \u00e8 il primo processo dello spazio utente e possiede sempre il PID 1.<\/li>\n<li>SysVinit utilizza script di shell e runlevel.<\/li>\n<li>Upstart \u00e8 stato un sistema di inizializzazione basato su eventi.<\/li>\n<li>Systemd \u00e8 il sistema di inizializzazione utilizzato dalla maggior parte delle distribuzioni Linux moderne.<\/li>\n<li>Il comando <code>systemctl<\/code> permette di gestire servizi e unit\u00e0 di systemd.<\/li>\n<\/ul>\n<h2>101.2.4 Log di avvio e diagnostica<\/h2>\n<p>Quando un sistema Linux non si avvia correttamente, la prima attivit\u00e0 dell&#8217;amministratore consiste nell&#8217;analizzare i messaggi generati durante il processo di boot.<\/p>\n<p>Linux mette a disposizione diversi strumenti per consultare questi messaggi e individuare eventuali errori relativi al kernel, ai driver, ai filesystem o ai servizi di sistema.<\/p>\n<p>Tra gli strumenti pi\u00f9 utilizzati troviamo <strong>dmesg<\/strong> e <strong>journalctl<\/strong>, entrambi fondamentali per la diagnostica del sistema.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 importante conoscere la differenza tra <code>dmesg<\/code> e <code>journalctl<\/code>. Il primo mostra i messaggi del kernel, mentre il secondo permette di consultare il journal di systemd.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Il comando dmesg<\/h3>\n<p>Il comando <strong>dmesg<\/strong> visualizza il contenuto del <strong>kernel ring buffer<\/strong>, ovvero i messaggi generati dal kernel durante il processo di avvio e durante il funzionamento del sistema.<\/p>\n<p>Questi messaggi riguardano principalmente:<\/p>\n<ul>\n<li>rilevamento dell&#8217;hardware;<\/li>\n<li>caricamento dei driver;<\/li>\n<li>inizializzazione dei dispositivi;<\/li>\n<li>errori del kernel;<\/li>\n<li>filesystem e periferiche.<\/li>\n<\/ul>\n<p>Per visualizzare i messaggi del kernel:<\/p>\n<pre><code>dmesg<\/code><\/pre>\n<p>Poich\u00e9 l&#8217;output pu\u00f2 essere molto esteso, \u00e8 comune utilizzare un pager:<\/p>\n<pre><code>dmesg | less<\/code><\/pre>\n<p>Oppure filtrare eventuali errori:<\/p>\n<pre><code>dmesg | grep -i error<\/code><\/pre>\n<hr \/>\n<h3>Il comando journalctl<\/h3>\n<p>Nei sistemi che utilizzano <strong>systemd<\/strong>, i messaggi di sistema vengono archiviati nel <strong>systemd journal<\/strong>.<\/p>\n<p>Il comando <code>journalctl<\/code> consente di consultare questi log applicando numerosi filtri.<\/p>\n<p>Per visualizzare tutti i messaggi dell&#8217;avvio corrente:<\/p>\n<pre><code>journalctl -b<\/code><\/pre>\n<p>Per consultare il boot precedente:<\/p>\n<pre><code>journalctl -b -1<\/code><\/pre>\n<p>Per visualizzare solamente gli errori:<\/p>\n<pre><code>journalctl -p err -b<\/code><\/pre>\n<p>Per consultare i log di un determinato servizio:<\/p>\n<pre><code>journalctl -u ssh.service<\/code><\/pre>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> Il parametro <code>-b<\/code> limita la visualizzazione ai messaggi relativi al processo di boot.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Scenario pratico: il sistema si blocca durante l&#8217;avvio<\/h3>\n<p>Supponiamo che il sistema Linux si blocchi subito dopo il menu di GRUB e non completi l&#8217;avvio.<\/p>\n<p>Le possibili cause possono essere diverse:<\/p>\n<ul>\n<li>problemi durante l&#8217;inizializzazione dell&#8217;hardware;<\/li>\n<li>driver del kernel non funzionanti;<\/li>\n<li>initramfs danneggiato;<\/li>\n<li>filesystem root corrotto;<\/li>\n<li>servizi essenziali che non riescono ad avviarsi.<\/li>\n<\/ul>\n<p>In questi casi \u00e8 possibile:<\/p>\n<ol>\n<li>avviare il sistema in modalit\u00e0 di ripristino (Recovery Mode);<\/li>\n<li>consultare i messaggi del kernel con <code>dmesg<\/code>;<\/li>\n<li>analizzare i log del boot tramite <code>journalctl -b<\/code>;<\/li>\n<li>verificare eventuali servizi non avviati correttamente.<\/li>\n<\/ol>\n<p>Ad esempio, il comando:<\/p>\n<pre><code>systemctl --failed<\/code><\/pre>\n<p>mostra tutti i servizi che risultano in stato di errore.<\/p>\n<hr \/>\n<h3>Quando utilizzare questi strumenti<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Utilizzo principale<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>dmesg<\/code><\/td>\n<td>Visualizza i messaggi del kernel.<\/td>\n<\/tr>\n<tr>\n<td><code>journalctl -b<\/code><\/td>\n<td>Mostra i log dell&#8217;avvio corrente.<\/td>\n<\/tr>\n<tr>\n<td><code>journalctl -b -1<\/code><\/td>\n<td>Visualizza i log del boot precedente.<\/td>\n<\/tr>\n<tr>\n<td><code>journalctl -u servizio<\/code><\/td>\n<td>Mostra i log di un servizio.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl --failed<\/code><\/td>\n<td>Elenca i servizi che non sono stati avviati correttamente.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>\u26a0\ufe0f Errore comune<\/strong> Molti utenti utilizzano esclusivamente <code>dmesg<\/code> per cercare un problema di avvio. Nei sistemi moderni, tuttavia, gran parte delle informazioni \u00e8 disponibile tramite <code>journalctl<\/code>, che offre strumenti di ricerca e filtraggio molto pi\u00f9 avanzati.<\/p>\n<\/blockquote>\n<blockquote>\n<p><strong>\u2699\ufe0f Best Practice<\/strong> Quando un sistema presenta problemi durante il boot, \u00e8 consigliabile seguire questo ordine di verifica:<\/p>\n<ol>\n<li>consultare <code>dmesg<\/code> per individuare eventuali errori del kernel;<\/li>\n<li>analizzare i log con <code>journalctl -b<\/code>;<\/li>\n<li>verificare i servizi non avviati tramite <code>systemctl --failed<\/code>;<\/li>\n<li>controllare lo stato dei singoli servizi con <code>systemctl status nome_servizio<\/code>.<\/li>\n<\/ol>\n<\/blockquote>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li><code>dmesg<\/code> visualizza i messaggi del kernel.<\/li>\n<li><code>journalctl<\/code> permette di consultare il systemd journal.<\/li>\n<li><code>journalctl -b<\/code> mostra i log dell&#8217;avvio corrente.<\/li>\n<li><code>journalctl -b -1<\/code> permette di analizzare il boot precedente.<\/li>\n<li>La consultazione dei log rappresenta uno degli strumenti pi\u00f9 efficaci per diagnosticare problemi di avvio.<\/li>\n<\/ul>\n<h2>\ud83d\udcda Riepilogo della lezione<\/h2>\n<p>In questa lezione hai approfondito il processo di avvio di un sistema Linux, analizzando tutte le fasi che portano dall&#8217;accensione del computer fino alla presentazione della schermata di login. Hai scoperto il ruolo del firmware BIOS\/UEFI, del bootloader, del kernel Linux, dell&#8217;initramfs e del sistema di inizializzazione, comprendendo come questi componenti collaborano per rendere il sistema operativo pienamente funzionante.<\/p>\n<p>Hai inoltre imparato a utilizzare gli strumenti principali per analizzare il processo di boot e diagnosticare eventuali problemi di avvio attraverso i log del kernel e del systemd journal.<\/p>\n<h3>Concetti principali<\/h3>\n<ul>\n<li>Hai compreso il ruolo del <strong>bootloader<\/strong> e dei parametri del kernel durante il processo di avvio.<\/li>\n<li>Hai analizzato la sequenza completa del boot, dall&#8217;accensione del computer fino alla schermata di login.<\/li>\n<li>Hai distinto il funzionamento di <strong>BIOS<\/strong> e <strong>UEFI<\/strong> e il loro ruolo nell&#8217;inizializzazione dell&#8217;hardware.<\/li>\n<li>Hai compreso le funzioni del <strong>kernel Linux<\/strong> e dell&#8217;<strong>initramfs<\/strong> durante il boot.<\/li>\n<li>Hai conosciuto i principali sistemi di inizializzazione: <strong>SysVinit<\/strong>, <strong>Upstart<\/strong> e <strong>systemd<\/strong>.<\/li>\n<li>Hai imparato a utilizzare <code>dmesg<\/code> e <code>journalctl<\/code> per analizzare i messaggi di avvio del sistema.<\/li>\n<li>Hai acquisito le basi per diagnosticare i pi\u00f9 comuni problemi che possono verificarsi durante il processo di boot.<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\ud83c\udfaf Obiettivo raggiunto<\/strong> Al termine di questa lezione sei in grado di descrivere tutte le principali fasi del processo di avvio di Linux, comprendere il ruolo dei componenti coinvolti e utilizzare gli strumenti fondamentali per analizzare e diagnosticare eventuali problemi di boot.<\/p>\n<\/blockquote>\n<h3>Comandi da ricordare<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>dmesg<\/code><\/td>\n<td>Visualizza i messaggi del kernel.<\/td>\n<\/tr>\n<tr>\n<td><code>dmesg | less<\/code><\/td>\n<td>Mostra i messaggi del kernel tramite un pager.<\/td>\n<\/tr>\n<tr>\n<td><code>journalctl -b<\/code><\/td>\n<td>Visualizza i log dell&#8217;avvio corrente.<\/td>\n<\/tr>\n<tr>\n<td><code>journalctl -b -1<\/code><\/td>\n<td>Visualizza i log dell&#8217;avvio precedente.<\/td>\n<\/tr>\n<tr>\n<td><code>journalctl -u nome_servizio<\/code><\/td>\n<td>Mostra i log di uno specifico servizio.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl start nome_servizio<\/code><\/td>\n<td>Avvia un servizio.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl enable nome_servizio<\/code><\/td>\n<td>Abilita l&#8217;avvio automatico di un servizio.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl status nome_servizio<\/code><\/td>\n<td>Visualizza lo stato di un servizio.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl --failed<\/code><\/td>\n<td>Elenca i servizi che risultano in errore.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>\ud83d\udca1 Preparazione all&#8217;esame LPIC-1<\/strong> Prima di proseguire assicurati di conoscere l&#8217;ordine corretto delle fasi del boot, il ruolo di BIOS\/UEFI, GRUB, kernel, initramfs e systemd e di saper distinguere quando utilizzare <code>dmesg<\/code> oppure <code>journalctl<\/code>. Questi argomenti sono tra i pi\u00f9 richiesti nelle domande dell&#8217;esame LPIC-1 Exam 101.<\/p>\n<\/blockquote>\n<hr \/>\n<h2>\u27a1\ufe0f Prossima lezione<\/h2>\n<p>Nella prossima lezione (<strong>101.3 Cambiare i runlevel, target di avvio e spegnere o riavviare il sistema<\/strong>) approfondirai il funzionamento dei runlevel tradizionali e dei target di <strong>systemd<\/strong>, imparando a gestire correttamente l&#8217;avvio, l&#8217;arresto e il riavvio di un sistema Linux.<\/p>\n","protected":false},"comment_status":"open","ping_status":"closed","template":"","class_list":["post-3583","lesson","type-lesson","status-publish","has-post-thumbnail","hentry"],"uagb_featured_image_src":[],"uagb_author_info":{"display_name":"Rootmail Academy","author_link":"https:\/\/rootmail.it\/en\/author\/"},"uagb_comment_info":0,"uagb_excerpt":"101.2 Avviare il sistema L&#8217;avvio di un sistema Linux \u00e8 un processo composto da diverse fasi, durante le quali firmware, bootloader, kernel e sistema di inizializzazione collaborano per rendere il computer operativo. Comprendere il funzionamento del processo di boot \u00e8 una competenza fondamentale per qualsiasi amministratore di sistema. Molti problemi di avvio possono infatti essere&hellip;","_links":{"self":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/lesson\/3583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/lesson"}],"about":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/types\/lesson"}],"replies":[{"embeddable":true,"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/comments?post=3583"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/media\/3665"}],"wp:attachment":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/media?parent=3583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}