# aiuto installazione uml(user mode linux)

## crisandbea

salve a tutti, 

avrei bisogno di installare l'uml per avere a disposizione varie macchine virtuale con le quali fare delle prove di collegamenti tra loro come se fossero un client un server ed un router  e cosi via..... volevo sapere dove reperire una guida comprensibile per uno non espertissimo sotto linux come me... e come fare per portare a termine l'installazione dell'uml.

ciao e grazie a tutti.

nb:ora intanto installo la gentoo..., nel mentre datemi qualche consiglio.

----------

## rakim

Spero sia sufficiente

http://www.cs.unibo.it/~montreso/so/lucidi/lso-05-uml-1p.pdf

----------

## Peach

si, valido il pdf linkato da rakim, almeno a livello generico.

Per quanto riguarda l'installazione specifica su piattaforma gentoo posso suggerirti sinceramente di usare i vanilla-sources. Personalmente con gli uml-sources ho più volte avuto problemi di kernel panic all'avvio.

Se poi vuoi info più precise sappi che c'è pure una guida su gentoo-wiki.org e volendo posso darti la mia guida specifica (cioè quello che ho fatto per farlo andare e avere la macchina UML in rete in bridging)

----------

## crisandbea

se mi passeresti come hai fatto tu per farla andare, mi faresti un grandissimo favore.

ciao e grazie in anticipo

----------

## Peach

 *crisandbea wrote:*   

> se mi passeresti come hai fatto tu per farla andare, mi faresti un grandissimo favore.
> 
> ciao e grazie in anticipo

 

Allora io all'inizio ho seguito questa guida, ma se non sei molto pratico ti potrebbe mettere in seria confusione mentale:

http://gentoo-wiki.com/HOWTO_User_Mode_Linux

soprattutto per quanto riguarda host kernel e uml kernel

ti consiglierei, una volta installato il kernel uml (emerge -av vanilla-sources), configurato a modo, e testato (!) di seguire quella guida (compresi i Requirements) da "Prepping the disk image"

Poi al massimo se non ti riescie qualcosa appena mi torna il pc ti dico nello specifico cosa c'e' da fare e come

ciao

----------

## fbcyborg

Sto "installando" sulla mia Gentoo User Mode Linux.

Seguendo questa guida sono giunto a conclusione che il tutto sia molto simile al chroot a 32 bit che si fa e faccio di solito con il mio amd64, solo che il kernel è diverso... nel sistema ospitato si usa il kernel UML.

Nella sopra citata guida leggo che bisogna estrarre uno stage in /mnt/gentoo creata appositamente, il chè è identico a ciò che si dice nella guida per il chroot a 32 bit.

Premetto che (il server) l'UML lo sto installando su un portatile, per prova, con cpu a 32 bit. Andrà poi installato eventualmente in un server desktop Gentoo e utilizzato per vari scopi.

Leggo anche che secondo la guida dovrei installare una nuova gentoo User Mode, ma se volessi installare una debian per esempio?

Come posso fare per far girare una debian in user mode sulla mia gentoo, visto che non ci sono stage da estrarre? (posso anche sbagliarmi)

EDIT: rileggendo la guida, in fondo ho visto che si può fare boot con un'immagine iso.. (sul nuovo kernel) ma... non capisco, se ho installato un nuovo kernel (quello di UML appunto), quando poi faccio boot con un'immagine iso di una distro qualunque, il kernel poi, non viene sovrascritto??? Oppure bisogna saltare qualche passo e fare bootstrap in UML con l'immagine iso?

----------

## Peach

il kernel che boota uml non cambia da una debian ad una gentoo in fin dei conti, la struttura del file system di base può essere qualsiasi cosa

edit: se infatti guardi sul sito di UML ci sono le iso già pronte con per debian e altre.

----------

## fbcyborg

OKK!!!

Tutto ha funzionato alla perfezione, sono in UML!  :Very Happy:  grazie

----------

## fbcyborg

Ieri sera sono riuscito a far funzionare tutto alla perfezione, rete virtuale compresa, quindi potevo installare qualsiasi cosa tramite internet sulla macchina virtuale.

