Pagina 1 di 1

[RISOLTO] Qemu semplice metodo per scambio files host guest.

Inviato: mer 9 ott 2013, 19:30
da joe
Mi sto un po' perdendo nella ricerca di un modo quanto più semplice per condividere il contenuto di una directory tra due sistemi:
1- il nostro sistema Linux
2- un sistema guest (ms win) installato sul primo grazie a qemu

Ricordo che anni fà avevo trafficato con tun/tap e roba del genere e passavo files via ssh.
Però erano 2 pinguini.
Leggo in rete che lanciando qemu col comando seguente:

Codice: Seleziona tutto

~$ qemu -m 1024 Windows.img -net nic -net user,smb=/tmp
Si dovrebbe riuscire ad accedere alla nostra dir /tmp del sistema host dal guest.
Basterebbe collegarsi con exploer all'indirizzo "\\10.0.2.4\qemu".
Ho provato ma sinceramente non riesco a collegarmi a nulla. Nel guest anche internet non và, niente ping ecc... Non che mi interessi internet sul guest, ma per dare qualche dettaglio in più alla situazione.

Dove sto sbagliando?
Non ho samba sul sistema host, perchè non mi serve. Per questa cosa serve oppure non c'entra?

Mi sarei risparmiato questo topic vista la frequenza delle mie domande.. sorry :roll:
Vi ringrazio in anticipo! :D

Re: Quemu semplice metodo per scambio files host guest.

Inviato: ven 11 ott 2013, 19:57
da joe
Dal man di qemu vedo che l'opzione:

Codice: Seleziona tutto

-net user,smb=/path/to/share
dovrebbe crearmi nel Guest, cioè sotto windows (XP nel mi caso) la possibilità di accedere all'host sulla dir /path/to/share per leggere e scrivere dati.

Però avviando XP con qemu non ottengo niente di tutto ciò: se apro explorer e dentro scrivo \\10.0.2.4\qemu non riesce a trovare nulla. Non riesce proprio a raggiungere l'host.
Infatti se provo un ping sempre al 10.0.2.4 mi ritorna "host di destinazione irraggiungibile"...
Dal man vedo anche che sul sistema Host (nel mio caso Slackware) deve girare samba. Allora l'ho avviato con

Codice: Seleziona tutto

/etc/rc.d/rc.samba start
Da quello che ho capito però, l'opzione "-net user,smb" dovrebbe essere sufficiente per fare tutto da sola senza dover configurare samba sull'Host, l'importante è che il demone stia girando.
Vi posto un po' di configurazione ad ogni modo:

Codice: Seleziona tutto

root@darkstar:/etc/samba# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[qemu]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
        workgroup = MYGROUP
        server string = Samba Server
        log file = /var/log/samba.%m
        max log size = 50
        dns proxy = No
        idmap config * : backend = tdb

[homes]
        comment = Home Directories
        read only = No
        browseable = No

[printers]
        comment = All Printers
        path = /var/spool/samba
        printable = Yes
        print ok = Yes
        browseable = No

[qemu]
        comment = Windows file space
        path = /mnt/share
        read only = No
        guest ok = Yes
Io mi sono limitato ad aggiungere la sezione "qemu".
Andando oltre...
Ecco come ho lanciato qemu:

Codice: Seleziona tutto

$ qemu-system-i386 -net user,smb=/mnt/share,smbserver=10.0.2.4 -enable-kvm -m 800 -hda newXP-15G.img
Il problema è che davvero in windows sembra proprio assente la rete, samba a parte. Sembra proprio che sia la scheda di rete virtuale a non esserci. Oppure manca qualche componente di windows. Francamente sono molto inesperto perchè in windows non ho mai avuto a che fare con reti locali e simili.
Se così ad occhio vedete qualcosa che non torna vi chiederei se poteste avvertirmi.
Grazie mille in anticipo!

Re: Quemu semplice metodo per scambio files host guest.

Inviato: sab 12 ott 2013, 20:35
da joe
Allora, ho capito molto di più leggendo circa il "networking in user mode" che qemu mette a disposizione (nella versioni attuali, la mia è la: "QEMU emulator version 1.4.1, Copyright (c) 2003-2008 Fabrice Bellard"). Vi metto un link che mi è sembrato piuttosto chiaro:
http://en.wikibooks.org/wiki/QEMU/Netwo ... networking

Ok, riassumendo basta avviare qemu senza preoccuparci di tante opzioni da passare:

Codice: Seleziona tutto

