1 14/04/2026 10 min

CentOS 8 Minimal Server è una scelta sensata quando vuoi un sistema pulito, con pochi pacchetti di base e controllo totale su ciò che installi dopo il primo boot. Il punto non è “mettere su Linux”, ma partire con un’installazione prevedibile: ISO corretta, supporto di boot verificato, rete disponibile e una configurazione iniziale che non ti costringa a rifare tutto al primo aggiornamento.

Prima di andare avanti, una precisazione utile: CentOS Linux 8 ha raggiunto fine vita e non riceve più aggiornamenti di sicurezza dal progetto originale. Se ti serve un sistema CentOS-like per produzione, oggi ha più senso valutare CentOS Stream 8/9, Rocky Linux o AlmaLinux. Se però devi installare CentOS 8 per compatibilità, laboratorio, migrazione o documentazione storica, la procedura sotto resta valida come base operativa.

Scaricare l’immagine giusta senza sbagliare architettura

La prima decisione concreta è l’architettura. Su server moderni quasi sempre ti serve la ISO x86_64. Scaricare una variante sbagliata o un file incompleto è il modo più rapido per perdere tempo in fase di boot o, peggio, per installare un sistema che non corrisponde all’hardware reale.

Se lavori da Linux, controlla subito l’architettura della macchina su cui installerai il sistema:

uname -m

Per un server Intel o AMD a 64 bit il risultato atteso è x86_64. Se non coincide, fermati lì e scegli l’immagine corretta. Non c’è nulla di “compensabile” a posteriori con l’installer.

Scarica la ISO solo da una fonte affidabile e conserva anche il file di checksum. Se il sito di origine è ancora disponibile nel tuo scenario, il controllo di integrità è il passaggio che separa un download sano da un supporto corrotto.

wget https://example.org/CentOS-8-Minimal.iso
wget https://example.org/sha256sum.txt

Il nome reale del file può cambiare in base allo specchio o all’archivio che stai usando. L’importante è che tu abbia sia l’immagine sia il checksum associato. Se il repository originale non è più disponibile, usa un mirror affidabile o un archivio interno e annota la provenienza nel ticket o nella documentazione del change.

Verificare checksum e supporto di boot prima di toccare il server

Non saltare la verifica del checksum. Un ISO danneggiato può sembrare valido fino al momento in cui l’installer fallisce, o peggio ancora installa con errori silenziosi. Questo vale ancora di più se il file è stato trasferito più volte o copiato su una chiavetta USB con strumenti diversi.

sha256sum CentOS-8-Minimal.iso

Confronta l’hash ottenuto con quello pubblicato. L’esito corretto è una corrispondenza esatta, senza differenze di maiuscole, spazi o caratteri extra. Se non combacia, riscarica l’immagine prima di proseguire.

Per creare il supporto USB da Linux, usa uno strumento semplice e trasparente. dd resta una scelta lineare quando sai cosa stai facendo, ma devi avere la certezza assoluta del device target. Un errore qui non è reversibile sul contenuto del disco selezionato.

lsblk

Identifica con precisione la chiavetta, ad esempio /dev/sdb, e non la partizione /dev/sdb1. Poi scrivi l’immagine:

sudo dd if=CentOS-8-Minimal.iso of=/dev/sdb bs=4M status=progress conv=fsync

Il rischio operativo è evidente: se sbagli device, sovrascrivi il disco sbagliato. Il rollback, in quel caso, non esiste sul supporto di destinazione. Per questo conviene fare un secondo controllo con lsblk prima di lanciare il comando.

Avviare il server dal media corretto

Inserita la chiavetta o montata l’immagine virtuale, entra nel BIOS/UEFI e imposta il boot dal supporto di installazione. Su macchine recenti, UEFI è la modalità da preferire, perché semplifica la gestione delle partizioni e si allinea meglio agli standard attuali.

Se il server parte su rete o su disco invece che sul supporto di installazione, il problema è quasi sempre nel boot order o nella voce UEFI/legacy. In quel caso la verifica minima è banale: controlla che il device USB sia visto dal firmware e che il boot entry sia prioritaria rispetto al disco interno.

