Old:Virtualizzazione - user mode linux: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(corretti alcuni errori di battitura)
 
(12 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
{{stub}}
{{Old}}
 
==Introduzione==
==Introduzione==
 
[http://user-mode-linux.sourceforge.net/ User Mode Linux(UML)] è un metodo sicuro per provare nuove versioni del kernel Linux e processi. Si possono far girare programmi difettosi (buggy), fare esperimenti con kernel nuovi e distribuzioni nuove, si può mettere mano alle parti più "intime" di un sistema Linux senza intaccare il sistema che realmente sta girando sulla macchina.
[http://user-mode-linux.sourceforge.net/ User Mode Linux(UML)] è un metodo sicuro per provare nuove versioni del kernel Linux e processi. Si possono far girare programmi difettosi (buggy), fare esperimenti con kernel nuovi e distribuzioni nuove, si può mettere mano alle parti più "intime" di un sistema linux senza intaccare il sistema che realmente sta girando sulla macchina.


UML fornisce una macchina virtuale che può avere più risorse fisiche e programmi virtualizzati della macchina-sistema reale. Lo spazio disco delle macchine virtuali è contenuto in singoli file sul disco fisso.
UML fornisce una macchina virtuale che può avere più risorse fisiche e programmi virtualizzati della macchina-sistema reale. Lo spazio disco delle macchine virtuali è contenuto in singoli file sul disco fisso.
Riga 9: Riga 7:
Si può assegnare alla macchina virtuale solo l'hardware di cui si ha bisogno. Con accessi limitati, niente di ciò che gira sulla macchina virtuale può cambiare o danneggiare il sistema fisico reale o il suo software.
Si può assegnare alla macchina virtuale solo l'hardware di cui si ha bisogno. Con accessi limitati, niente di ciò che gira sulla macchina virtuale può cambiare o danneggiare il sistema fisico reale o il suo software.


{{Box | Note |Il tutto è stato eseguito su '''testing/etch'''. Da adesso in poi mi riferirò a ''user mode linux'' con il nome '''UML''', alla macchina fisica con il nome ''host'' e alla macchina virtuale con ''ospite''}}
{{Box | Note |Il tutto è stato eseguito su '''testing/Etch'''. Da adesso in poi mi riferirò a ''user mode linux'' con il nome '''UML''', alla macchina fisica con il nome ''host'' e alla macchina virtuale con ''ospite''}}


==Installazione==
==Installazione==
 
Per avere UML all'opera dobbiamo ricompilare il kernel con la '''SKAS'''(''Separate Kernel Address Space'') patch che si trova già nei [[repository]]:
Per avere UML all'opera dobbiamo ricompilare il kernel con la '''SKAS'''(''Separate Kernel Address Space'') patch che si trova già nei repository:


<pre>
<pre>
apt-get install linux-patch-skas
# apt-get install linux-patch-skas
cd /usr/src/linux
$ cd /usr/src/linux
make-kpkg clean
$ make-kpkg clean
make-kpkg --added-patches skas --rootcmd fakeroot --append-to-version -skas --initrd --config menuconfig kernel_image
$ make-kpkg --added-patches skas --rootcmd fakeroot --append-to-version -skas --initrd --config menuconfig kernel_image
</pre>
</pre>


Riga 34: Riga 31:


<pre>
<pre>
apt-get source user-mode-linux # da utente
# apt-get source user-mode-linux # da utente
apt-get install user-mode-linux-doc uml-utilities
# apt-get install user-mode-linux-doc uml-utilities
</pre>
</pre>


Riga 42: Riga 39:
Il kernel che risiede su host sarà un vero e proprio avviabile con opzioni da riga di comando simili a quelle per bootare un kernel, per avere i moduli sulla immagine dovrete montarli con hostfs (il kernel di default è un monolite che boota dando solo qualche warning su moduli non trovati e non ha hostfs attivato).
Il kernel che risiede su host sarà un vero e proprio avviabile con opzioni da riga di comando simili a quelle per bootare un kernel, per avere i moduli sulla immagine dovrete montarli con hostfs (il kernel di default è un monolite che boota dando solo qualche warning su moduli non trovati e non ha hostfs attivato).


Da '''/usr/share/doc/user-mode-linux/README.Debian''':
Da <code>'''/usr/share/doc/user-mode-linux/README.Debian'''</code>:


Compilare un pacchetto kernel UML.
Compilare un pacchetto kernel UML.


Devi avere apt configurato per poter scaricare i sorgenti dei pacchetti.
Devi avere apt configurato per poter scaricare i sorgenti dei pacchetti.<br/>
(esempio deb-src http://it.debian.org/debian main contrib, man sources.list)
Ad esempio:
<pre>deb-src http://it.debian.org/debian main contrib</pre>


<pre>
<pre>
$ apt-get source user-mode-linux
# apt-get source user-mode-linux
</pre>
</pre>


Puoi farlo con fakeroot la doc originale è sbagliata ;D provare per credere
Puoi farlo con fakeroot la doc originale è sbagliata ;D provare per credere
<pre>
<pre>
cd user-mode-linux-UMLVERSION
$ cd user-mode-linux-UMLVERSION
debian/rules unpack
# debian/rules unpack
</pre>
</pre>


Oppure, decomprimi un altro sorgente e aggiorna kernel_version in
Oppure, decomprimi un altro sorgente e aggiorna kernel_version in debian/rules
debian/rules
<pre>
<pre>
debian/rules patch
# debian/rules patch
</pre>
</pre>


Oppure, applica UML patch a mano e aggiusta patch-stamp
Oppure, applica UML patch a mano e aggiusta patch-stamp:
<pre>
<pre>
cd kernel-source-KVERSION
$ cd kernel-source-KVERSION
</pre>
</pre>


Potete anche scegliere di fare solo moduli e vmlinux, la immagine bz non mi serve ad altro che backup, sconsiglio di usare initrd.
Potete anche scegliere di fare solo moduli e vmlinux, la immagine bz non mi serve ad altro che backup, sconsiglio di usare initrd.
<pre>
<pre>
make defconfig ARCH=um && make [menu,x]config ARCH=um # make all ARCH=um
$ make defconfig ARCH=um && make [menu,x]config ARCH=um # make all ARCH=um
</pre>
</pre>


Tutti i comandi makefile devono includere ARCH=um
Tutti i comandi makefile devono includere ARCH=um
<pre>
<pre>
cd ..
$ cd ..
dpkg-buildpackage -rfakeroot -nc -uc
$ dpkg-buildpackage -rfakeroot -nc -uc
</pre>
</pre>


Bene ora siete pronti a installarlo
Bene ora siete pronti a installarlo:
<pre>
<pre>
dpkg -i ../user-mode-linux_2.n.nn-1um-2_i386.deb
# dpkg -i ../user-mode-linux_2.n.nn-1um-2_i386.deb
</pre>
</pre>


Avete la possibilità di montare lo stesso sistema con host fs.
Avete la possibilità di montare lo stesso sistema con host fs.

Versione attuale delle 15:32, 7 dic 2019

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


Introduzione

User Mode Linux(UML) è un metodo sicuro per provare nuove versioni del kernel Linux e processi. Si possono far girare programmi difettosi (buggy), fare esperimenti con kernel nuovi e distribuzioni nuove, si può mettere mano alle parti più "intime" di un sistema Linux senza intaccare il sistema che realmente sta girando sulla macchina.

UML fornisce una macchina virtuale che può avere più risorse fisiche e programmi virtualizzati della macchina-sistema reale. Lo spazio disco delle macchine virtuali è contenuto in singoli file sul disco fisso.

Si può assegnare alla macchina virtuale solo l'hardware di cui si ha bisogno. Con accessi limitati, niente di ciò che gira sulla macchina virtuale può cambiare o danneggiare il sistema fisico reale o il suo software.

Info.png Note
Il tutto è stato eseguito su testing/Etch. Da adesso in poi mi riferirò a user mode linux con il nome UML, alla macchina fisica con il nome host e alla macchina virtuale con ospite


Installazione

Per avere UML all'opera dobbiamo ricompilare il kernel con la SKAS(Separate Kernel Address Space) patch che si trova già nei repository:

# apt-get install linux-patch-skas
$ cd /usr/src/linux
$ make-kpkg clean
$ make-kpkg --added-patches skas --rootcmd fakeroot --append-to-version -skas --initrd --config menuconfig kernel_image

In "Processor type and feature" troverete due opzioni in più:

[ ] /proc/mm support
[ ] Make UML childs /proc/<pid> completely browsable

Settateli e compilate il kernel, alla fine della compilazione installate il pacchetto e riavviate.

Una volta riavviato installiamo alcuni software:

# apt-get source user-mode-linux # da utente
# apt-get install user-mode-linux-doc uml-utilities

Il pacchetto user-mode-linux contiene i sorgenti del kernel patchati per diventare degli eseguibili UML. User mode linux ha bisogno di un kernel modificato e patchato per essere eseguibile dall'utente (user-space). Il kernel che risiede su host sarà un vero e proprio avviabile con opzioni da riga di comando simili a quelle per bootare un kernel, per avere i moduli sulla immagine dovrete montarli con hostfs (il kernel di default è un monolite che boota dando solo qualche warning su moduli non trovati e non ha hostfs attivato).

Da /usr/share/doc/user-mode-linux/README.Debian:

Compilare un pacchetto kernel UML.

Devi avere apt configurato per poter scaricare i sorgenti dei pacchetti.
Ad esempio:

deb-src http://it.debian.org/debian main contrib
# apt-get source user-mode-linux

Puoi farlo con fakeroot la doc originale è sbagliata ;D provare per credere

$ cd user-mode-linux-UMLVERSION
# debian/rules unpack

Oppure, decomprimi un altro sorgente e aggiorna kernel_version in debian/rules

# debian/rules patch

Oppure, applica UML patch a mano e aggiusta patch-stamp:

$ cd kernel-source-KVERSION

Potete anche scegliere di fare solo moduli e vmlinux, la immagine bz non mi serve ad altro che backup, sconsiglio di usare initrd.

$ make defconfig ARCH=um && make [menu,x]config ARCH=um # make all ARCH=um

Tutti i comandi makefile devono includere ARCH=um

$ cd ..
$ dpkg-buildpackage -rfakeroot -nc -uc

Bene ora siete pronti a installarlo:

# dpkg -i ../user-mode-linux_2.n.nn-1um-2_i386.deb

Avete la possibilità di montare lo stesso sistema con host fs.