Per fare una prova usavo e uso un root_fs che contiene il filesystem di debian. Tutto ha funzionato perfettamente fino a poco fa, nel quale istante ad ogni avvio escono fuori messaggi che non mi spiego:

```
Activating swap.

Checking root file system...

fsck 1.27 (8-Mar-2002)

fsck.ext2: No such file or directory while trying to open /dev/ubd/0

/dev/ubd/0:

The superblock could not be read or does not describe a correct ext2

filesystem.  If the device is valid and it really contains an ext2

filesystem (and not swap or ufs or something else), then the superblock

is corrupt, and you might try running e2fsck with an alternate superblock:

    e2fsck -b 8193 <device>

fsck failed.  Please repair manually and reboot.  Please note

that the root file system is currently mounted read-only.  To

remount it read-write:

   # mount -n -o remount,rw /

CONTROL-D will exit from this shell and REBOOT the system.

(none):~#                                                      
```

Questo appare dopo un po' che è partito il boot sulla macchina virtuale.

Prima tutto andava liscio, ma adesso non capisco proprio cosa c'entri questo problema.

Descrivo passo passo cosa è successo:

quando funzionava tutto ho deciso di apt-gettare qualcosa, ma dopo qualche errore da parte mia mi si è impallato il sistema (virtuale, debian) così ho deciso di riscaricare l'immagine pronta di debian dal sito http://user-mode-linux.sourceforge.net/dl-sf.html e installarla di nuovo scompattandola. Purtroppo però mi è apparso l'errore che ho riportato quì sopra. Allora ho scaricato una nuova immagine, ma niente.. come prima. Ho provato anche con l'immagine di un'altra distribuzione, la slackware, ma mi da sempre lo stesso problema.

Infine ho pensato di ricompilare il kernel-uml, ma senza risultati.

Per favore, mi sapete dire da cosa potrà mai dipendere questo assurdo errore???

grazie.

EDIT:Nel frattempo ho provato a fare come dice quì ma poi alla fine si blocca e nella fase di boot dice:

```
Checking all file systems...

Checking all file systems...

fsck 1.27 (8-Mar-2002)

Setting kernel variables.

Mounting local filesystems...

nothing was mounted

Running 0dns-down to make sure resolv.conf is ok...done.

Setting up IP spoofing protection: rp_filter.

Configuring network interfaces: done.

Cleaning: /tmp /var/lock /var/runfind: ./crond.reboot: Input/output error

find: ./crond.reboot: Input/output error

find: ./crond.reboot: Input/output error

.

Initializing random number generator... done.

Recovering nvi editor sessions... done.

INIT: Entering runlevel: 2

Starting system log daemon: syslogd.

Starting kernel log daemon: klogd.

Starting internet superserver: inetd.

Starting deferred execution scheduler: atd.

Starting periodic command scheduler: cron.

INIT: Id "1" respawning too fast: disabled for 5 minutes

INIT: Id "2" respawning too fast: disabled for 5 minutes

INIT: Id "0" respawning too fast: disabled for 5 minutes

INIT: Id "c" respawning too fast: disabled for 5 minutes

INIT: no more processes left in this runlevel

                                                                           

                                                
```

----------

## Peach

che kernel stai usando? quella soluzione è inadeguata se usi un kernel 2.6 recente.

ti consiglio di riabilitare udev, montare la partizione root_fs ed togliere il check da fstab per la partizione stessa. (fondamentalmente mettere a "0 0" i due numeri finali nella stringa in fstab)

----------

## fbcyborg

Sto usando il kernel 2.6.14-gentoo-r5 per la macchina ospitante e il 2.6.16.14 scaricato da kernel.org.

Come ripeto fino a 12 ore fa funzionava tutto perfettamente, non credevo ai miei occhi per come andava bene. E tutto con la stessa configurazione, solo che con quello che è successo ora non va più.

Come riabilito udev? eppure credo che sia attivo!

Per quel 0 0 da mettere nell'fstab del root_fs ci riesco anche dopo che mi appare il prompt che ho quotato prima... 