Durante la schermata iniziale dell’installer, scegli Install CentOS 8. Se la macchina ha problemi video, conviene anche passare parametri kernel solo quando hai già un motivo concreto per farlo; nella maggior parte dei casi il boot standard basta.

Configurazione iniziale dell’installer Anaconda

L’installer di CentOS usa Anaconda, che centralizza lingua, tastiera, rete, storage e software selection. La logica corretta è semplice: prima stabilizzi i parametri che influenzano la raggiungibilità del sistema, poi passi allo storage, infine al profilo software.

Imposta lingua e tastiera in base all’uso reale del server. Se amministri da remoto, la tastiera locale conta meno, ma fare bene questa parte evita sorprese su console KVM o accessi out-of-band.

La rete va configurata subito se vuoi usare repository esterni, hostname corretti o installazione via mirror. Su un minimal server è normale assegnare un indirizzo statico, soprattutto se il nodo dovrà ospitare servizi pubblici o essere raggiungibile in modo prevedibile.

In Anaconda, apri Network & Host Name, abilita l’interfaccia e compila i campi necessari. Se usi DHCP per il primo boot, annota comunque l’indirizzo ottenuto per non perdere l’accesso una volta riavviato il sistema.

Partizionamento: minimal non vuol dire improvvisato

Uno degli errori più comuni è trattare il minimal come sinonimo di “tutto in automatico”. In realtà il server minimale ha bisogno di una struttura disco razionale, anche se ridotta. La scelta dipende dal contesto, ma in genere conviene separare almeno il sistema base dai dati applicativi quando sai già che il nodo ospiterà servizi persistenti.

Per un server semplice puoi restare su una configurazione LVM con / e /boot, lasciando spazio libero nel VG per crescere in seguito. Se prevedi log voluminosi o database, valuta partizioni dedicate o mount separati per /var e /var/lib.

Una base sensata per molte installazioni è questa:

/boot   1 GiB
/       20-30 GiB
swap    secondo RAM e policy
resto   in VG/LVM o per dati

Se il server ha RAM abbondante e non ospita workload particolari, lo swap può essere contenuto. Se invece prevedi picchi o componenti che reagiscono male all’OOM, dimensionarlo con criterio è ancora utile. Non esiste una taglia universale: dipende da memoria, carico e policy di gestione.

Con UEFI, assicurati che la partizione EFI sia presente. Di solito Anaconda la crea automaticamente se il disco è inizializzato correttamente. La verifica pratica è vedere una EFI System Partition montata su /boot/efi.

Selezionare il profilo Minimal Install

La schermata Software Selection è il punto in cui molti installano troppo. Se l’obiettivo è un minimal server, seleziona Minimal Install e aggiungi solo ciò che serve davvero: ad esempio vim, curl, wget, bash-completion o strumenti di diagnostica.

Il vantaggio è evidente: meno pacchetti significa meno superficie d’attacco, meno dipendenze, meno aggiornamenti inutili e meno variabili da tenere sotto controllo. Il rovescio della medaglia è che devi sapere in anticipo quali strumenti ti servono per operare sul nodo senza accesso fisico.

Se il server sarà amministrato da remoto, io considero quasi sempre utile aggiungere almeno questi pacchetti in fase iniziale:

vim-enhanced
curl
wget
net-tools
bind-utils
policycoreutils-python-utils

Questa lista non è obbligatoria, ma riduce il rischio di dover installare strumenti di emergenza mentre stai ancora risolvendo un problema di connettività o SELinux. Se preferisci una base ancora più stretta, puoi rimandare tutto al primo accesso SSH, sapendo però che il sistema inizierà più “nudo”.

Impostare password, utente e accesso amministrativo

Durante l’installazione imposta una password root robusta oppure crea subito un utente amministrativo con privilegi sudo. In ambienti gestiti, la seconda opzione è spesso più pulita: riduce l’uso diretto di root e lascia traccia più chiara delle azioni amministrative.

Dopo il primo boot, verifica che il tuo utente sia nel gruppo corretto per usare sudo. Il controllo minimo è questo:

id nomeutente

