Era ora. Dopo quasi quattro anni era necessario rimettere mano alla stazione di lavoro anche perchè uno dei dischi - per fortuna sotto mirroring - faceva strani rumoracci.
A questo punto ne approfitto per fare un upgrade, sfruttando il fatto che già mi era toccato cambiare la motherboard prima dell’estate. Il nuovo hardware vede quindi la sostituzione del processore con un Pentium D 3,4GHz, una coppia di Maxtor da 230 GB e altri 2 GB di RAM da sommare a quelli esistenti.
Fino ad oggi ho utilizzato Linux, e in particolar modo Ubuntu, come server di sviluppo (i soliti mysql, php e ammennicoli vari) ma sempre all’interno di vmware come macchina virtuale. Dopo un po’ di riflessione, stavolta, decido di passare finalmente a Ubuntu come sistema operativo primario, sempre in coppia - giocoforza - con Windows prefiggendomi di realizzare una buona interoperabilità a livello di file system (d’altronde non sarebbe possibile null’altro :-)).
La configurazione che mi sono prefisso è la seguente:
- HD 160 GB, ripartito in 32GB NTFS di boot, 64 GB Linux etx3, 64 partizione di dati ext2, 6 GB swap;
- 2×250GB, mirror, 64 GB windows s.o., 147 GB DATI, 24 GB FAT32
Lo scopo è quello di condividere la partizione dati da 64 GB sul disco linux e quella da 24 GB sul disco windows tra i due sistemi operativi, ovviamente montati in dual boot. Non fidandomi completamente riservo i dischi in mirroring solo a windows, almeno per il momento.
I dischi sono tutti Serial ATA e intendo utilizzare le funzionalità del controller Intel ICH7R - integrato nella motherboard - per l’implementazione del mirror. Per quest’ultimo ho i driver per windows, ma non per Ubuntu, tuttavia e’ facile accertarsi (cfr più avanti) che Ubuntu e’ in grado di riconoscere il controller ma non, purtroppo, il raid (tecnicamente un fake raid). Quindi procedo come segue:
1. Installo windows sui dischi in mirror (sui canali sata1 e sata3), attivati preventivamente mediante l’apposita utility nel BIOS. La partizione da 32GB su sata0, ntfs, viene utilizzata per installare il boot manager. Faccio una copia del boot su dischetto … non si sa mai.
2. Installo Ubuntu sul disco sata0, partizione 2, e installo grub sull’MBR di quel disco. Grub riconosce automaticamente la presenza di Windows. Verifico il funzionamento del boot manager: è tutto ok.
Per quanto riguarda la condivisione delle partizioni tra Linux e Windows occorre annotare quanto segue: Linux è in grado di accedere nativamente in lettura/scrittura alle partizioni FAT32 (vfat, nella terminologia di linux) ma non posso sfruttare questa feature fin quando non risolvo il problema dell’accesso ai dischi in mirror: attualmente questi vengono ancora visti come due dischi separati.
Tuttavia nelle ricerche trovo una cosa veramente simpatica: su linux-ntfs.org si trova un driver che consente a Windows di accedere alle partizioni ext2 (ed ext3 ma senza journaling). Una vera chicca preziosa che consente di risolvere completamente l’accesso in una direzione sebbene, ovviamente, non tutte le features dei file system citati sono supportate. La cosa che più manca sono, al solito, i soft link. Esistono anche altri metodi tra cui ext2ifs e ext2fs che comunque non ho avuto modo di provare.
A questo punto bisogna affrontare il resto del problema. La maggior parte delle informazioni relative al mirroring e, più in generale, all’uso di funzioni raid offerte da controller come il mio Interl ICH7R, o simili, le ho prelevate dal wiki di ubuntu sui fake raid e da questo post sui vari metodi di accesso a partizioni ntfs.
In sostanza ho proceduto nel modo seguente:
1. Ho installato prima di tutto dmraid per far riconoscere il mirroring. Le istruzioni sono quelle del wiki già citato.
2. Ho verificato col comando
dmraid -ay
cosa ha scovato il dmraid e cosa ha mappato in /dev/mapper. Ho annotato i device relativi alle partizioni di mio interesse (in pratica, nel mio caso, la sdb5 e la sdb6) - ricordo che sono ntfs e aggiungo che hanno nomi stranissimi -. Non ho ancora proceduto al mounting di queste visto che non ho ancora il driver di accesso ad ntfs.
Per quest’ultimo ho utilizzato ntfs-3g le cui informazioni sono riportate qui.
Una volta installato ntfs-3g effettuo un reboot e provo a fare il mount a mano delle partizioni utilizzando, per il raid, i device riportati in /dev/mapper. Una volta che funziona il mounting manuale modifico il file /etc/fstab (fare un backup prima!) nella maniera seguente:
/dev/sda5 /pub ext3 defaults 0 1
/dev/mapper/isw_ebgajchabi_Vol25 /pub/win ntfs-3g defaults,ro,locale=en_US.utf8 0 0
/dev/mapper/isw_ebgajchabi_Vol26 /pub/fat vfat defaults 0 0
in /pub quindi c’è la partizione ext3 sul disco Sata0, in /pub/win c’è la partizione di dati di windows montata come readonly (non si sa mai), e in /pub/fat c’è la partizione FAT32 condivisa.
Alla fine ho realizzato il mio scopo e sono contento. Il tutto m’ha richiesto meno d’un paio d’ore - ricerche comprese - contro i due giorni pieni per reinstallare tutto il software sotto windows :|.
Aggiungo inoltre che ho installato vmware sotto linux e, come previsto, va decisamente meglio che sotto windows. Farò un po’ di test mentre lavoro… il rischio è il mio mestiere :D!
Tags: ubuntu, raid, ich7r, ntfs, etx3
In realtà qualche problemino con la vmware 5.2.2. esiste con i soliti vmware-tools: non parte vmware-user che consente, tra l’altro, il ridimensionamento automatico dello schermo.
Il problema è descritto in
http://www.vmware.com/community/message.jspa?messageID=428969
e si risolve attivando i seguenti link simbolici:
ln -s /usr/lib/vmware-tools/lib32/libgdk-1.2.so.0/libgdk-1.2.so.0 /usr/lib/libgdk-1.2.so.0
ln -s /usr/lib/vmware-tools/lib32/libglib-1.2.so.0/libglib-1.2.so.0 /usr/lib/libglib-1.2.so.0
ln -s /usr/lib/vmware-tools/lib32/libgmodule-1.2.so.0/libgmodule-1.2.so.0 /usr/lib/libgmodule-1.2.so.0
ln -s /usr/lib/vmware-tools/lib32/libgtk-1.2.so.0/libgtk-1.2.so.0 /usr/lib/libgtk-1.2.so.0
E’ vero il pericolo e’ il tuo mestiere…. ma la vita e’ gia’ cosi’ difficile…. fai venire una rabbia che ti funziona tutto che quasi quasi faccio la stessa cosa pure io passo a Ubunt come host e windows come guest….
(Aeriko, Atene 29 Dicembre Anno Domini 2006)