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 1 e 39 (in 38 versioni)
Versione 1 del 08/06/2006 21.27.11
Dimensione: 19130
Autore: UgodiPerso
Commento:
Versione 39 del 22/06/2012 11.54.19
Dimensione: 6837
Commento: revisionata e aggiornata a precise pangolin
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
||<tablestyle="float:right; font-size: 0.9em; width:30%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]][[TableOfContents]]||

= Realizzare un Chroot con Debootstrap =

Una breve guida su come realizzare una root alternativa
## page was renamed from Programmazione/Chroot
## page was renamed from ChrootConDebootstrap
#format wiki
#LANGUAGE it
<<BR>>
<<Indice(depth=1)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/index.php/topic,320302.0.html"; rilasci="12.04 11.10 11.04 10.04")>>
Linea 9: Linea 11:
Questo tutorial mostra come usare debootstrap per realizzare un ambiente chroot che può essere usato per diversi usi: provare le ultime release di Ubuntu, testare nuovi programmi senza "sporcare" il proprio sistema, avere un sistema a 32-bit secondario (per utilizzare programmi disponibili solo a 32-bit, senza dover rinunciare ad un sistema a 64-bit) o anche lavorare con Debian... tutto è possibile con un chroot. Questa guida mostra come usare '''debootstrap''' per realizzare un ambiente virtuale [[AmministrazioneSistema/Chroot|chroot]] senza ricorrere all'uso di sistemi di [Virtualizzazione|virtualizzazione]].
Linea 11: Linea 13:
Prima si installeranno gli strumenti per ottenere un chroot e si spiegherà come realizzare una configurazione di base, dopo si descriverà come accedere al login del sistema di chroot da un diverso terminale virtuale (quelli ottenibili premendo CTRL+ALT ed F1, F2, etc), poi come consentire ad un utente normale di accedere al chroot mantenendo le sue varibili d'ambiente ed infine come accedere ai programmi residenti nel chroot direttamente dal vostro sistema. = Installazione =
Linea 13: Linea 15:
Quello che leggerete non è un'opera originale (il grazie va agli autori dei riferimenti riportati) ma solo una libera interpretazione dei loro accorgimenti adattati alle mie esigenze. È necessario [[AmministrazioneSistema/InstallareProgrammi|installare]] i pacchetti [[apt://debootstrap | debootstrap]] e [[apt://schroot | schroot]].
Linea 15: Linea 17:
= Riferimenti = = Configurazione di schroot =
Linea 17: Linea 19:
The Debian GNU/Linux AMD64 HOW-TO - 2005 - Rosenberg, Iverson, von Brederlow, Schueler, Mills, Pariset - http://alioth.debian.org/docman/view.php/30192/21/debian-amd64-howto.html

Debian Reference Chapter 8 Debian tips - 2006 -Aoki et al. - http://qref.sourceforge.net/Debian/reference/reference.en.html

''Nota: "La guida Debian" è tradotta in italiano - http://qref.sourceforge.net/Debian/reference/reference.it.html''

DebootstrapChroot - Marzo 2006 - Autori vari - https://wiki.ubuntu.com/DebootstrapChroot

HOWTO: 32-Bit Chroot on 64-Bit Installs - Aprile 2005 - Autori vari - http://www.ubuntuforums.org/showthread.php?t=24575

Pagine di man - Autori vari - Nel vostro sistema invocando il comando man nome_programma


= Definizioni e notazioni =

Tutto è stato provato su una Ubuntu Breezy Badger, ma non c'è motivo di ritenere che non funzioni su una Ubuntu DapperDrake o su una Debian. Si immagina che abbiate una connessione alla rete disponibile.

