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.