```
(none):~#  
```

ma non cambia nulla.. poi si blocca in un altro punto..

----------

## Peach

 *fbcyborg wrote:*   

> Sto usando il kernel 2.6.14-gentoo-r5 per la macchina ospitante e il 2.6.16.14 scaricato da kernel.org.
> 
> Come ripeto fino a 12 ore fa funzionava tutto perfettamente, non credevo ai miei occhi per come andava bene. E tutto con la stessa configurazione, solo che con quello che è successo ora non va più.
> 
> 

 

se hai seguito la guida da te linkata sopra, devi aver aggiunto il supporto devfs o qualcosa del genere nel kernel uml.. ora non vorrei dire una idiozia perché forse mi sono perso un pezzo, ma rifacendo la configurazione da zero ti continua a dare errore?

----------

## fbcyborg

 *Peach wrote:*   

>  ma rifacendo la configurazione da zero ti continua a dare errore?

 

il supporto devfs mi pare che già fosse attivo... 

Scusa la domanda.. cosa intendi per configurazione da zero? Parli del kernel UML, (di ricompilarlo?) del kernel di linux del sistema base?

Ho rifatto più volte sia la ricompilazione del kernel uml sia scaricato più volte l'immagine del filesystem e rimpiazzata con quella vecchia difettosa. ho sia provato il kernel del sito www.kernel.org sia gli usermode-sources.

----------

## Peach

 *fbcyborg wrote:*   

>  *Peach wrote:*    ma rifacendo la configurazione da zero ti continua a dare errore? 
> 
> il supporto devfs mi pare che già fosse attivo... 
> 
> Scusa la domanda.. cosa intendi per configurazione da zero? Parli del kernel UML, (di ricompilarlo?) del kernel di linux del sistema base?
> ...

 

non ricordo se nel kernel della macchina host occorra modificare qualche impostazione perché vada uml (ma penso solo per far andare la rete)

quindi dall'errore sembrerebbe un problema di kernel guest... ma con questo non vuol dire che abbia la verità a portata di mano.

mi domando solo cosa hai fatto per sputtanare tutto in così poco tempo.

----------

## fbcyborg

 *Peach wrote:*   

> mi domando solo cosa hai fatto per sputtanare tutto in così poco tempo.

 

Hai ragione! è quello che mi chiedo anche io da 36 ore oramai.. proprio perchè non ho fatto un bel nulla se non sostituire il root_fs con uno nuovo di zecca, già pronto per l'uso.

