Un amico mi chiama sottoponendomi un problema che sta avendo.
Riguarda un’immagine ISO montata sotto Solaris che non si comporta come dovrebbe o… come lui vorrebbe.
Dice di aver creato il lofs con lofiadm e di averlo montato con successo. Al momento di accedere al mountpoint, però, riceve un:
cd /mnt2
-bash: cd: /mnt2: Not a directory
Mmh.
Allora si parte con le domande di rito:
Fai un ls -la di /mnt2:
ls -la /mnt2
brw------- 1 root sys 144, 1 mag 18 21:19 /mnt2
Mmmhh, un block device file. Qualcosa non quadra. Sarebbe necessario capire cosa ha fatto durante la procedura di creazione del loFS e del successivo mount.
Niente history… ma dopo qualche smanettamento infruttuoso m’illumino.
Smonto il filesystem e distruggo il device file; notando che /mnt2 non è una directory ma un device file, sono convinto che abbia montato il device specificando a mount non che si tratta di un’immagine ISO, ma appunto di un lofs … che si può assimilare a distrazione o più probabilmente al fatto di conoscere la procedura, essersi distratto e non aver ben capito cosa si stia facendo. Quindi mount l’ha montato come quello che è, ragionando correttamente (almeno lui).
Ora da vuoto, rifaccio tutto:
Creo il device con lofiadm, /dev/lofi/1 , poi creo la dir /mnt2, e lo monto:
mount -F hsfs /dev/lofi/1 /mnt2
df -h|grep lofi
/dev/lofi/1 450M 450M 0K 100% /mnt2
cd /mnt2
ls
sparc worm x64
Perfetto. Funziona.
Il problema è riproducibile, dopo aver creato il lofs desiderato, montandolo cosi:
mount -F lofs /dev/lofi/1 /mnt2
..e verificando che /mnt2 sia un block device file e non il mountpoint sotto il quale si voleva montare la ISO.
Distrazione o errato ragionamento.
Morale: montando un loFS, bisogna specificare il tipo di FS al quale esso fa riferimento e non definendolo come loFS, quando si usa l’opzione -F di mount.