Introduzione


A cosa serve coLinux?
CoLinux è un virtualizzatore free e opensource, e permette di eseguire una istanza di Linux su una macchina linux o Windows. E' molto utile a chi desidera veramente provare il Sistema operativo Linux senza avere timore di compromettere il boot o intaccare il sistema ospite, in quanto poche informazioni saranno scritte nelle cartelle vitali per il SO o nel registro (nel caso di Windows). E' anche utile a chi volesse avere un sistema su cui fare delle prove senza così rendere instabile l'installazione principale di linux, o anche per poter utilizzare i programmi Linux da Windows.


Limiti di questa guida
Questa guida prende spunto dal wiki ufficiale (http://wiki.colinux.org/), tenta di mettere un ordine e corregge alcuni aspetti. La versione 0.1 di questa guida non ha la pretesa di essere esaustiva, e neanche scalfire il potenziale di coLinux. Essa è solo una breve e concisa introduzione alla virtualizzazione su Windows e può essere seguita a pieno solo da coloro che hanno Windows XP, adsl, e che possono gestire le proprie connessioni internet mediante il bridge di Windows XP. Gli utenti di windows 2000 possono usare la funzionalità di condivisione di internet; una descrizione in inglese su come fare con coLinux si trova qui: http://wiki.colinux.org/cgi-bin/coLinuxNetworking

Altri limiti sono dovuti alla mia scarsa esperienza con coLinux, tutto quello che vi dirò funziona sicuramente, ma non è detto che non ci sia una strada migliore.

Attendo la vostra la collaborazione per colmare le evidenti lacune.


Ciò che faremo
Installeremo un sistema Gnu/Linux Debian da zero su Windows XP, a partire da un disco non formattato di 3GB, vedremo come ampliarlo o ridurlo senza perdere i nostri dati. Vedremo anche come far comunicare coLinux con l'eventuale altro Linux presente nell'apposita partizione e come comunicare con le partizioni Windows (con gli evidenti limiti di coLinux).

Vedremo inoltre come configurare il server X per fare girare KDE (o qualunque altro desktop o windows manager) sulla macchina ospite, ci occuperemo del suono (non della scheda sonora) e ovviamente della rete .


Quali programmi sono necessari
Abbiamo bisogno di

coLinux
un disco virtuale di 3GB (se il server non va potete creare il disco vuoto con mkfile.exe)
un disco virtuale per lo swap (128MB)
comando dd per Windows (non strettamente necessario)
un resize Windows per il disco virtuale (mkfile.exe)
disco di avvio del setup di Debian
un client per il window manager (configureremo sia tightvnc, sia nx). Scaricate e installate solo il client. Il server sarà installato in Linux.
7Zip per scompattare i dischi. (E' sufficiente WinRar o WinZip)
Ci serve inoltre un client ESD per il sonoro. (esoud.zip)
Un client per il protocollo ssh. (puTTY)

Tutti i programmi sono opensourse o comunque free.


Si inizia

Installazione coLinux
Questo passo è molto semplice, dovete installare tutto, tranne il disco virtuale preconfigurato. Ciò è importante perchè altrimenti non potrete ridimensionare il disco e con uno da un GB si possono fare ben poche cose.

Io per l'installazione ho scelto d:\colinux e da ora in poi farò riferimento a questo. Subito dopo l'installazione dovremmo creare il bridge tra la nostra scheda di rete e quella installata da colinux (oppure configurare la condivisione di rete).

Ora dovremmo scompattare i due dischi virtuali, chiameremo il disco principale DiscoDebian” (occorre rinominare il files compattato) e swap_128Mb il file di swap. Copieremo, inoltre, nella cartella di coLinux il file root.bin (l'installatore di debian). Quest'ultimo file deve essere grande circa 6MB, se ciò non fosse occorre scompattarlo mediante 7-zip (per far prima occorre aggiungere l'estensione .gz al file). Il file finale deve chiamarsi root.bin

Ora dobbiamo modificare il file di configurazione default.colinux.xml

Aggiungere il disco virtuale vuoto:

<block_device index="0" path="\DosDevices\D:\coLinux\DiscoDebian" enabled="true" />

Aggiungere la partizione di swap

<block_device index="1" path="\DosDevices\D:\coLinux\swap_128Mb" enabled="true" />

Aggiungere il disco di setup della Debian

<block_device index="2" path="\DosDevices\D:\coLinux\root.bin" enabled="true" />

Aggiungere il cdrom

<block_device index="3" path="\Device\Cdrom0" enabled="true" />

Sostituire la riga <bootparams> con queste due

<!--<bootparams>root=/dev/cobd/0</bootparams> -->
<bootparams>root=/dev/cobd/2 devfs=mount,dall ramdisk_size=8192</bootparams>

In fondo al file c'è indicata la quantità di RAM, aumentarla fino ad almeno a 96

Ora si può chiudere e salvare il file. Siamo pronti per avviare l'installazione, si esegua dalla console questa riga (ovviamente dalla cartella di coLinux)

colinux-daemon.exe -c default.colinux.xml -t nt

il parametro “-t nt” può essere omesso, ma si perde la facoltà di eseguire il “copia e incolla”, molto utile in questa fase. Prima di avviare conviene passare alla tastiera americana, purtroppo per qualche misterioso motivo a me non ha funzionato dentro la console. Per evitare problemi riporto i comandi sia per la tastiera inglese, sia per quella italiana.

Se Linux non si avvia sostituire il bootparams con:

<bootparams>root=/dev/cobd2 devfs=mount,dall ramdisk_size=8192</bootparams>

Una volta avviato ignora tutti gli errori relativi al tty e premi una volta invio, dopo cerca la voce “ Execute a Shell“ e premi invio. Se hai la tastiera inglese puoi copiare e incollare la seguente riga nella console di Linux:

cd /dev; for i in 2 3 4; do ln -s null tty$i; done

Altrimenti con quella italiana copia e incolla il seguente:

cd -devò for i in 2 3 4ò do ln 's null tty$iò done

Il problema esiste perchè il comando “incolla” della console di windows non copia le stringhe, ma le riscrive come se si battessero i tasti sulla tastiera, in questo modo i simboli /;- vengono modificati.

Se il comando di sopra non dovesse funzionare occorre dare a mano i seguenti comandi: (premi invio su ogni riga, usa il tastierino numerico per i simboli / e - )

cd /
ln -s null tty2
ln -s null tty3
ln -s null tty4

Ora finalmente abbiamo uno schermo pulito e possiamo lavorare con più facilità.

Creazione del disco di root
Partizionare l'hardisk in coLinux non serve a molto, inoltre questa operazione priva della possibilità di modificare la grandezza della root. Il disco sarà espandibile ma solo per aggiungervi altre partizioni che poi non potranno essere usate (almeno a me è successo così, se avete altre esperienza vi prego di riportarle). Questo è vero con la versione 1.6.6 precompilata di parted.

Come partizionare il disco (Vi mostro la procedura solo in caso vogliate fare delle prove, non usatela)
Ripeto: eseguire questa procedura solo per sperimentazione! Se vuoi seguira la guida vai al paragrafo successivo.

I comandi in neretto sono pronti per essere “copincoll:ati”

cfdisk /dev/cobd/0 (cfdisk -dev-cobd-0)

Alla prima domanda rispondere y e poi creare una nuova partizione primaria grande quanto tutto l'hd virtuale e rendila bootabile. Segnatevi il nome dato alla partizione (tipicamente cobd0p1) e scrivete (esegui il comando “write”) nella tabella delle partizioni. Uscite da cfdisk e riavviate coLinux (digitare halt nella shell e attendere). Rieseguite i primi passi fino ad avviare la shell, poi scrivete quanto segue:

mknod /dev/cobd/0p1 b 117 0p1 (mknod -dev-cobd-0p1 b 117 0p1)
mke2fs -j /dev/cobd/0p1 (mke2fs 'j -dev-cobd-0p1)

mount -t auto /dev/cobd/0 /target (mount 't auto -dev-cobd-0 -target)

Quest'ultimo comando potrebbe non funzionare al primo tentativo, in questo caso scrivere

mount -t auto /dev/cobd/0p1 /target (mount 't auto -dev-cobd-0p1 -target)
unmount /target
(unmount -target)
mount -t auto /dev/cobd/0 /target (mount 't auto -dev-cobd-0 -target)

Come creare un disco non partizionato (e quindi espandibile)
I comandi in neretto sono pronti per essere “ copincollati”

mke2fs -j /dev/cobd/0 (mke2fs 'j -dev-cobd-0)
mount -t auto /dev/cobd/0 /target (mount 't auto -dev-cobd-0 -target)

 

Attivazione della linux box e prima installazione
Indipendentemente da come abbiamo creato l'harddisk ora bisogna creare e attivare la partizione di swap, per poi passare alla configurazione della rete.

mkswap /dev/cobd/1 (mkswap -dev-cobd-1)
swapon /dev/cobd/1 (swapon -dev-cobd-1)

Uscite dalla shell, con exit, e scegliete di configurare la rete. Alla prima domanda rispondi con un nome qualsiasi, poi scegli di non usare il DHCP, ed infine immetti i dati di rete appropriati. Nel mio caso con router su 10.0.0.2 ho scelto IP=10.0.0.6, netmask=255.255.255.0 gateway=10.0.0.2, dominio=local, DNS (domain name server)=10.0.0.2 (o i DNS del tuo provider)

Con la condivisione di rete di Windows devi scegliere un qualcosa come IP=192.168.1.2, netmask=255.255.255.0 gateway=192.168.1.1, dominio=local, DNS=192.168.1.1 (o gli indirizzi DNS del tuo provider).

Io non ho provato questi dati e quindi non so se funzionano. Ricorda che il computer che condivide la rete (in questo caso il windows 2000) deve avere indirizzo 192.168.1.1).

Ora scegli “ install base system” da “network”, lascia i dati proposti e attendi. Se l'installazione non parte dicendo che il server non è raggiungibile o non contiene dati utili, controlla accuratamente le impostazioni di rete. Se è tutto a posto allora hai fatto qualche casino con la configurazione del disco di root. Cancellalo e ricomincia dall'inizio.

A volte si blocca subito dopo aver ricevuto le intestazioni dei pacchetti (prima di scaricare il primo pacchetto), in questo caso basta premere ctrl-C e riavviare la proceudra (install base system).

Quando ha finito ritorna in shell (“Execute a shell”) e digita quanto segue per attivare in automatico lo swap ad ogni avvio.

echo "dev/cobd/1 swap swap defaults 0 0" >> /target/etc/fstab
(echo °dev-cobd-1 swap swap defaults 0 0° :: -target-etc-fstab)

Poi crea i blocchi virtuali anche nel nuovo disco:

mkdir /target/dev/cobd; for i in 0 1 2 3 4 5 6 7 8 9 p1; do mknod /target/dev/cobd/$i b 117 $i; done
(mkdir -target-dev-cobdò for i in 0 1 2 3 4 5 6 7 8 9 p1ò do mknod -target-dev-cobd-$i b 117 $iò done)

Ora ritorna nel menu e scegli di riavviare il sistema, coLinux si chiuderà.

Apri il file di configurazione e cancella il blocco 2. Il blocco 3 (quello del cdrom) lo enumeri con 2 e da bootparams cancelli la seconda riga e togli i commenti (<!-- -->) alla seconda. In pratica risulterà così:

<block_device index="2" path="\Device\Cdrom0" enabled="true" />

<!-- bootparams allows you to pass kernel boot parameters -->
<bootparams>root=/dev/cobd/0</bootparams>

Salva e riavvia coLinux.Alla partenza il sistema chiede di essere configurato. Scegli la tastiera e l'orologio non GMT (in genere il bios è impostato sull'ora locale). Rispondi come credi alle varie domande (conviene configurare un utente e non configurare il ppp) e prova ad aggiornare il sistema per via HTTP, se un server non funziona prova il secondo (a me ha sempre funzionato il freedom.dicea.unifi.it).

Continua a rispondere alle domande in modo da rispettare le dipendenze (basta rispondere Y alle domande in console) e in modo da tenere il sistema il più pulito possibile (per ora installa il meno possibile. Quando ti viene chiesto quale interfaccia scegliere per configurare i pacchetti scegli dialog e poi medium

Wide home directory --> Yes
Serial port configuration -->kernel
Serie di domande da console --> sempre Yes
Man-db --> no
Exim decidi tu, io ho scelto di non fare nulla (5)

A seconda di cosa si è deciso di installare può capitare che il sistema faccia delle domande su ssh, in questo caso vai all'apposita sezione della guida.

Quando hai fatto chiudi ancora una volta coLinux (comando halt) e passa alla shell testuale di Windows. Qui usa il comando dd -list | more e prendi nota del numero del device corrispondente alla lettera del disco che vuoi condividere. Nella maggioranza dei casi (?sempre?) l'ordine lo puoi anche intuire da “Gestione dischi logici” (nel pannello strumenti di amministrazione). I dischi sono numerati da zero, le partizioni da 1 a partire da destra.

Quando ti sei segnato i vari numeri puoi configurare coLinux come segue:

<block_device index="3" path="\Device\Harddisk1\Partition2" enabled="true" />
<block_device index="4" path="\Device\Harddisk0\Partition3" enabled="true" />
<block_device index="5" path="\Device\Harddisk0\Partition5" enabled="true" />
<block_device index="6" path="\Device\Harddisk1\Partition1" enabled="true" />
<block_device index="7" path="\Device\Harddisk0\Partition2" enabled="true" />
<block_device index="8" path="\Device\Harddisk0\Partition4" enabled="true" />

Questo sistema presenta due dischi con 6 partizioni che si vorrebbero condividere. In questo esempio nel primo disco (harddisk0) gli ultimi due blocchi (7 e 8) sono Linux (e quindi il comando dd non le mostra) e i primi sono di Windows. Il grosso limite di coLinux è che la condivisione dei dischi può avvenire solo in modalità esclusiva, quindi il disco può essere usato o da Windows , o da linux, mai contemporaneamente. E' ovvio, quindi, che se abbiamo una sola partizione questa non potrà essere usata da Linux in quanto è già usata da Windows. Nel seguito della guida vedremo come ovviare a questa limitazione.


Setup di Linux


Inizialiazzazione del sistema
Prima di avviare coLinux occorre fare ancora una modifica temporanea al file di configurazione, occorre scrivere la seguente riga

<block_device index="9" path="\DosDevices\D:\coLinux\initrd.modules" enabled="true" />

Il file initrd.modules ancora non esiste, lo dobbiamo creare noi nel seguente modo:

1) Copia e rinomina il file initrd.gz in initrd.modules
2) Scompatta il file initrd.modules.gz e assicurati che abbia il nome initrd.modules

Avvia coLinux e entriamo come root (da ora in poi, se non diversamente indicato supporrò sempre il login attraverso l'utente root). Ora dobbiamo montare il nuovo disco virtuale

mount /dev/cobd/9 /mnt

e quindi scompattare i moduli dato che ancora il nostro Linux ne è sprovvisto:

cd /; tar -zxvf /mnt/lib/modules/vmlinux-modules.tar.gz

(ora la tastiera è a posto e quindi non c'è più il problema iniziale, dovete solo fare attenzione ai puntini che non vengono riportati)

Per poter utilizzare i moduli dobbiamo ancora dare i seguenti comandi (da notare che il comando apt-get è stato configurato automaticamente durante il setup, comunque se ciò non fosse in rete ci sono una marea di guide). Con alcuni server la configurazione seguente è già stata fatta, comunque male non fa ripeterla.

apt-get update
apt-get install module-init-tools
update-modules
depmod -a
umount /mnt

Ora abbiamo finito e volendo si può togliere la riga che abbiamo aggiunto al file di configurazione.

Configurazione dei dischi fisici
Aggiungiamo un link per montare semplicemente il cdrom. Se hai seguito le istruzioni fin qui riportate il cdrom si trova nel blocco 2, quindi dovremmo scrivere:

cd /dev
ln -s cobd/2 cdrom

A questo punto potremmo montare il cdrom semplicemente con mount /cdrom
Poi passiamo ad aggiungere qualche programma utile, tipo vi e less.

apt-get install vim
apt-get install less
apt-get install mc
apt-get install sudo
apt-get install super
apt-get clean

L'ultimo comando cancella i file (di installazione) appena scaricati per liberare un po' di spazio dal nostro disco. Se volete prima di proseguire potete configurare sudo, una guida, tra le altre in rete la trovate qui:http://www.slack.z00.it/slack/docs/pillola_sudo.html (Non è necessario farlo ai fini di questa guida).

Se vi non vi piace potrete scaricare emacs (apt-get install emacs21), oppure usare nano come editor. Io nella guida userò vi perchè è più semplice da spiegare. Configuriamo l'accesso ai dischi fisici del PC. Per far questo occorre editare il file fstab. Diamo quindi il seguente comando:

vi /etc/fstab

Con vi per scrivere occorre prima premere il tasto i, per cancellare il tasto CANC (oppure d+FrecciaDestra), per uscire salvando premere :wq, per uscire senza salvare :q!
Per uscire dalla modalità inserimento (tasto i) occorre premere il tasto ESC

Una volta entrato in vi premi i

Spostati sull'ultimo carattere dell'ultima riga e premi [INVIO]

Se il disco da aggiungere ha tipo NTFS scriverai qualcosa come

/dev/cobd/N /DirectoryDiMount ntfs ro,users,exec,noauto,umask=000 0 0

Se il disco da aggiungere ha tipo FAT32 scriverai qualcosa come

/dev/cobd/N /DirectoryDiMount vfat rw,users,exec,noauto 0 0

Dove N è il numero di blocco come appare nel file di configurazione, e DirectoryDiMount è la cartella dove sarà visualizzato il contenuto del disco, tale cartella la dovrai creare con il comando mkdir /DirectoryDiMount. Consiglio di usare cartelle diverse per ogni dispositivo montato. Ecco un esempio del file fstab

/dev/fd0 /floppy auto user,noauto 0 0
/dev/cdrom /cdrom iso9660 ro,user,noauto 0 0
/dev/cobd/3 /dos vfat rw,users,exec,noauto 0 0
/dev/cobd/6 /winxp ntfs ro,users,exec,noauto,umask=000 0 0
/dev/cobd/7 /slack ext3 rw,users,exec,noauto 0 0
dev/cobd/1 swap swap defaults 0 0

Quando hai finito premi ESC :wq

Se hai sbagliato a scrivere qualcosa premi ESC poi posizionati con il cursore sotto al carattere da cancellare e premi CANC (oppure d seguito dalla freccia destra), premi i per riscrivere in modo corretto. Se l'errore è troppo grosso e non riesci a correggerlo premi :q! (eventualmente preceduto da ESC) per uscire senza salvare.

Quanto detto, in verità, a me non ha funzionato per il disco di tipo FAT32. Non so perchè, ma continua a dire che il disco montato ha il descrittore errato. Se qualcuno riesce a capire il motivo e risolve può modificare questo aspetto della guida.

Configurazione del sonoro
Attivare questa caratteristica è facile in coLinux in quanto non dovremmo occuparci della scheda sonora vera e propria, ma dovremmo solo costruire un canale TCP tra linux e il sistema ospite, nel nostro caso Windows.

Dal lato Linux dobbiamo installare ESD e programmi che lo usano, semplicemente diamo il comando
apt-get install mpg123-esd
e, come al solito, accettiamo tutte le dipendenze. Una volta installato bisogna indicare a Linux dove trovare il client ESD, lo si fa con:

export ESPEAKER=IndirizzoIPWindows:16001 (Per conoscere l'indirizzo IP di windows guarda nel bridge che hai creato a inizio guida, oppure dai il comando ipconfig).

Dal lato Windows apri una console spostati nella cartella di esd e digita il comando:

esd -tcp -bind IndirizzoIPWindows -nobeeps

Torna in Linux e prova un mp3 qualsiasi con mpg123-esd demo.mp3 (eventualemente monta uno dei dispositivi fisici).

Una nota sul comando esd di Windows.
Occorre terminare il programma ogni qualvolta si cambia utente e solo il primo utente può utilizzare lo streaming sonoro in locale. Per fare in modo che non si debba terminare il programma, o che tutti gli utenti possano utilizzare il servizio, occorre aggiungere l'opzione -promiscuous
che però è considerata pericolosa per via della mancanza dell'autenticazione. A mio avviso su un computer locale con firewall il problema non sussiste.

Per non digitare ogni volta il comando export possiamo aggiungerlo ad uno dei file di inizializzazione del sistema, io ho scelto il profile. Spostati nella cartella etc: cd /etc

Edita il file profile e aggiungi la riga ESPEAKER=IndirizzoIPWindows:16001, in basso nella riga export aggiungi ESPEAKER.

vi profile
i
Spostati nella riga sotto il path e scrivi la riga indicata prima
Vai in fondo al file e aggiungi la parola ESPEAKER
:wq

Di seguito un esempio del mio profile

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games"
ESPEAKER=10.0.0.4:16001

[...]

export PATH PS1 ESPEAKER

Aggiungere un utente e configurazione di ssh
E' giunto il momento di aggiungere un utente normale alla nostra Linux box, questo è utile sia per la sicurezza, sia perchè l'ambiente X necessiterà di un utente classico per essere avviato, almeno con la modalità più veloce (nx). Durante il setup iniziale avremmo dovuto creare un utente, se ciò fosse non c'è bisogno di farlo nuovamente. Ancora una volta è semplicissimo anche senza l'interfaccia grafica a cui ormai siamo abituati:

adduser NomeUtente

basta rispondere alle varie domande ed è fatta. Per aggiungere ssh basta dare il comando apt-get install ssh, poi rispondere come segue:

Only ssh 2? --> yes
Do you want /usr/lib/ssh-keysign to be installed SUID root? --> yes
Do you want to run the sshd server? -->yes

Adesso occorre abilitare il X11Forwarding, per farlo basta editare il file /etc/ssh/sshd_config:

vi /etc/ssh/sshd_config
(Cerca la riga X11Forwarding no e cambiala in X11Forwarding yes)
:wq

Bisogna riavviare il servizio ssh:

killall sshd

sshd

Per provare che tutto funzioni avviare il client ssh da windows con l'indirizzo IP di Linux (è quello che si è dato ad inizio guida, comunque verificabile con ifconfig). Questo è un modo semplice per avere più shell testuali, come normalmente siamo abituati in Linux. Per avere il sonoro devi configurare il tunnel (connection-->ssh-->Tunnels), attiva la casella “Local port accept connessions from other host”, in source port scrivi 16001, in destination scrivi IndirizzoIPLinux:16001 e poi pigia “add”. Se lo desideri puoi salvare la configurazione.

Attiviamo la graf
Come detto all'inizio configureremo la nostra Linux box per funzionare sia con VNC sia con NX in modo da poter avere due shell grafiche contemporanee (come in Linux) o poter scegliere la più efficiente per il proprio sistema. Esiste anche la possibilità di usare Cygin/X, per la sua configurazione rimando al wiki da cui questa guida ha preso spunto.

Tutti i server grafici che installeremo non presentano il login grafico, pertanto saranno avviati con l'utente impostato nel client del desktop remoto o con l'utente della shell. Questa scelta mi sembra la più coerente con lo spirito di questa guida e con il normale uso di coLinux; comunque basta fare riferimento al wiki per trovare guide dettagliate su come installare un XDMCP (login grafico mediante xdm, gdm, kdm, o altro).

Occorre predisporre il sistema all'uso di X

apt-get install x-window-system-core

Al termine configurare il sistema rispondendo come segue:

vesa
xfree86
pc104
it
nulla
psaux
imps/2
ok
simple
Scegli il monitor e la risoluzione

Ora si può scegliere quale desktop (o windows) manager installare e se installarlo completamente, io ho scelto di usare il KDE, 
ma nulla vieta di usare un qualsiasi windows manager con supporto per l' Enlightened Sound Daemon.
Ora scegli se installare
solo la versione base di KDE (apt-get install kdebase) oppure quella completa (apt-get install kde).
Io ho scelto quella completa.
Alle domande che vi vengono poste rispondete con le risposte di default.
Al termine digitare apt-get clean, per liberare un po' di spazio dal disco.

Grafica mediante nxserver
NxxServer necessita di ssh installato e configurato, eventualmente installalo ora prima di proseguire.
Questo server dovrebbe essere il più efficiente e veloce, per installarlo occorre modificare il file dei sorgenti di apt. Vai in /etc/apt e digita:

vi source.list
i
(portati in fondo al file)
deb http://www.backports.org/debian/ stable kernel-image-2.6.6-i386
deb http://debian.tu-bs.de/knoppix/nx/skolelinux ./
:wq

(Fate attenzione ai puntini)

apt-get install update
apt-get install nxserver

Se non dovesse funzionare fate un reboot di coLinux

NxServer sarà avviato come demone e quindi per avviare la sezione X sarà sufficiente avviare coLinux e senza loggarsi avviare il client Windows di nx con l'utente desiderato. L'unica pecca è che non è possibile loggarsi come root, se necessita tale tipo di utente in grafica occorre o cambiare utente con su (raccomandato), oppure avviare X con VNC.

Per configurare nx lato Linux è sufficiente avviare i seguenti comandi:

nxsetup --setup-nomachine-key
nxserver --useradd NomeUtente
nxserver --passwd NomeUtente

dove NomeUtente è lo stesso utente creato in precedenza con Linux e la password benchè possa essere una qualsiasi consiglio di metterla uguale a quella Linux. Lato Linux abbiamo finito o quasi, manca solo una piccola cosa, ma la faremo dopo. Ora passiamo alla configurazione di nx in Windows.

Dopo averlo installato configuriamo un utente come segue:

Scheda generale--> Host = IndirizzoIPLinux porta 22

Desktop=Unix -- KDE – LAN

Ovviamente al posto di KDE si può mettere il Windows manager scelto oppure custom. Per una spiegazione completa è bene riferirsi a http://www.nomachine.com/documentation/html/admin-guide.html

Dispaly = FullScreen (o Avaible area)

Advanced --> Cache=32 ondisk=128 . Il resto come si desidera (in verità a me non funziona se tolgo la compressione zlib).

Services --> Mettere le cartelle è inutile tanto accederemo comunque tramite samba, discorso diverso per la stampante. Nella guida non troverete nulla riguardante la stampante perchè non sono riuscito a farla funzionare (se non in modalità postscript). Se ci riuscite si può modificare questa guida.

Abilitate il multimedia support.

Se all'avvio vi dice di non riuscire a cancellare una chiave dovete andare nelle impostazioni del vostro account Windows (Document and setting/NomeAccount/) nella cartella .ssh e rinominare il file known_hosts il known_hosts.old. Questo succede se avete giò fatto prove con nx.
Per la configurazione di KDE o del windows manager che avete scelto vi rimando alle tante guide sulla rete, qui ci occuperemo brevemente solo della configurazione del sonoro. In KDE dovete abilitare dal centro di controllo il suono da Network e il Enlightened Sound Daemon (ovviamente da windows deve essere attiva l'applicazione esd, come spiegato in precedenza).

Avevo lasciato in sospeso una minima configurazione in linux, è la configurazione della variabile DISPLAY. Una volta avviata la sessione grafica di nx da Windows si apre una finestra in cui nel barra del titolo è presente l'indirizzo IP (indirizzo di Linux) e la porta alla quale risponde nx (tipicamente la 1000). Se settiamo la variabile DISPLAY come segue:

export DISPLAY=IndirizzoIpLinux:1000

da questo momento potremo avviare le applicazioni X direttamente dalla shell di Linux, in questo caso l'applicazione girerà con i diritti dell'utente loggato. Se si usa sempre o spesso NX conviene mettere la riga sopra riportata nel file profile, come indicato qualche paragrafo fa.

Grafica mediante VNC

In realtà useremo tightVNC perchè più flessibile del classico RealVNC. Installiamo il server

apt-get install tightvncserver

Rispondi alle domande che ti vengono poste e scegli una password. Bisogna ora configurare la finestra del server X indicando le dimensioni e il numero di colori. Si può fare a riga di comando, ma io preferisco farlo una volta per tutte nel file di configurazione. Spostatevi nella cartella /etc (cd /etc/ ) ed editate il file vnc.conf:

vi vnc.conf
i
(Nelle apposite sezioni scrivete quanto segue)
$geometry=”1024x768” (o quella che preferite)
$depth=32

:wq

Adesso bisogna avviare almeno una volta il server con:

tightvncserver :1

Vi chiderà una passoed valida per l'utente corrente (in questo caso root). Ora andate nella cartella .vnc della vostra home:

cd
cd .vnc

e modificate come segue il file xstartup

#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
startkde &

In particolare dovete inserire il simbolo # nella terza riga e quarta riga e aggiungere startkde & (o gnome-session & o altro WindowsManager) nell'ultima riga.

Ora digitate tightvncserver -kill :1

Questa cosa fa fatta per ogni utente che utilizzerà VNC. (per cambiare momentaneamente utente digitare su NomeUtente, per ritornare all'utente precedente digitare exit. Per conoscere l'attuale utente digitare users).

Per avviare il server è sufficiente scrivere tightvncserver :1 mentre per chiuderlo si deve scrivere tightvncserver -kill :1

Ricordarsi di chiuderlo contestualmente alla chiusura del WindowsManger scelto o quando si cambia utente. Al contrario di NX le applicazioni partono non appena si avvia il server (quindi KDE è in esecuzione fin da subito). Per la configurazione del sonoro in KDE rimando alla sezione nxserver.

Dal lato Windows occorre installare il client TightVNC e configurare il fullscreen nelle opzioni. Scegliere la modalità Fast L'indirizzo IP al quale trovare il server è IndirizzoIPLinux:1

Anche con VNC potete avviare le applicazioni da console esportando la variabile display:

export DISPLAY=IndirizzoIpLinux:1

Abbiamo quasi finito, per rendere completa la collaborazione tra i due ambienti (linux e il suo ospite Windows) occorre installare samba, o meglio il solo client.

Condivisione cartelle di Windows tramite Samba (client).
Questa guida non vuole assolutamente sostituire le guide Samba sparse per la rete, quindi vedremo solo come fare comunicare Linux con Windows, in altre parole Windows continuerà a non vedere le cartelle di Linux.

Dato che non bisogna configurare nulla l'installazione e il successivo uso risulta alquanto semplice. Se avete installato KDE date il comando apt-get install smb4k, altrimenti installate il Samba GUI del vostro Desktop o Windows manager. Se avete scelto un Windows manger senza GUI per samba o volete utilizzare samba solo da console allora date i seguenti due comandi:

apt-get install smbcli
apt-get install smbfs

Quando vi viene chiesto digitate il nome del dominio Windows (se non lo conoscete guardate nel pannello di controllo), usate le password cifrate, non ho configurato WINS. Al termine dell'installazione digitare apt-get clean.

Da kde basta lanciare il programma smb4k e gestire le cartelle condivise di Windows (e l'eventuale stampante. A me, come detto, vuole stampare solo in postscript...), oppure da console per montare le cartelle Windows si dà il seguente comando:

mount -t smbfs -o username=NomeUtente //IndirizzoIPWindows/Cartella /mnt

Ovviamente cartella e mnt sono rispettivamente la cartella di Windows da condividere e la cartella di Linux dove ne vedrete il contenuto. All'atto del montaggio Linux può chiedervi la password del proprietario della cartella. Il parametro -o username= può essere omesso, in tal caso l'accesso sarà tentato con l'attuale utente di Windows. Per smontare la cartella basta dare il classico umount /mnt (ovviamente con “mnt” corretto).

Per uscire dalla linux box date il comando halt. Se avete configurato sudo e non volete digitare sudo halt da utente normale potete seguire questa guida: http://wiki.gentoo-italia.net/index.php/Spegnere_e_riavviare_anche_da_utente

Ricordatevi di accedere a Linux mediante un utente normale (per passare a root usare il comando su).

Conclusioni
Siamo arrivati alla fine. Linux ha una configurazione di base pronta all'uso con la quale potrete impratichirvi o comunicare con la Linux box presente in altra partizione. Resta da vedere come modificare lo spazio del disco


Appendice 1

Espandere il disco Linux
Come detto all'inizo della guida è possibile espandere il disco una volta che ci si è resi conto che il disco ha una capacità insufficiente. Ovviamente conviene fare una copia del file originale.

La prima cosa da fare è accedere alla console Windows e nella cartella di coLinux variare la dimensione del file che rappresenta il disco fisso, nel nostro caso DiscoDebian. Il comando da dare è il seguente (supponendo che sia nella stessa cartella di coLinux).

mkfile -s -r -g DiscoVirtuale NuovaDimensione

nel nostro caso, se volessimo un disco da 10 GB, scriveremo

mkfile -s -r -g DiscoDebian 10

Se abbiamo partizionato il disco allora abbiamo finito. All'avvio di coLinux potremmo creare una nuova partizione nella parte vuota. In caso contrario occorre usare il programma parted, però non possiamo usare quello fornito da Debian sia perchè la root dovrebbe essere smontata, sia perchè è compilato con librerie dinamiche. Occorre quindi scaricare la versione precompilata staticamente da ftp://ftp.gnu.org/gnu/parted/bootdisk/ e scaricare il file partroot (attualmente il più aggiornato è 1.6.6).
Una volta scaricato il file lo si deve scompattare e quindi si deve modificare ancora una volta il file di configurazione di coLinux. Si devono aggiungere queste sue righe

<block_device index="2" path="\DosDevices\D:\coLinux\root.bin" enabled="true" />
<block_device index="3" path="\DosDevices\D:\coLinux\partroot.img" enabled="true" />

Probabilmente si hanno già i dispositivi sul blocco 2 e 3, occorre cancellarli o commentarli (in questo caso si racchiude tra <!-- --> le opzioni da commentare)

Bisogna anche modificare il bootparams come abbiamo già fatto a inizio guida:

<--! <bootparams>root=/dev/cobd/0</bootparams> -->
<bootparams>root=/dev/cobd/2 devfs=mount,dall ramdisk_size=8192</bootparams>

Anche in questo caso, se non dovesse funzionare si può usare

<bootparams>root=/dev/cobd2 devfs=mount,dall ramdisk_size=8192</bootparams>

Ora possiamo avviare coLinux, si ripetono le operazioni spiegate a inizio guida per arrivare alla shell e quindi si danno i seguenti comandi:

mount -t auto /dev/cobd/3 /target (mount 't auto -dev-cobd-3 -target)
/target/usr/bin/parted /dev/cobd/0 (-target-usr-bin-parted -dev-cobd-0)

Dentro parted si dà il comando resize come segue:

resize 1

Si accettano le dimensioni proposte (a start si mette 0), facendo attenzione che la seconda sia quasi il massimo disponibile (in genere è tutto corretto).

Si esce con quit da parted, e poi con halt da coLinux.

Si ripristina il vecchio file di configurazione e si può usare il nuovo Disco più grande.



Licenza Creative Commons
Alcuni diritti riservati. Tutte le opere di questa pagina sono pubblicate sotto una Licenza Creative Commons.  Per un uso diverso da quello indicato nella licenza si prega di conttatare l'autore.