Per caso hai un .config per il kernel uml da passarmi? magari provo quello e provo a ricompilare il kernel uml (cosa che dovrò fare prima o poi visto che ho un'immagine di 16MB. In ogni caso con il .config che ho attualmente tutto funzionava.

Per quanto riguarda la modifica del kernel, in effetti si tratta solo di manometterlo per quello che riguarda la rete. Tra l'altro ho dovuto soltanto mettere come moduli, alcuni che invece erano come built in.

Vorrei ricominciare da zero, ma sostanzialmente credo di averlo già fatto varie volte a questo punto, ricompilando il kernel uml e sostituendo le immagini con quelle nuove.

L'errore prodotto è troppo inaccettabile poiché non si capisce da cosa possa dipendere.

Boh! speriamo bene, mi serve assolutamente per fare delle ricerche. Spero di non dover reinstallare gentoo da zero.

----------

## Peach

questo è il mio kernel uml per una macchina guest gentoo

http://www.smartart.it/works/docs/config-uml-2.6.15.1

per quanto riguarda il tuo errore mi pareva di aver letto qualcosa sul sito di uml riguardo ai filesystem che distribuiscono, che tipo funzionano soltanto con determinate opzioni abilitate nel kernel... ho provato a fare una ricerca veloce, ma stamattina la rete mi è ostile

----------

## fbcyborg

 *Peach wrote:*   

> questo è il mio kernel uml per una macchina guest gentoo
> 
> http://www.smartart.it/works/docs/config-uml-2.6.15.1
> 
> per quanto riguarda il tuo errore mi pareva di aver letto qualcosa sul sito di uml riguardo ai filesystem che distribuiscono, che tipo funzionano soltanto con determinate opzioni abilitate nel kernel... ho provato a fare una ricerca veloce, ma stamattina la rete mi è ostile

 

Ciao, grazie ancora, per tutto.

Ho provato a compilare il kernel con il .config che mi hai dato, ma l'unica volta che sono riuscito a compilarlo il risultato è stato lo stesso ... stesso errore in avvio.

Ho cercato sul sito ufficiale ma ancora non sono riuscito a trovare nulla che mi aiuti a risolvere questo maledetto problema.

----------

## fbcyborg

Ho risolto.. il problema era un'immagine del filesystem fallata. Ho scaricato l'immagine di Debian da un altro sito ed ora funziona... solo che non mi vengono aperte le 6 Shell come prima. C'è solo quella del bootstrap del kernel uml. Se volessi aprire/accedere alla seconda shell?

L'immagine funzionante l'ho trovata su http://uml.nagafix.co.uk/ .

----------

## Peach

 *fbcyborg wrote:*   

> Se volessi aprire/accedere alla seconda shell?

 

installa sys-apps/usermode-utilities

e usa 

```
uml_mconsole <socket-name> [comando]
```

----------

## fbcyborg

 *Peach wrote:*   

> e usa 
> 
> ```
> uml_mconsole <socket-name> [comando]
> ```
> ...

 

ci sto provando ma non ci riesco, pare che non ci sia nemmeno una voce nel manuale per uml_mconsole.

Sinceramente non capisco nemmeno perchè dovrei utilizzarlo....... prima quando funzionava con l'altro filesystem non c'era bisogno di uml_mconsole.

Ah, usermode-utilities era già installato.

----------

## Peach

 *fbcyborg wrote:*   

> ci sto provando ma non ci riesco

 

quando lanci UML assegnagli il nome, poi "l'aggancio" lo fai sul nome

```
# linux ubda=root_fs ubdb=swap_fs eth0=tuntap,tap0 umid=nome
```

e poi dovresti agganciarti con:

```
# uml_mconsole nome
```

alternativamente attivi ssh sulla macchina host e ti colleghi via ssh normalmente...

----------

## fbcyborg

Dunque quando lancio 

```
# linux ubda=root_fs ubdb=swap_fs eth0=tuntap,tap0 umid=nome
```

poi mi parte il kernel uml... come faccio a dare il seguente comando dalla macchina guest?

```
# uml_mconsole nome
```

Devo per caso aprire una console nuova e farlo da li?

Io per avviare il kernel uml faccio:

```
# linux ubd0=root_fs ubd1=swap_fs eth0=tuntap,,,192.168.1.100
```

come ripeto.. prima non dovevo fare tutti i passaggi che dici tu per switchare fra le console.. esse venivano aperte tutte e 6 ad ogni avvio, avevano lo sfondo bianco.

Per favore mi dici se ti funziona questo filesystem? A me ha funzionato solo una volta.

----------

## Peach

 *fbcyborg wrote:*   

> Io per avviare il kernel uml faccio:
> 
> ```
> # linux ubd0=root_fs ubd1=swap_fs eth0=tuntap,,,192.168.1.100
> ```
> ...

 

ora le tty che vengono aperte in automatico penso dipenda da inittab: decommenta le altre console (c2 ~ c6) e prova

tornando alla console uml, quella ti consente di eseguire operazioni direttamente sulla macchina guest (riavvio, halt brutale, configurazione dispositivi run-time e via dicendo): per accedere devi dare un nome alla partenza con l'opzione umid come da me descritto, poi da un'altra console puoi accedere alla macchina. Nel tuo caso verrebbe qualcosa del tipo:

```
# linux ubd0=root_fs ubd1=swap_fs eth0=tuntap,,,192.168.1.100 umid=guestuml
```

e poi da un'altro terminale sulla macchina host:

```
# uml_mconsole guestuml
```

in ogni caso per poter lavorare sul fs e fare le operazioni classiche ti consiglio: 1) modificare inittab se vuoi N console che si aprono automaticamente 2) avviare sshd per poter accedere via rete quante volte vuoi indipendentemente.

