GNU/Linux Articoli

Apple Filesystems MINI-HOWTO


ovvero: come montare i filesystems di casa Apple su Linux e vivere felici
MacOnLinux A chi sia capitata l'avventura/sventura di avere amici macintoshani o di dover lavorare per aziende di grafica o di editing audio/video (solo per citare qualche esempio) saranno sicuramente capitati in mano dei CD/DVD/Floppy creati su macchine della Mela™. Tali fantastici supporti si rifiutano apparentemente di venire aperti dalla nostra LinuxBox. Vediamo quindi come far digerire le mele al Pinguino :-)
In principio era HFS
O quasi. A quel che mi risulta il primissimo filesystem di casa Apple fu l'MFS (con molta fantasia Macintosh File System), ma trovarlo è praticamente impossibile e neanche il Pinguino è così di bocca buona da riuscire a digerirlo.
Il filesystem storico dei Mac (usato dai MacPlus fino al MacOS 8, se non erro) fu comunque HFS (Hierarchical File System) ed è ancora oggi abbastanza diffuso (anche sui floppy). Supponiamo quindi di avere un floppy formattato con HFS.
Perchè Linux riesca a montarlo occorre che ne sia abilitato il supporto a livello kernel. Bisognerà quindi (molto probabilmente) ricompilare il kernel. In particolare è necessario compilare come modulo il supporto a HFS (File Systems > Miscellaneous filesystems > Apple Macintosh file system support). Una volta ricompilato il kernel è sufficiente inserire il floppy e (da root) dare:mount -t hfs /dev/fd0 /mnt/floppyet voilà, il contenuto del floppy sarà accessibile in lettura/scrittura.
HFSPLUS
Dalla versione 8.1 in poi MacOS ha adottato il filesystem HFS+, un HFS con l'aggiunta del journaling e di altre features. Il modulo per hfs non funziona per il filesystem HFS+ ed è quindi necessario ricompilare il kernel abilitando il supporto (in sola lettura) per l'Apple Extended HFS filesystem (File Systems > Miscellaneous filesystems > Apple Extended HFS filesystem). Per montare, ad esempio, un CD/DVD (il caso più frequente, almeno nella mia esperienza) formattato in HFS+ basta dare (da root):mount -t hfsplus /dev/cdrom /mnt/cdrom per avere accesso in lettura ai contenuti.
Apple UFS
Il caso più rognoso che mi sia capitato è stato quello di un CD formattato in Apple UFS FileSystem. Il problema dell'UFS è che esso è un filesystem di cui esistono diversi dialetti (ovviamente incompatibili l'uno con l'altro). Linux mette a disposizione un unico modulo (da attivare in File Systems > Miscellaneous filesystems > UFS file system support) al quale passare come opzione (mount -o ) il dialetto desiderato. I "dialetti" disponibili sono: sun, sunx86, 44bsd, ufs2, 5xbsd, old, hp, nextstep, netxstep-cd, openstep. Dato che in nessuno di essi apparivano riferimenti alle mele sono andato per tentativi. Per primi ho provato nextstep-cd e nextstep (visto che il CD proveniva da un MacOSX che è un clone di NextStep) senza risultati, ma sono stato fortunato al terzo tentativo (con openstep). Questa la riga da impartire per montare un CD/DVD in Apple UFS:mount -t ufs -o ufstype=openstep -r /dev/cdrom /mnt/cdromL'opzione "-r" forza il montaggio in sola lettura (la scrittura su UFS è sperimentale e ancora insicura).
Ma che FS sarà?
Se avete per le mani un floppy/CD/DVD/partizione di cui non sapete il filesystem potete tentare con questo comando (nell'esempio suppongo di avere un CD, ma funziona con qualsiasi dispositivo):head -n 1 /dev/cdromUsando il comando su un CD Apple HFS+ si ottiene:ERZPM?AppleApple_partition_map?PM@disk imageApple_HFS@3goonPMPinvece con un CD in Apple UFSERâPM?AppleApple_partition_map?PM@â8disk imageApple_UFSâ8@3goonPMâxInfine su una partizione Fat32 il risultato è:..XMSDOS5."....NO NAME FAT32
Devo ricompilare o no il kernel?
Le moderne distro Gnu/Linux escono equipaggiate con dei kernel generici che supportano tutto o quasi il supportabile. Per scoprire quindi se il vostro kernel è già AppleFS ready date questi comandi.
  1. Per HFSPLUSmodprobe -l|grep hfsplus
  2. Per HFSmodprobe -l|grep hfs
  3. Per UFSmodprobe -l|grep ufs
Se il risultato è qualcosa del tipo/lib/modules/2.6.x.x/kernel/fs/xxx/xxx.ko allora siete AppleFS ready. Altrimenti, armatevi di pazienza, caffè e sorgenti del kernel, e buon lavoro di ricompilazione :-)