Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Programmazione/DebootstrapChroot"
Differenze tra le versioni 27 e 28
Versione 27 del 12/09/2009 21.10.42
Dimensione: 20366
Commento:
Versione 28 del 24/09/2009 16.24.53
Dimensione: 6187
Commento: sistemata
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 5: Linea 5:
[[VersioniSupportate(jaunty)]]
Linea 43: Linea 44:
= Definizioni e notazioni = ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%>[[Immagine(Icone/Piccole/warning.png,,center)]] ||<style="padding:0.5em; border:none;">'''È importante non racchiudere fra virgolette i valori inseriti dopo il carattere''' «=» '''e non inserire spazi prima e dopo lo stesso'''. ||
Linea 45: Linea 46:
Si indicherà con '''@main''' il sistema principale e con '''@chroot''' la shell nel sistema ''chroot''. Con '''user@''' e '''root@''' si indicano, rispettivamente, un utente comune e l'amministratore. = Avviare debootstrap =
Linea 47: Linea 48:
Per risparmiare la scrittura di molti '''sudo''', da una shell invocate i diritti di root: {{{
user@main$ sudo bash
Il comando '''debootstrap''' scaricherà e decomprimerà un sistema Ubuntu di base nella cartella del sottosistema ''chroot''.

Digitare i seguenti comandi in una finestra di terminale:
{{{
sudo mkdir -p /srv/chroot/karmic_i386
sudo debootstrap --variant=buildd --arch i386 karmic /srv/chroot/karmic_i386 http://archive.ubuntu.com/ubuntu/
Linea 51: Linea 56:
= Creare il chroot =

Utilizziamo '''apt-get''' per installare ''dchroot'', pacchetto che contiene un setuid binario che permette agli utenti di eseguire una shell o altri comandi sotto un differente filesystem di root, e ''deboostrap'', che permette di creare un sistema base senza avere '''apt''' e '''dpkg''' disponibili: {{{
root@main# apt-get install dchroot debootstrap
I precedenti comandi sono validi per qualsiasi distribuzione derivata da Debian, é sufficiente sostituire i parametri «karmic», «i386» e l'indirizzo degli archivi con quelli appropriati alla configurazione desiderata. Per esempio, con il seguente comando si può creare un sottosistema ''chroot'' di '''Ubuntu 9.04''' «'''Jaunty Jackalope'''» per architetture '''lpia''':
{{{
sudo debootstrap --arch lpia jaunty /srv/chroot/jaunty_lpia/ http://archive.ubuntu.com/ubuntu/
Linea 57: Linea 61:
Creare la directory per il ''chroot'': {{{
root@main# mkdir /mychroot
Per creare un sottosistema Debian per [:Architettura64Bit:architetture a 64 bit] è possibile utilizzare un comando simile al seguente:
{{{
sudo debootstrap --arch amd64 sid /srv/chroot/sid_amd64/ http://ftp.debian.org/debian/
Linea 61: Linea 66:
Se avete intenzione di installare diversi chroot valutate la possibilità di non utilizzare la directory /mychroot direttamente, ma di utilizzare una sua sottodirectory (per esempio: /mychroot/primo e /mychroot/secondo, etc). ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''È necessario adattare il file di configurazione al sottosistema installato''. ||
Linea 63: Linea 68:
||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Utilizzare una partizione dedicata per il chroot rende tutto molto più elegante, anche se non indispensabile. Scegliere una partizione e montarla aggiungendo la riga al file'' `/etc/fstab`. || = Verificare il chroot =
Linea 65: Linea 70:
Modifichiamo il file /etc/dchroot.conf: {{{
root@main# echo "il_mio_chroot /mychroot" >> /etc/dchroot.conf
Il seguente comando visualizza l'elenco dei sottosistemi installati e configurati:
{{{
schroot -l
Linea 69: Linea 75:
Infatti, '''dchroot''' legge le configurazioni di questo file per determinare i chroot validi nel sistema. Le linee consistono di un identificatore e di un percorso separato da spazi. Se più di una linea sono presenti la prima indica il chroot di default.

Se volete un chroot a 32-bit su un sistema con architettura 64 bit aggiungete al comando debootstrap l'opzione --arch i386, mentre userete --arch amd64 per creare un chroot a 64-bit (ma solo se avete un 64-bit!), se volete usare il chroot per costruire nuovi pacchetti aggiungete l'opzione --variant=buildd.

Per realizzare un chroot a 32-bit di breezy: {{{
root@main# debootstrap --arch i386 breezy /mychroot/ http://archive.ubuntu.com/ubuntu
Se nell'elenco è visibile la voce relativa al ''chroot'' desiderato, è possibile effettuarvi l'accesso come amministratore digitando il seguente comando in una finestra di terminale:
{{{
schroot -c karmic_i386 -u root
Linea 77: Linea 80:
Sostituite breezy con dapper se volete Dapper Drake. Ovvero scriverete: {{{
root@main# debootstrap --arch i386 dapper /mychroot/ http://archive.ubuntu.com/ubuntu
Sostituire la dicitura «karmic» con quella adatta alla propria configurazione.

= Gestione dei collegamenti fra il sistema ospite e quello virtuale =

Per comodità, le cartelle presenti in «/home» vengono montate all'interno del sistema virtuale. Nel caso si desideri una diversa configurazione, è sufficiente aprire il file `/etc/schroot/mount-defaults` con un [:Ufficio/EditorDiTesto:editor di testo] con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] e commentare le righe relative alle cartelle degli utenti.

Quello che segue è un esempio:
{{{
# mount.defaults: static file system information for chroots.
# Note that the mount point will be prefixed by the chroot path
# (CHROOT_PATH)
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/pts /dev/pts none rw,bind 0 0
tmpfs /dev/shm tmpfs defaults 0 0
#/home /home none rw,bind 0 0
/tmp /tmp none rw,bind 0 0
Linea 81: Linea 100:
Alternative per realizzare un chroot di Debian: {{{
root@main# debootstrap --arch i386 sid /mychroot/ http://ftp.debian.org/debian/
root@main# debootstrap --arch amd64 sid /mychroot/ http://amd64.debian.net/debian-amd64/
= Installazione di un sistema di base =

Prima di procedere con l'installazione dei pacchetti è necessario accedere al sistema virtuale. Digitare il seguente comando:
{{{
schroot -c karmic_i386 -u root
Linea 86: Linea 107:
||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Alcuni autori consigliano di eseguire il chroot di una Debian testing e solo dopo di aggiornare a Sid.'' || Sostituire la dicitura «karmic» con quella adatta alla propria configurazione.
Linea 88: Linea 109:
Se '''debootstrap''' termina con successo avete un sistema base in /mychroot, ma occorrono alcune operazioni per renderlo utilizzabile con successo. Montate il filesystem `/proc` per il chroot: {{{
root@main# echo "/proc /mychroot/proc proc defaults 0 0" >> /etc/fstab
root@main# mount /proc
Per installare i pacchetti di base all'interno di un sistema ''chroot'' è sufficiente digitare i seguenti comandi:
{{{
apt-get install ubuntu-minimal
Linea 93: Linea 114:
Copiare la configurazione del file di `hosts` e il file dei repository: {{{
root@main# cp /etc/hosts /mychroot/etc/
root@main# cp /etc/apt/sources.list /mychroot/etc/apt/
}}}

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Modificare il file'' `sources.list` ''se necessario, affinché'' '''apt-get''' ''punti ai corretti repository.'' ||

Finalmente entrate nel vostro nuovo chroot: {{{
root@main# chroot /mychroot/
}}}

Aggiornate il vostro sistema (notate che nel vostro chroot siete amministratori e non è necessario utilizzare il comando sudo): {{{
root@chroot# apt-get update
root@chroot# apt-get upgrade
}}}

Se volete riconfigurate la vostra lingua: {{{
root@chroot# apt-get install locales dialog
root@chroot# dpkg-reconfigure locales
}}}

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Diversi avvisi relativi a Perl compariranno mentre lanciate il comando ma questo non pregiudica il funzionamento del chroot.'' ||

Per configurare l'ora: {{{
root@chroot# tzconfig
}}}

Per terminare la vostra sessione nel nuovo chroot è sufficiente uscire con il comando: {{{
root@main# exit
}}}

Se volete accedere al vostro chroot solo da amministratore potete non proseguire la lettura ed accedere al vostro chroot con il comando: {{{
user@main$ sudo chroot /chroot/
}}} ma probabilmente sarete in grado di utilizzare solo la shell. Se invece volete sfruttare tutta la potenza che dchroot offre (ovvero usare programmi con interfaccia grafica, ed altro) vi conviene stringere i denti e proseguire.

[[Anchor(login)]]
= Configurare il login di un chroot =

Come visto configurare il chroot è semplice, accedervi è ancora più semplice, ma cosi facendo nel chroot siete sempre amministratori e inoltre mantenete i set dell'ambiente principale anche nel chroot. Immaginate di poter accedere nel chroot attraverso il login di un altro terminale virtuale oppure attraverso gdm: ecco potete fare anche questo!

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Se l'intento è solo quello di utilizzare programmi con interfaccia del chroot dal sistema principale, passare alla sezione [#chrootutentecomune successiva].'' ||

Create un nuovo utente per il sistema chroot, che vi servirà per accedervi al login: {{{
root@chroot# adduser utente_comune_chroot
}}}

Ora, per poter dedicare un terminale virtuale al vostro chroot modificate il vostro `/etc/inittab`: {{{
root@main# echo "8:23:respawn:/usr/sbin/chroot /mychroot /sbin/getty 38400 tty8" >> /etc/inittab
}}}

Riavviate init: {{{
root@main# init q
}}}

Premendo contemporaneamente '''Ctrl+Alt+F8''' passerete nel terminale virtuale 8 dove potrete effettuare il login al vostro chroot: in questo terminale non avete '''X'''. Premete '''Ctrl+Alt+F7''' per tornare nel terminale virtuale 7 utilizzato in modo predefinito.

Se volete utilizzare X e GNOME (ma potrebbe essere anche KDE) nel vostro chroot, configurate i device, installate GNOME, gdm e il sistema X-window: {{{
root@chroot# cd /dev
root@chroot# /sbin/MAKEDEV generic
root@chroot# apt-get install gdm gnome x-window-system-core
}}}

Uscite dal chroot e modificate il file `/mychroot/etc/gdm/gdm.conf`, sostituendo, nella sezione «'''[servers]'''», la riga: {{{
0=Standard vt7
}}} con: {{{
1=Standard vt9
}}}

Così facendo, avete abilitato il display ''':1''' nel terminale virtuale 9. Prima di potervi accedere dovete configurare X modificando il file `/etc/X11/xorg.conf`.
Da un terminale del vostro sistema: {{{
root@main# cp /etc/X11/xorg.conf /mychroot/etc/X11/
}}}

Finalmente dal chroot potete avviare l'interfaccia grafica del chroot: {{{
root@chroot# /etc/init.d/gdm start
}}}

Il sistema passerà automaticamente al terminale virtuale 9 dove vedrete caricare il login manager. Accedete come di consueto, utilizzando l'utente precedentemente creato. Utilizzate '''Ctrl+Alt+F7''' e '''Ctrl+Alt+F9''' per passare da un sistema all'altro.

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Se invece di gdm volete utilizzare kdm, consultare la documentazione relativa per la corretta configurazione.'' ||

[[Anchor(chrootutentecomune)]]
= Configurare un ambiente chroot per un utente comune =

L'approccio precedente consente di utilizzare tutto il sistema grafico di chroot, con variabili d'ambiente diverse, anzi con un utente appositamente creato per il sistema chroot. Spesso però è necessario voler consentire all'utente comune del sistema principale di accedere ai programmi residenti nel sistema chroot, lasciandogli mantenere le proprie impostazioni di base, condividendo la /home tra sistema principale e chroot.

Copiate le informazioni degli utenti (`/etc/passwd`), le password criptate degli utenti (`/etc/shadow`), le informazioni dei gruppi (`/etc/group`), le abilitazioni concesse per sudo (`/etc/sudoers`) e le informazioni per la connessione di rete (`/etc/hosts`): {{{
root@main# cp /etc/passwd /mychroot/etc/
root@main# cp /etc/shadow /mychroot/etc/
root@main# cp /etc/group /mychroot/etc/
root@main# cp /etc/sudoers /mychroot/etc/
}}}


||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Non è possibile realizzare un collegamento simbolico in'' `/mychroot/etc/` ''ai file originali, poiché una volta nel chroot la directory di root cambia e il collegamento simbolico punterebbe riferendosi alle nuove condizioni.'' ||

Modificate il file `/etc/fstab` del vostro sistema (non del chroot) per permettere il mount di alcune directory direttamente nel chroot: {{{
root@main# echo "/home /mychroot/home none bind 0 0" >> /etc/fstab
root@main# echo "/tmp /mychroot/tmp none bind 0 0" >> /etc/fstab
root@main# echo "/dev /mychroot/dev none bind 0 0" >> /etc/fstab
root@main# echo "/media/cdrom0 /mychroot/media/cdrom0 none bind 0 0" >> /etc/fstab
root@main# echo "/usr/share/fonts /mychroot/usr/share/fonts none bind 0 0" >> /etc/fstab
}}}

Per montare altre directory direttamente nel chroot, avrete capito che dovete aggiungere una riga nel file `/etc/fstab` scritta così: {{{
directory /mychroot/punto_di_mount none bind 0 0
}}}

Create le directory nel chroot: {{{
root@main# mkdir /mychroot/media/cdrom0
root@main# mkdir /mychroot/usr/share/fonts
}}}

Rimontate il vostro file [:AmministrazioneSistema/Fstab:fstab]: {{{
root@main# mount -a
}}}

Per per chi a letto il quarto capitolo: è probabile che l'utente precedentemente creato non riesca più a eseguire l'accesso. I due approcci hanno finalità diverse ma possono convivere: è necessario creare nuovamente l'utente del sistema ''chroot''.

Ora anche il vostro utente comune può accedere al vostro chroot ed operare in esso preservando il suo ambiente: {{{
user@main$ dchroot -d
}}}

Ora sarà possibile lanciare ed utilizzare programmi con interfaccia grafica (preventivamente installati nel chroot). Per migliorarne l'aspetto installate ''gtk2-engines-ubuntulooks''.
Per uscire dal chroot usate il comando: {{{
user@chroot$ exit
}}}

Se avete più di un chroot e non volete utilizzare il chroot di default utilizzate il comando: {{{
user@main$ dchroot -c nome_chroot_inserito_in_dchroot.conf -d
}}}

= Usare il chroot dal sistema principale =

Se avete eseguito correttamente le istruzioni precedenti avete configurato un chroot nel vostro sistema e abilitato l'utilizzo del vostro chroot per gli utenti comuni. Siete in grado di lavorare con un sistema diverso e di utilizzare programmi con interfaccia grafica. Ma che noia dover lanciare i programmi da shell! (speriamo che Steve Bourne non legga il tutorial. Perdonami Steve!) Volete lanciare le vostre GUI direttamente dal vostro sistema utilizzando solo il mouse? Sciogliete le dita e... tra breve... sarete in grado di farlo.

Dopo aver installato il programma nel chroot, è necessario creare uno script nel sistema, creare un link simbolico nel sistema e un collegamento grafico da cliccare con il mouse. Per evitare omonimie tra programmi residenti nel sistema e quelli nel chroot è bene creare un link anche nel chroot (aggiungendo un opportuno suffisso).

Installate il programma nel chroot e create il link anti-omonimia: {{{
user@chroot$ sudo apt-get install programma
user@chroot$ sudo ln -s /usr/bin/programma /usr/local/bin/programma_con_suffisso
}}}

Nel sistema principale create lo script /usr/local/bin/do_dchroot: {{{
root@main# gedit /usr/local/bin/do_dchroot
}}}

i cui comandi saranno: {{{
#!/bin/bash
/usr/bin/dchroot -d "${0##*/} \"${*// /\ }\""
}}}

Salvate e rendete il file eseguibile: {{{
root@main# chmod 755 /usr/local/bin/do_dchroot
}}}

Per ogni programma di chroot che volete eseguire è necessario create un link simbolico allo script do_chroot in /usr/local/bin. Se volete eseguire il programma_con_suffisso: {{{
root@main# ln -s /usr/local/bin/do_dchroot /usr/local/bin/programma_con suffisso
}}}

Ora da una shell lanciate il comando /usr/local/bin/programma_con_suffisso (preceduto da sudo se necessario).

Se volete una icona da cliccare create un collegamento (nel desktop o in un pannello) con gnome nel quale il comando dell'applicazione sarà /usr/local/bin/programma_con_suffisso. Se volete un icona nel menu create un file programma_con_suffisso.desktop in /usr/local/share/applications.


[[Anchor(firefox)]]
Tutto chiaro? Probabilmente no! Facciamo un esempio: supponete di voler installare firefox nel vostro chroot. Entrate nel chroot: {{{
user@main$ dchroot -d
}}}

Installate firefox (con tutte le sue dipendenze): {{{
user@chroot$ sudo apt-get install firefox
}}}

Create un link simbolico a firefox nel chroot (uso il suffisso 32, perché il mio chroot è una architettura i386 in un sistema amd64): {{{
user@chroot$ sudo ln -s /usr/bin/firefox /usr/local/bin/firefox32
}}}

Uscite dal chroot: {{{
user@chroot$ exit
}}}

Create un link nel vostro sistema: {{{
user@main$ sudo ln -s /usr/local/bin/do_dchroot /usr/local/bin/firefox32
}}}

Ora da shell chiamate il comando firefox32, oppure se avete creato il collegamento grafico... cliccateci sopra: il firefox a 32-bit dovrebbe essere pronto per voi.


||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Se si installa Synaptic nel chroot, è possibile invocarlo dal sistema principale con'' '''sudo synaptic32'''. ''Per farne un collegamento grafico, usare il comando'' '''gksudo /usr/sbin/synaptic'''. ||


Un altro modo più veloce di invocare un programma nel chroot è: {{{
user@main$ dchroot -d nomeprogramma
}}}

= Conclusioni =

Questa breve guida consente di installare un ''chroot'' nel proprio sistema principale. È possibile usare il ''chroot'' da riga di comando, da root o come utente normale, è possibile accedere al ''chroot'' da riga di comando oppure graficamente con variabili d'ambiente diverse, è possibile utilizzare i programmi residenti nel ''chroot'' dal sistema principale...

= Aggiornamenti =

== Montare un CD-ROM all'interno del chroot ==

Modificare il file `/etc/fstab` dentro al ''chroot'', aggiungendo la riga del device del CD-ROM.

Per esempio: se il CD-ROM è indicato come `/dev/hda`, aggiungerela riga: {{{
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
}}}

Per l'uso del CD-ROM è necessaria la riga di comando. Per montare il CD-ROM: {{{
mount /media/cdrom0
}}} Per smontarlo: {{{
umount /media/cdrom0
}}}

== Per gli utenti KDE ==

Le applicazioni KDE non partiranno se non dopo aver montato nella chroot anche la directory `/var/tmp`.

= La procedura senza commenti =

Di seguito l'elenco dei comandi (senza commenti) da invocare per realizzare un chroot 32-bit di breezy in un sistema breezy a 64-bit. Il chroot è installato in `/mychroot/breezy32`. Al termine si installerà synaptic per il sistema a 32-bit.

Codice: {{{
sudo bash
>>inserire vostra password
apt-get install dchroot debootstrap
mkdir /mychroot
mkdir /mychroot/breezy32
echo "breezy32 /mychroot/breezy32" >> /etc/dchroot.conf
debootstrap --arch i386 breezy /mychroot/breezy32/ http://archive.ubuntu.com/ubuntu
echo "/proc /mychroot/breezy32/proc proc defaults 0 0" >> /etc/fstab
mount /proc
cp /etc/hosts /mychroot/breezy32/etc/
cp /etc/apt/sources.list /mychroot/breezy32/etc/apt/
chroot /mychroot/breezy32/

apt-get update
apt-get upgrade
apt-get install locales dialog
Se si desidera installare il supporto per la lingua italiana è sufficiente digitare i seguenti comandi:
{{{
Linea 335: Linea 117:
tzconfig
cd /dev
/sbin/MAKEDEV generic
apt-get install gdm gnome x-window-system
exit

gedit /mychroot/breezy32/etc/gdm/gdm.conf
>>Sostituire nella sezione [servers] 0=Standard vt7 con 1=Standard vt9
>>Salvare

echo "8:23:respawn:/usr/sbin/chroot /mychroot/breezy32 /sbin/getty 38400 tty8" >> /etc/inittab
init q
cp /etc/X11/xorg.conf /mychroot/breezy32/etc/X11/
cp /etc/passwd /mychroot/breezy32/etc/
cp /etc/shadow /mychroot/breezy32/etc/
cp /etc/group /mychroot/breezy32/etc/
cp /etc/sudoers /mychroot/breezy32/etc/
echo "/home /mychroot/breezy32/home none bind 0 0" >> /etc/fstab
echo "/tmp /mychroot/breezy32/tmp none bind 0 0" >> /etc/fstab
echo "/dev /mychroot/breezy32/dev none bind 0 0" >> /etc/fstab
echo "/media/cdrom0 /mychroot/breezy32/media/cdrom0 none bind 0 0" >> /etc/fstab
echo "/usr/share/fonts /mychroot/breezy32/usr/share/fonts none bind 0 0" >> /etc/fstab
mkdir /mychroot/breezy32/media/cdrom0
mkdir /mychroot/breezy32/usr/share/fonts
mount -a
chroot /mychroot/breezy32/

adduser user32
>>rispondere alle domande
apt-get install synaptic
ln -s /usr/bin/synaptic /usr/local/bin/synaptic32
exit

gedit /usr/local/bin/do_dchroot
>>Scrivere
  #!/bin/bash
  /usr/bin/dchroot -d "${0##*/} \"${*// /\ }\""
>>Salvare
chmod 755 /usr/local/bin/do_dchroot
ln -s /usr/local/bin/do_dchroot /usr/local/bin/synaptic32

Per avviare synaptic per il 32-bit dal sistema 64-bit:

sudo synaptic32
>> inserire password

Per avviare il secondo display (quando necessario):

sudo dchroot -d
>>inserire password
sudo /etc/init.d/gdm start
>> inserire password
apt-get install language-pack-it
locale-gen it.UTF-8
Linea 392: Linea 124:
 * [http://alioth.debian.org/docman/view.php/30192/21/debian-amd64-howto.html The Debian GNU/Linux AMD64 HOW-TO]
 * [http://qref.sourceforge.net/Debian/reference/reference.it.html Debian Reference]
 * [wiki:Ubuntu/DebootstrapChroot DebootstrapChroot]
 * [wiki:Ubuntu/DebootstrapChroot Guida del wiki internazionale]

BR Indice() VersioniSupportate(jaunty)

Introduzione

Questa guida mostra come usare debootstrap per realizzare un ambiente virtuale chroot senza ricorrere all'uso di sistemi di virtualizzazione.

Installazione

È necessario installare i pacchetti [apt://debootstrap debootstrap] e [apt://schroot schroot].

Configurazione di schroot

Prima di proseguire, è necessario assegnare un nome all'ambiente virtuale e creare, con un [:Ufficio/EditorDiTesto:editor di testo], un file di configurazione nella cartella /etc/schroot/chroot.d/. Quello che segue è un esempio:

sudo editor /etc/schroot/chroot.d/karmic_i386.conf

Immagine(Icone/Piccole/note.png,,center)

Sostituire la dicitura «karmic_i386» con il nome scelto per il sistema virtuale.

Inserire nel file di configurazione creato in precedenza tutte le informazioni necessarie al corretto funzionamento dell'ambiente virtuale. Quello che segue è un esempio:

[karmic_i386]
description=Ubuntu 9.10 Karmic for i386
location=/srv/chroot/karmic_i386
#personality=linux32
root-users=bob
run-setup-scripts=true
run-exec-scripts=true
type=directory
users=alessio,milo,leo

Quello che segue è un elenco che illustra alcune delle opzioni possibili:

  • location: Indica la cartella contenente il filesystem del sistema virtuale; è consigliato impostare un percorso simile a /srv/chroot/.

  • personality: Tipo di architettura, da specificare se diversa da quella del sistema ospite.

  • users: Elenco degli utenti che potranno accedere al sistema virtuale tramite il comando schroot; è consigliato inserire il proprio nome utente.

  • root-users: Elenco degli utenti che potranno accedere al sistema virtuale tramite il comando schroot e ai quali verranno assegnati i [:AmministrazioneSistema/Sudo:privilegi di amministrazione].

Immagine(Icone/Piccole/warning.png,,center)

È importante non racchiudere fra virgolette i valori inseriti dopo il carattere «=» e non inserire spazi prima e dopo lo stesso.

Avviare debootstrap

Il comando debootstrap scaricherà e decomprimerà un sistema Ubuntu di base nella cartella del sottosistema chroot.

Digitare i seguenti comandi in una finestra di terminale:

sudo mkdir -p /srv/chroot/karmic_i386
sudo debootstrap --variant=buildd --arch i386 karmic /srv/chroot/karmic_i386 http://archive.ubuntu.com/ubuntu/

I precedenti comandi sono validi per qualsiasi distribuzione derivata da Debian, é sufficiente sostituire i parametri «karmic», «i386» e l'indirizzo degli archivi con quelli appropriati alla configurazione desiderata. Per esempio, con il seguente comando si può creare un sottosistema chroot di Ubuntu 9.04 «Jaunty Jackalope» per architetture lpia:

sudo debootstrap --arch lpia jaunty /srv/chroot/jaunty_lpia/ http://archive.ubuntu.com/ubuntu/

Per creare un sottosistema Debian per [:Architettura64Bit:architetture a 64 bit] è possibile utilizzare un comando simile al seguente:

sudo debootstrap --arch amd64 sid /srv/chroot/sid_amd64/ http://ftp.debian.org/debian/

Immagine(Icone/Piccole/note.png,,center)

È necessario adattare il file di configurazione al sottosistema installato.

Verificare il chroot

Il seguente comando visualizza l'elenco dei sottosistemi installati e configurati:

schroot -l

Se nell'elenco è visibile la voce relativa al chroot desiderato, è possibile effettuarvi l'accesso come amministratore digitando il seguente comando in una finestra di terminale:

schroot -c karmic_i386 -u root

Sostituire la dicitura «karmic» con quella adatta alla propria configurazione.

Gestione dei collegamenti fra il sistema ospite e quello virtuale

Per comodità, le cartelle presenti in «/home» vengono montate all'interno del sistema virtuale. Nel caso si desideri una diversa configurazione, è sufficiente aprire il file /etc/schroot/mount-defaults con un [:Ufficio/EditorDiTesto:editor di testo] con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] e commentare le righe relative alle cartelle degli utenti.

Quello che segue è un esempio:

# mount.defaults: static file system information for chroots.
# Note that the mount point will be prefixed by the chroot path
# (CHROOT_PATH)
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/pts        /dev/pts        none    rw,bind         0       0
tmpfs           /dev/shm        tmpfs   defaults        0       0
#/home           /home           none    rw,bind         0       0
/tmp            /tmp            none    rw,bind         0       0

Installazione di un sistema di base

Prima di procedere con l'installazione dei pacchetti è necessario accedere al sistema virtuale. Digitare il seguente comando:

schroot -c karmic_i386 -u root

Sostituire la dicitura «karmic» con quella adatta alla propria configurazione.

Per installare i pacchetti di base all'interno di un sistema chroot è sufficiente digitare i seguenti comandi:

apt-get install ubuntu-minimal

Se si desidera installare il supporto per la lingua italiana è sufficiente digitare i seguenti comandi:

dpkg-reconfigure locales
apt-get install language-pack-it
locale-gen it.UTF-8

Ulteriori risorse


CategoryNuoviDocumenti