spero di essere stato finalmente chiaro  :Razz: 

----------

## fbcyborg

Dunque.. ho aggiunto le seguenti righe nell'inittab:

```
# TERMINALS

c1:12345:respawn:/sbin/agetty 38400 tty1 linux

c2:2345:respawn:/sbin/agetty 38400 tty2 linux

c3:2345:respawn:/sbin/agetty 38400 tty3 linux

c4:2345:respawn:/sbin/agetty 38400 tty4 linux

c5:2345:respawn:/sbin/agetty 38400 tty5 linux

c6:2345:respawn:/sbin/agetty 38400 tty6 linux
```

poichè nulla di simile era presente all'interno di tale file

ora però nella fase di boot mi dice:

```
INIT: cannot execute "/sbin/agetty"

```

ripetutamente....

come faccio a installare agetty?

----------

## Peach

 *fbcyborg wrote:*   

> 
> 
> ora però nella fase di boot mi dice:
> 
> ```
> ...

 

dovrebbe essere già presente nel root_fs che stai usando. Cos'è? Quale hai preso?

In ogni caso ti consiglio di leggerti la documentazione.

Mi dicevi che cmq hai una console virtuale che ti sale, mi domando dove prenda la configurazione della console che ti si apre se non c'era specificato niente in inittab.

Io ho optato per crearmi il root_fs da zero (per vari e svariati motivi).

Se non hai voglia di sbatterti, forse sarebbe il caso di cambiare root_fs. Vedi te, magari cerca di rispondere ai dubbi che ti ho appena posto, magari ti posso ancora aiutare   :Rolling Eyes: 

----------

## fbcyborg

 *fbcyborg wrote:*   

> 
> 
> L'immagine funzionante l'ho trovata su http://uml.nagafix.co.uk/ .

 

Ecco dove l'avevo presa è la Debian 3.1 .. .circa 100 Mb di download.

Comunque sto optando anche io per farmi il root_fs da zero, ma prima di farlo devo capire bene come funziona e fare delle prove...

grazie mille x tutto l'aiuto che mi stai dando.. sono preziosi consigli per me.

la documentazione la sto leggendo.. ancora non ho finito ma con un po' di pazienza la leggerò tutta.

Non so come faccia a partire una console virtuale se nell'inittab non c'è nulla del genere.. boh! misterooo!  :Very Happy: 

mi indichi una guida per farmi un root_fs da zero? o forse c'è da qualche parte nel sito ufficiale dell'user-mode? Ho visto che nella docs di gentoo c'è qualcosa, ma è specifico per installare gentoo.

EDIT:Ho aggiunto le seguenti righe in /etc/inittab per riottenere le 6 shell virtuali:

```
# TERMINALS

c0:12345:respawn:/sbin/getty 38400 tty0 linux

c1:12345:respawn:/sbin/getty 38400 tty1 linux

c2:2345:respawn:/sbin/getty 38400 tty2 linux

c3:2345:respawn:/sbin/getty 38400 tty3 linux

c4:2345:respawn:/sbin/getty 38400 tty4 linux

c5:2345:respawn:/sbin/getty 38400 tty5 linux

c6:2345:respawn:/sbin/getty 38400 tty6 linux

```

Il problema è che quel filesystem avava getty al posto di agetty.

----------

## fbcyborg

Adesso non riesco ad avviare kde ecco l'errore che mi da quando lancio startx:

```
(none):~# startx

hostname: Host name lookup failure

xauth:  creating new authority file /root/.serverauth.1189

/usr/X11R6/bin/xauth: (argv):1:  bad display name "(none):0" in "list" command

/usr/X11R6/bin/xauth: (stdin):1:  bad display name "(none):0" in "add" command

X Window System Version 6.9.0 (Debian 6.9.0.dfsg.1-6 20060403233528 David Nusinow <dnusinow@debian.org>)

Release Date: 21 December 2005