qemu-system-i386 -enable-kvm -m 800 -hda newXP-15G.img
Così facendo dal sistema guest virtualizzato, nel mio caso windows, teoricamente si dovrebbe riuscire a navigare in internet.
Dovrebbe esserci infatti già impostata la scheda di rete di default che qemu impiega di suo.
La "user mode network" è il default, e ci mette a disposizione degli indirizzi di rete, visibili dal guest.
10.0.2.15 - Inet adrr.. (non che abbia mai capito bene a cosa serva...)
10.0.2.3 - DNS server
10.0.2.4 - SAMBA server (deve essere acceso anche sull'Host e configurato minimamente per essere utilizzabile)
10.0.2.2 - DHCP server

Ok, in /etc/samba/smb.conf molto semplicemente ho solo aggiunto (lo vedeta anche dal post precedente).

Codice: Seleziona tutto

[qemu]
        comment = Windows file space
        path = /mnt/share
        read only = No
        guest ok = Yes
Tutto ciò cosa significa in pratica?
Risposta:
Avviato qemu come spiegato sopra, quindi senza opzioni relative al networking, ci dovremmo trovare sul guest (windows o linux che sia) con la possibilità di:
1- navigare in internet.
2- effettuare un ping all'indirizzo 10.0.2.2 10.0.2.15 ecc
3- accedere via samba alla "directory condivisa" del sistema host così come stabilito nel config di samba. Nel mio caso sul guest vedrò la directory chiamata "qemu" (perchè la section in smb.conf è titolata [qemu], se fosse stata [nonnapapera] nel guest vedremmo una directory chiamata nonnapapera) , mentre nell'host corrisponderà a /mnt/share.
4- infine se effettuiamo un "dig slacky.eu" dal guest vedremo che il dns usato sarà 10.0.2.3.

Veniamo al dunque.
Per quanto riguarda Windows. Ho provato col 2000 e con XP in entrambi i casi non risulta presente alcuna scheda di rete da "gestione periferiche". Il problema dunque sta a monte di tutto sto discorso di networking.
Ovvero nè win2k nè winXP hanno i driver per la scheda di rete virtuale che qemu "emula".
Quindi nell''ordine le due domande:
1- quale scheda di rete emula di default qemu?
2- perchè il mio windows xp non sembra avere il driver incluso? Infatti ho letto che per win 2000 bisogna aggiungerlo, ma per xp non si dovrebbe fare nulla perchè lo include già di suo.

Va bè, sono due problemi definiti. Sui quali non ho ancora idagato via google. Vi farò sapere come và a finire. Se avete la risposta sulla punta delle dita, una vostra risposta sarebbe una scorciatoia gradita!

Invece ho notato un comportamento inatteso provando a virtualizzare il live cd di una vecchia slax. Quindi:
Host: linux Slackware14
Guest: Slax 6.1.2 o 6.0.9, non ho guardato la versione...

Operazioni dal guest:
1- se dò ifconfig vedo eth0 con inet adrr 2.0.2.15 come ci si aspettava.
2- riesco a fare un ping di indirizzi di lan per esempio 2.0.2.2
3- il dns è regolarmente su 10.0.2.3
4- il samba server su 2.0.2.4 non c'è: se mi collego con konqeror a smb://10.0.2.4 non raggiungo l'host.
Invece lo vedo su "smb://10.0.2.2". In particolare da lì vedo la directory "qemu" che corrisponde alla /mnt/share dell'host.
Lo scambio files sembra funzionare. E questo è quello che conta.

A voi la domanda:
Se qualcuno usa qemu, potrebbe confermarmi dove stà il serve samba. Riuscite a vederlo sull'indirizzo 10.0.2.4 o anche voi lo avete su 10.0.2.2???

Re: Quemu semplice metodo per scambio files host guest.

Inviato: dom 13 ott 2013, 17:10
da joe
Problema risolto:
http://stackoverflow.com/questions/1693 ... e-internet

Il comando per lanciare qemu e sfruttare la "user mode" network è:

Codice: Seleziona tutto

qemu-system-i386 -enable-kvm -m 800 -hda XP-15G.img -net nic,model=rtl8139 -net user
In questo modo appare la nuova scheda di rete windows... Viene automaticamente installata e la connettività sembra funzionante. Io ho impostato a mano i parametri ip:
Indirizzo ip: 10.0.2.15
subnet mask: 255.255.255.0
Gateway predefinito: 10.0.2.2
Server DNS: 10.0.2.3

Cosa funziona? (dopo riavvio)
Il guest va in internet.
sembra funzionare il ping al gateway ecc.

Veniamo a SAMBA. Che era l'obiettivo:
non riesco ad accedere su "\\10.0.2.2\" perchè mi chiede nome utente e password.
Ora mi chiedo:
Ma perchè da slax virtualizzato basta che mi collego a "smb://10.0.2.2" e mi ritrovo nella dir di share e non mi chiede niente?
Mentre da windows virtualizzato mi chiede utente e password?
Insomma la password o è richiesta oppure no, non vi pare?

Re: Quemu semplice metodo per scambio files host guest.

Inviato: dom 13 ott 2013, 19:15
da joe
Ok. Sembra proprio che da windows non sia possibile accedere con nome utente vuoto.
Allora bisogna modifciare qualcosa lato server.

La via più semplice m'è sembrata l'impostazione security da "user" a "share". Si parla sembre di /etc/samba/smb.conf

Codice: Seleziona tutto

security = share
In questo modo vedo anche la stampante nella directory condivisa da windows.
Ok, metto risolto. Magari aggiungo un riassunto decente. Poi se avete qualche suggerimento ditemi voi...