APPLE FILESYSTEMS MINI-HOWTO

ovvero: come montare i filesystems di casa Apple su Linux e vivere felici

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/floppy

et 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/cdrom

L’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/cdrom

Usando il comando su un CD Apple HFS+ si ottiene:

[email protected] [email protected]

invece con un CD in Apple UFS

ERâ[email protected]â8disk imageApple_UFSâ[email protected]âx

Infine 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.

Per HFSPLUS

modprobe -l|grep hfsplus

Per HFS

modprobe -l|grep hfs

Per UFS

modprobe -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 🙂