X Protocol Version 11, Revision 0, Release 6.9

Build Operating System: Linux 2.6.12-1-686 i686 [ELF] 

Current Operating System: Linux (none) 2.6.16.16-bb1 #1 Wed May 17 17:43:53 CEST 2006 i686

Build Date: 04 April 2006

        Before reporting problems, check http://wiki.X.Org

        to make sure that you have the latest version.

Module Loader present

OS Kernel: Linux version 2.6.16.16-bb1 (root@FlaGentooNb) (gcc version 3.4.5 (Gentoo 3.4.5-r1, ssp-3.4.5-1.0, pie-8.7.9)) #1 Wed May 17 17:43:53 CEST 2006 

Markers: (--) probed, (**) from config file, (==) default setting,

        (++) from command line, (!!) notice, (II) informational,

        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.

(==) Log file: "/var/log/Xorg.0.log", Time: Wed May 24 13:59:59 2006

(==) Using config file: "/etc/X11/xorg.conf"

[b]Fatal server error:

xf86OpenConsole: Cannot find a free VT: Invalid argument[/b]

Please consult the The X.Org Foundation support 

         at http://wiki.X.Org

 for help. 

Please also check the log file at "/var/log/Xorg.0.log" for additional information.

XIO:  fatal IO error 104 (Connection reset by peer) on X server ":0.0"

      after 0 requests (0 known processed) with 0 events remaining.

/usr/X11R6/bin/xauth: (argv):1:  bad display name "(none):0" in "remove" command

Couldnt get a file descriptor referring to the console

```

----------

## Peach

beh se non sbaglio non trova un terminale a cui legare X... così con molta stanchezza addosso potrei dirti di provare a collegare i terminal device del guest con uno dell'host. L'idea è semplice ed è pure spiegata sul sito di uml, ma non so se si possa applicare in questo caso, visto che non ho mai provato a usare X sotto UML.

----------

## fbcyborg

Ciao! 

Ho letto quello che dice sul sito di uml ma in entrambi i modi non riesco ad avviare X.

Per favore mi indicheresti un howto che spiega come creare un filesystem da zero?

Vorrei crearmi da solo un filesystem root con debian sarge all'interno.

TnX!  :Very Happy: 

----------

## fbcyborg

Ho trovato questo, ma pensavo che fosse necessario un cd di installazione.. invece vedo che si fa tutto via internet. E se volessi installare Slackware o qualche altra distro per uml?

----------

## Peach

 *fbcyborg wrote:*   

> Ho trovato questo, ma pensavo che fosse necessario un cd di installazione.. invece vedo che si fa tutto via internet. E se volessi installare Slackware o qualche altra distro per uml?

 

mah... non so... tipo leggendo il sito ufficiale?

----------

## fbcyborg

Ecco cosa accade quando tento di fare debootstrap dal mio amd64:

```
uml # debootstrap sarge loop

I: Retrieving Release

E: Invalid Release file, no entry for main/binary-amd64/Packages
```

 :Shocked: 

EDIT: se faccio 

```
debootstrap sid loop
```

 funziona tutto...

forse per amd64 non è disponibile sarge???

----------

## fbcyborg

Per risolvere il problema del post precedente mi sono deciso di installare UML su chroot a 32 bit per la mia distro su amd64.

Adesso però ci sono dei problemi ai quali non riesco a far fronte.

Per far funzionare la rete ho bisogno di due moduli importanti:

tun e iptable_nat.

Premesso che la compilazione del kernel in chroot a 32 bit non mi presenta alcun problema, i dolori cominciano quando arriva il momento

di usare questi moduli. Dopo aver dato un make modules_install i moduli dovrebbero esser stati compilati.

Ma al momento di dare un modprobe tun o modprobe iptable_nat questi moduli non vengono caricati. 

Come faccio a caricare questi moduli in chroot32? Il problema è che in teoria UML prevede anche la patch SKAS per il kernel host, ma anche se lo

compilo come lo avvio???

Forse sarà sufficiente effettuare il modprobe da una shell non chrootata?

----------