Se non compare il gruppo wheel o l’equivalente configurato, aggiungilo con cautela e verifica il comportamento di sudo. La modifica è reversibile, ma va fatta con criterio, soprattutto se stai standardizzando più server.

Primo avvio e controlli subito dopo l’installazione

Al termine dell’installazione, riavvia e rimuovi il supporto di boot. Il primo obiettivo non è “vedere il desktop”, ma confermare che il sistema salga in modo coerente, che la rete sia operativa e che il login locale o remoto funzioni.

Appena entri, controlla lo stato dei servizi principali e la versione del kernel:

uname -r
systemctl --failed
ip a
ip r

Il risultato atteso è un sistema senza unità fallite, con interfaccia di rete attiva e route coerente verso gateway e DNS. Se la rete non risponde, il problema è quasi sempre nella configurazione dell’interfaccia o nel profilo assegnato durante l’installazione.

Controlla anche il repository configurato e lo stato della subscription logic se stai usando sorgenti residue o mirror locali. Su CentOS 8, vista la fine del ciclo di vita, è particolarmente importante sapere da dove arriveranno gli aggiornamenti e se il mirror è ancora realmente disponibile.

Abilitare aggiornamenti e strumenti base senza allargare troppo il sistema

Su un minimal server conviene installare solo ciò che serve per manutenzione e troubleshooting. Un set tipico comprende client SSH, utilità di rete, editor e strumenti SELinux. Poi si aggiunge il resto in base al ruolo della macchina.

Un esempio di installazione mirata, da eseguire dopo aver verificato la disponibilità dei repository, è questo:

sudo dnf install -y vim-enhanced curl wget bind-utils policycoreutils-python-utils

Se dnf non riesce a risolvere i repository, il problema non è il pacchetto ma la sorgente di aggiornamento. In un contesto EOL, può essere necessario puntare a un archivio interno o a mirror storicizzati. Qui non conviene improvvisare: prima si valida il repository, poi si aggiungono pacchetti.

Verifica finale: il server è davvero pronto?

Un’installazione riuscita non coincide con un server pronto. Il controllo finale deve rispondere a una domanda semplice: posso amministrare la macchina in modo affidabile senza accesso fisico? Se la risposta è no, manca ancora un pezzo.

Fai almeno questi controlli:

hostnamectl
systemctl status sshd
firewall-cmd --state
getenforce

Atteso: hostname coerente, sshd attivo, firewall in uno stato noto e SELinux in modalità prevista dalla tua policy. Se SELinux è attivo, verifica subito eventuali denial nei log prima di installare servizi aggiuntivi. È più facile correggere un contesto o un booleano all’inizio che inseguire un problema quando il server ospita già applicazioni.

Se il nodo deve essere esposto in rete, assicurati anche che il firmware, il sistema operativo e il layer di sicurezza non stiano aprendo più di quanto serve. Minimal non significa “senza protezioni”: significa ridurre i componenti superflui mantenendo visibili quelli essenziali.

Quando ha senso usare CentOS 8 Minimal oggi

Ha senso quando devi mantenere coerenza con un ambiente esistente, riprodurre un guasto, documentare una procedura legacy o preparare una migrazione controllata verso un sostituto compatibile. Non ha senso come base nuova per servizi esposti a lungo termine, perché il ciclo di aggiornamenti non è più quello di un sistema vivo e supportato.

Se stai progettando un’installazione nuova, il criterio corretto è questo: stessa logica operativa, distribuzione aggiornata. La sequenza di download, verifica, boot, partizionamento e first boot non cambia molto; cambia il fatto che il sistema scelto riceve ancora manutenzione e patch. È il dettaglio che fa la differenza fra un server che resta gestibile e uno che diventa un debito tecnico immediato.

In sintesi operativa: scarica la ISO giusta, verifica l’hash, prepara il supporto di boot senza errori, installa in modalità Minimal, controlla rete e accesso amministrativo, poi congela una baseline chiara del sistema. Da lì in poi, ogni servizio aggiunto deve avere un motivo preciso, non solo l’abitudine di “mettere i soliti pacchetti”.