Avevo la necessità di creare un numero consistente di macchine virtuali per fare delle simulazioni, ma tutte, pur condividendo la stessa distribuzione Linux di base, mi portavano via molto tempo e molto impegno perché ogni volta mi ritrovavo a dover rimuovere dei pacchetti che l'installer mi aveva automaticamente installato.
L'unica soluzione che vedevo a questo problema era quella di partire da una installazione minimale di Ubuntu, in modo da poter aggiungere in seguito solo i pacchetti veramente necessari. Ho individuato la soluzione (e anche la mia salvezza) nel comando
Premetto che la procedura che descrivo di seguito l'ho utilizzata personalmente sia per eseguire installazioni di macchine virtuali, che per l'installazione del mio notebook.
In sintesi ciò che faremo:
La mia scelta è ricaduta su Finnix101, per le seguenti motivazioni:
Facciamo partire Finnix e, una volta scelto il kernel, ci ritroviamo al nostro bel prompt dei comandi come root. Per prima cosa, se non vogliamo impazzire, carichiamo il layout della tastiera italiana con il comando
e a questo punto possiamo iniziare con il partizionamento dei dischi.
Innanzitutto verifichiamo quanti e quali dischi abbiamo a disposizione con il comando
e poi partizioniamo secondo le nostre necessità.
Solitamente divido il disco in due partizioni: la prima per l'area di swap e la seconda come partizione LVM dove verranno creati i volumi logici da utilizzare.
Supponiamo di voler creare una partizione per
al prompt di
A questo punto siamo pronti per passare alla fase dell'installazione del sistema operativo. Per prima cosa montiamo la nostra partizione
e lanciamo debootstrap per installare un sistema operativo base. In questo esempio installeremo Ubuntu 11.04 a 64bit. Quindi lanciamo il comando
e attendiamo che tutto si concluda senza errori.
Bene, la nostra Ubuntu 11.04 minimale è installata nella directory
All'interno dell'ambiente
Adesso siamo pronti per terminare l'installazione. I pacchetti base necessari per il boot della macchina sono il kernel, il boot loader e i moduli per LVM. A questi aggiungiamo anche qualche pacchetto di utilità che può esserci d'aiuto dopo aver effettuato il boot. Per quanto riguarda il kernel andremo ad installare una versione server, ma si può scegliere quella che si vuole. Per prima cosa impostiamo la password per l'utente root.
e poi
Terminata la fase di installazione dei pacchetti necessari al boot del sistema, facciamo un minimo di configurazione che riguarderà l'hostname della macchina, la tastiera e la timezone. L'hostname scelto per questo esempio è
Per la tastiera:
e seguire le istruzioni a video. Per la timezone:
e seguire le istruzioni a video. Siamo pronti per riavviare il sistema e per installare i pacchetti desiderati.
Riavviamo uscendo prima dall'ambiente
Una volta riavviato il sistema (ovviamente in modalità testuale) facciamo il login come
Prima di addentrarsi ad installare qualsiasi pacchetto, consiglio vivamente di modificare il file
L'unica soluzione che vedevo a questo problema era quella di partire da una installazione minimale di Ubuntu, in modo da poter aggiungere in seguito solo i pacchetti veramente necessari. Ho individuato la soluzione (e anche la mia salvezza) nel comando
debootstrap
, che permette di installare, in modo minimale, all'interno di una directory, una distribuzione Ubuntu o Debian.Premetto che la procedura che descrivo di seguito l'ho utilizzata personalmente sia per eseguire installazioni di macchine virtuali, che per l'installazione del mio notebook.
In sintesi ciò che faremo:
- scaricare la base minima di una distribuzione in una directory
- fare un chroot su questa directory
- impostare la password di root
- installare i pacchetti necessari al boot della macchina
- editare qualche file configurazione
- procedere al reboot della macchina
La mia scelta è ricaduta su Finnix101, per le seguenti motivazioni:
- è basata su Debian
- è stata studiata per i system administrator e quindi ha a disposizione molti tool, utile quindi per essere utilizzata anche come RescueCD
- permette di fare il boot sia del kernel a 32bit che di quello a 64bit dalla stessa ISO
- la sua ISO è molto compatta (soli 128MB)
Facciamo partire Finnix e, una volta scelto il kernel, ci ritroviamo al nostro bel prompt dei comandi come root. Per prima cosa, se non vogliamo impazzire, carichiamo il layout della tastiera italiana con il comando
loadkeys it
e a questo punto possiamo iniziare con il partizionamento dei dischi.
Innanzitutto verifichiamo quanti e quali dischi abbiamo a disposizione con il comando
fdisk -l
e poi partizioniamo secondo le nostre necessità.
Solitamente divido il disco in due partizioni: la prima per l'area di swap e la seconda come partizione LVM dove verranno creati i volumi logici da utilizzare.
Supponiamo di voler creare una partizione per
/boot
e una per la /
, e che il nostro disco sia stato individuato come /dev/sda
. Andremo a creare 2 partizioni: 1 per l'area di swap e una per i volumi logici di LVM.fdisk /dev/sda
al prompt di
fdisk
procediamo come di seguito riportato:- premere
n
per creare una nuova partizione - scegliere
p
per una partizione primaria - specificare
1
come numero di partizione da creare - premere
invio
per accettare l'inizio di default della partizione - specifichiamo la grandezza della partizione di swap che sarà di 4GB digitando al prompt
+4096MB
- scegliere nuovamente
n
per creare l'altra partizione - scegliere di nuovo
p
per una partizione primaria - specificare
2
come numero di partizione da creare - premere
invio
sia per accettare l'inizio della partizione, sia la fine della stessa, poiché vogliamo utilizzare l'intero disco - premere
t
per impostare il tipo di partizione - selezionare
1
come partizione da utilizzare - digitare
82
per selezionare il tipo di partizioneLinux Swap
- premere nuovamente
t
- selezionare la partizione numero
2
- digitare
8e
per selezionare il tipo di partizioneLinux LVM
- premere
p
per verificare la correttezza della situazione corrente - se tutto è corretto premere
w
per salvare le modifiche sul disco
/dev/sda1: Linux Swap
/dev/sda2: Linux LVM
Passiamo ora alla creazione dei volumi logici LVM per l'installazione del sistema operativo.
Per prima cosa impostiamo la partizione
Ora creiamo il gruppo logico con la partizione
e infine creiamo 2 volumi logici: uno per la partizione
Passiamo alla formattazione dei volumi logici con il tipo di filesystem desiderato. Io ho scelto ext4.Per prima cosa impostiamo la partizione
/dev/sda2
come physical device con il comandopvcreate /dev/sda2
Ora creiamo il gruppo logico con la partizione
/dev/sda2
con il comandovgcreate hds /dev/sda2
e infine creiamo 2 volumi logici: uno per la partizione
/
e uno per la partizione /boot
impartendo i seguenti comandi:lvcreate -n boot -L 1GB hds
lvcreate -n root -l 100%FREE hds
mkfs.ext4 /dev/hds/root
mkfs.ext4 /dev/hds/boot
mkswap /dev/sda1
A questo punto siamo pronti per passare alla fase dell'installazione del sistema operativo. Per prima cosa montiamo la nostra partizione
/dev/hds/root
in /mnt
mount /dev/hds/root /mnt
e lanciamo debootstrap per installare un sistema operativo base. In questo esempio installeremo Ubuntu 11.04 a 64bit. Quindi lanciamo il comando
debootstrap --arch=amd64 natty /mnt
e attendiamo che tutto si concluda senza errori.
Bene, la nostra Ubuntu 11.04 minimale è installata nella directory
/mnt
. Ciò che dobbiamo fare ora è un chroot
in questa directory per terminare la fase d'installazione. Prima però ricarichiamo il layout della tastiera italiana perché per qualche motivo è andato perso con il debootstrap
.loadkeys it
All'interno dell'ambiente
chroot
avremo bisogno dell'attuale directory /dev
che quindi monteremo con l'opzione --bind
. Poi eseguiremo il chroot
nella directory /mnt
e monteremo i filesystem virtuali di sistema e il volume logico destinato a /boot
. Il chroot
eseguirà automaticamente la shell bash e si posizionerà nell'ambiente dell'utente root
come se avesse appena fatto il login.mount --bind /dev /mnt/dev
chroot /mnt /bin/bash -c "su -"
mount none /proc -t proc
mount none /sys -t sysfs
mount none /dev/pts -t devpts
mount /dev/hds/boot /boot
Adesso siamo pronti per terminare l'installazione. I pacchetti base necessari per il boot della macchina sono il kernel, il boot loader e i moduli per LVM. A questi aggiungiamo anche qualche pacchetto di utilità che può esserci d'aiuto dopo aver effettuato il boot. Per quanto riguarda il kernel andremo ad installare una versione server, ma si può scegliere quella che si vuole. Per prima cosa impostiamo la password per l'utente root.
passwd
e poi
apg-get update
apt-get install linux-image-server lvm2 vim psmisc bash-completion
Terminata la fase di installazione dei pacchetti necessari al boot del sistema, facciamo un minimo di configurazione che riguarderà l'hostname della macchina, la tastiera e la timezone. L'hostname scelto per questo esempio è
myserver01
quindi digitiamo:echo myserver01 > /etc/hostname
hostname -F /etc/hostname
Per la tastiera:
dpkg-reconfigure keyboard-configuration
e seguire le istruzioni a video. Per la timezone:
dpkg-reconfigure tzdata
e seguire le istruzioni a video. Siamo pronti per riavviare il sistema e per installare i pacchetti desiderati.
Riavviamo uscendo prima dall'ambiente
chroot
exit
reboot
Una volta riavviato il sistema (ovviamente in modalità testuale) facciamo il login come
root
e installiamo il software a piacimento secondo le nostre esigenze. Per questo utilizziamo apt-get
oppure aptitude
. Se si vuole installare l'ambiente desktop è sufficiente installare il pacchetto virtuale ubuntu-desktop
.Prima di addentrarsi ad installare qualsiasi pacchetto, consiglio vivamente di modificare il file
/etc/apt/sources.list
per aggiungere i repository degli aggiornamenti di Ubuntu, e di aggiornare il sistema. Solo ad aggiornamento avvenuto (e un eventuale reboot nel caso in cui sia stato aggiornato anche il kernel) procederei con l'installazione dei pacchetti desiderati.
Nessun commento:
Posta un commento