Si indicherà con @main il sistema principale e con @chroot la shell nel sistema chroot. Con user@ e root@ si indicano un utente comune e l'amministratore, rispettivamente. Per risparmiare la scrittura di molti sudo, da una shell invocate i diritti di root:
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/`. Digitare in una finestra di [[AmministrazioneSistema/RigaDiComando|terminale]]:
Linea 37: Linea 21:
user@main$ sudo bash sudo editor /etc/schroot/chroot.d/precise_i386.conf
Linea 40: Linea 24:
Ora avete i permessi di amministrazione del sistema. ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Sostituire la dicitura'' «editor» ''con l'editor di testo scelto e'' «precise_i386» ''con il nome scelto per il sistema virtuale''. ||
Linea 42: Linea 26:

3 Creare il chroot

Utilizziamo apt-get per installare dchroot (questo pacchetto 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 da scratch, senza avere apt e dpkg disponibili):
Inserire nel file di configurazione creato in precedenza tutte le informazioni necessarie al corretto funzionamento dell'ambiente virtuale. Quello che segue è un esempio:
Linea 48: Linea 28:
root@main# apt-get install dchroot debootstrap [precise_i386]
description=Ubuntu 12.04 Precise for i386
type=directory
directory=/srv/chroot/precise_i386
#personality=linux32
root-users=bob
run-setup-scripts=true
run-exec-scripts=true
type=directory
users=alessio,milo,leo
Linea 51: Linea 40:
Realizziamo la directory: Quello che segue è un elenco che illustra alcune delle opzioni possibili:
Linea 53: Linea 42:
 * '''type''': Il tipo di chroot, fra i valori ammessi ci sono ''plain'', ''directory'', ''file'' e ''loopback''.
 * '''directory''': Indica la cartella contenente il filesystem del sistema virtuale qualora sia di tipo ''directory''; è 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]].

||<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'''. ||

= 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:
Linea 54: Linea 56:
root@main# mkdir /mychroot sudo mkdir -p /srv/chroot/precise_i386
sudo debootstrap --variant=buildd --arch i386 precise /srv/chroot/precise_i386 http://archive.ubuntu.com/ubuntu/
Linea 57: Linea 60:
Se avete intenzione di installare diversi chroot valutate la possibilità di non utilizzzare la directory /mychroot direttamente, ma di utilizzare una sua sotto-directory (per esempio: /mychroot/primo e /mychroot/secondo, etc).

''NOTA Utilizzare una partizione dedicata per il chroot rende tutto molto più elegante, anche se non indispensabile. Scegliete una partizione e montatela aggiungendo la riga al vostro file /etc/fstab.''

Modifichiamo il file /etc/dchroot.conf:
I precedenti comandi sono validi per qualsiasi distribuzione derivata da Debian, é sufficiente sostituire i parametri «precise», «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 11.10''' «'''Oneiric Ocelot'''» per architetture '''amd64''':
Linea 64: Linea 62:
root@main# echo "il_mio_chroot /mychroot" >> /etc/dchroot.conf sudo debootstrap --arch amd64 oneiric /srv/chroot/oneiric_amd64/ http://archive.ubuntu.com/ubuntu/
Linea 67: Linea 65:
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 amd64 (o emt64) 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:
Per creare un sottosistema '''Debian''' per [[Architettura64Bit|architetture a 64 bit]] è possibile utilizzare un comando simile al seguente:
Linea 74: Linea 67:
root@main# debootstrap --arch i386 breezy /mychroot/ http://archive.ubuntu.com/ubuntu sudo debootstrap --arch amd64 sid /srv/chroot/sid_amd64/ http://ftp.debian.org/debian/
Linea 77: Linea 70:
Sostituite breezy con dapper se volete DapperDrake. Ovvero scriverete: ||<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 79: Linea 72:
= Verificare il chroot =

Il seguente comando visualizza l'elenco dei sottosistemi installati e configurati:
Linea 80: Linea 76:
root@main# debootstrap --arch i386 dapper /mychroot/ http://archive.ubuntu.com/ubuntu schroot -l
Linea 83: Linea 79:
Alternative per realizzare un chroot di Debian:
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:
Linea 86: Linea 81:
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/
schroot -c lucid_i386 -u root
Linea 90: Linea 84:
''NOTA Alcuni autori consigliano di eseguire il chroot di una debian testing e solo dopo di aggiornare a sid.'' Sostituire la dicitura «lucid» con quella adatta alla propria configurazione.
Linea 92: Linea 86:
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: = Gestione dei collegamenti fra il sistema ospite e quello virtuale =
Linea 94: Linea 88:
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:
Linea 95: Linea 92:
root@main# echo "/proc /mychroot/proc proc defaults 0 0" >> /etc/fstab
root@main# mount /proc
# 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 99: Linea 104:
Copiate la configurazione del file di hosts e il file delle repository: = Installazione di un sistema di base =
Linea 101: Linea 106:
Prima di procedere con l'installazione dei pacchetti è necessario accedere al sistema virtuale. Digitare il seguente comando:
Linea 102: Linea 108:
root@main# cp /etc/hosts /mychroot/etc/
root@main# cp /etc/apt/sources.list /mychroot/etc/apt/
schroot -c precise_i386 -u root
Linea 106: Linea 111:
''NOTA Modificate il file sources.list se necessario, affinche apt-get punti alle corrette repository.'' Sostituire la dicitura «precise» con quella adatta alla propria configurazione.
Linea 108: Linea 113:
Finalmente entrate nel vostro nuovo chroot:
Per installare i pacchetti di base all'interno di un sistema ''chroot'' è sufficiente digitare i seguenti comandi:
Linea 111: Linea 115:
root@main# chroot /mychroot/ apt-get install ubuntu-minimal
Linea 114: Linea 118:
Aggiornate il vostro sistema (notate che nel vostro chroot siete amministratori e non è necessario utilizzare il comando sudo):
Se si desidera installare il supporto per la lingua italiana è sufficiente digitare i seguenti comandi:
Linea 117: Linea 120:
root@chroot# apt-get update
root@chroot# apt-get upgrade
dpkg-reconfigure locales
apt-get install language-pack-it
locale-gen it.UTF-8
Linea 121: Linea 125:
Se volete riconfigurate la vostra lingua: = Ulteriori risorse =
Linea 123: Linea 127:
{{{
root@chroot# apt-get install locales dialog
root@chroot# dpkg-reconfigure locales
}}}

''NOTA Diversi warning relativi a perl compariranno mentre lanciate il comando (perchè?) 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.

= 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!

''NOTA Se il vostro intento è solo quello di utilizzare programmi con interfaccia del chroot dal sistema principale saltate al capitolo sucessivo.''

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-window. Premete CTRL+ALT F7 per tornare nel terminale virtuale 7 utilizzato come default.

Se volete utilizzare X-window 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
}}}

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

Cosi facedo avete abilitato il display :1 nel terminale virtuale 9. Prima di potervi accedere dovete configurare X modificando il file /etc/X11/xorg.conf.

''NOTA Se invece di gdm volete utilizzare kdm, riferitevi alla sua documentazione per la corretta configurazione.''

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.

= 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/
}}}

''NOTA Non è possibile realizzare un link simbolico in /mychroot/etc/ ai file originali, poichè una volta nel chroot la directory di root cambia e il link 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 cosi: 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 fstab:

{{{
root@main# mount -a
}}}

''NOTA (solo per chi a letto il quarto capitolo) È probabile (anzi certo) che l'utente appositamente creato precedentemente non riesca più ad accedere al login. I due approcci hanno finalità diverse ma possono convivere: è necessario ricreare l'utente del sistema chroot, di nuovo.''

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 potrà essere necessario installare le librerie gtk opportune (se volete, installate il metapacchetto gnome).
Per uscire dal chroot usate il comando:

{{{
user@chroot$ exit
}}}

''NOTA 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 sitema 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:

{{{
Codice:

#!/bin/bash
for arg; do
        arg=`echo $arg | sed -e 's/ /\\\ /g'`
        args=`echo $args $arg`
done
/usr/bin/dchroot -d "`echo $0 | sed 's|^.*/||'` \"$args\""
}}}

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.

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.

''NOTA Se installate synaptic nel vostro chroot, dal vostro sistema principale lo invocherete con sudo synaptic32. Se ne volete fare un collegamento grafico userete il comando gksudo /usr/sbin/synaptic.''

''Nota Un altro modo più veloce di invocare un programma nel chroot è:

{{{
user@main$ dchroot -d nomeprogramma
}}}

= Conclusioni =

Questo breve tutorial vi consente di installare un chroot nel vostro sistema principale. Potete usare il chroot da riga di comando da root o da utente normale, potete accedere al vostro chroot da riga di comando oppure graficamente con variabili d'ambiente diverse, potete utilizzare i programmi residenti nel chroot dal vostro sistema principale... potete fare quello che volete, come sempre. Liberamente.

= Montare un cdrom dentro il chroot =

Modificare il file fstab dentro al chroot aggiungendo la riga del device del cdrom.

Per esempio: il mio cdrom è indicato come /dev/hda, aggiungerò la riga:

/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0

Per l'uso del cdrom è necessaria la riga di comando:

{{{
mount /media/cdrom0, per montare
umount /media/cdrom0, per smontare
}}}

= 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 è instalato in /mychroot/breezy32. Al termine si installerà synaptic per il sitema 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
dpkg-reconfigure locales
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
  for arg; do
          arg=`echo $arg | sed -e 's/ /\\\ /g'`
          args=`echo $args $arg`
  done
  /usr/bin/dchroot -d "`echo $0 | sed 's|^.*/||'` \"$args\""
>>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
}}}

= L'autore =

Giugno 2006 - UgodiPerso - ugodiperso@virgilio.it

## da questo punto in poi non modificare!
 * [[https://help.ubuntu.com/community/DebootstrapChroot|Documento originale]]
 * [[Ubuntu:DebootstrapChroot|Guida del wiki internazionale]]
 * [[http://www.ubuntuforums.org/showthread.php?t=24575|HOWTO: 32-Bit Chroot on 64-Bit Installs]]
 * [[AmministrazioneSistema/Chroot|Guida a chroot]]
Linea 462: Linea 132:
CategoryNuoviDocumenti CategoryNuoviDocumenti CategoryProgrammazione CategoryEmulatori


Problemi in questa pagina? Segnalali in questa discussione

Introduzione

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

Installazione

È necessario installare i pacchetti debootstrap e schroot.

Configurazione di schroot

Prima di proseguire, è necessario assegnare un nome all'ambiente virtuale e creare, con un editor di testo, un file di configurazione nella cartella /etc/schroot/chroot.d/. Digitare in una finestra di terminale:

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

Sostituire la dicitura «editor» con l'editor di testo scelto e «precise_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:

[precise_i386]
description=Ubuntu 12.04 Precise for i386
type=directory
directory=/srv/chroot/precise_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:

  • type: Il tipo di chroot, fra i valori ammessi ci sono plain, directory, file e loopback.

  • directory: Indica la cartella contenente il filesystem del sistema virtuale qualora sia di tipo directory; è 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 privilegi di amministrazione.

È 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/precise_i386
sudo debootstrap --variant=buildd --arch i386 precise /srv/chroot/precise_i386 http://archive.ubuntu.com/ubuntu/

I precedenti comandi sono validi per qualsiasi distribuzione derivata da Debian, é sufficiente sostituire i parametri «precise», «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 11.10 «Oneiric Ocelot» per architetture amd64:

sudo debootstrap --arch amd64 oneiric /srv/chroot/oneiric_amd64/ http://archive.ubuntu.com/ubuntu/

Per creare un sottosistema Debian per 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/

È 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 lucid_i386 -u root

Sostituire la dicitura «lucid» 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 editor di testo con i 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 precise_i386 -u root

Sostituire la dicitura «precise» 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


CategoryProgrammazione CategoryEmulatori