In questa lezione vedremo come utilizzare floppy e cdrom. Se Windows ci ha abituati a poter utilizzare i media subito dopo avere inserito i media nel vano, con Linux il discorso si fa leggermente diverso.
Sebbene esistano dei programmi che "si accorgono" della presenza di, ad esempio, un cdrom nel lettore, di norma Linux deve essere istruito su fatto che l'utente vuole leggere o scrivere dati in un device che non sia un disco.
mount
Anche qui, abbiamo un comando che serve proprio a "far vedere" a linux i device: questo comando è mount, la cui sintassi di base è:
mount device dir
dove device è il media che si deve montare (ad esempio il cdrom, che potrebbe essere identificato come
/dev/hdd
) e "dir" è la directory nella quale verrà montato il device stesso (ad esempio, /cdrom
); "dir" viene spesso definito anche come "mount point".
Vediamo un semplice esempio: creiamo, se non esiste, la directory /cdrom
; nel caso questa già esista, proviamo ad entrarci: noteremo che, a meno di stranezze, questa è vuota. Adesso inseriamo il cd nel lettore e, sempre supponendo che nel nostro sistema il lettore cdrom sia lo slave secondario (/dev/hdd
) lanciamo il comando:
mount /dev/hdd /cdrom
Se tutto va per il verso giusto, il lettore dovrebbe mettersi in funzione e un
ls /cdrom
ci permetterà di esplorare i contenuti del cd. Lo stesso discorso vale per il floppy: in questo caso, però, il device è /dev/fd0
(la prima unità floppy) e come mount point è meglio scegliere la directory /floppy
.
le opzioni di mount
Il comando mount ci mette a disposizione molte opzioni, alcune utili altre addirittura essenziali per montare correttamente i media; vediamone qualcuna:
Opzione | Descrizione |
---|---|
-r |
monta il filesystem in read-only, come avviene per i cdrom |
-w |
monta i device in read-write, siano esempio i floppy |
-t |
permette di specificare il filesystem del media: ad esempio, per i cdrom si usa spesso "-t iso9660", per i floppy formattati sotto windows si usa -t vfat e via di seguito. Ovviamente, il filesystem deve essere supportato dal kernel, pena l'impossibilità di montare il device |
-o |
permette di specificare delle opzioni per il mount: probabilmente per le operazioni di base tale opzioni non sono necessarie ma possono essere molto utili per operazioni più complesse (ad esempio, il mount di device di rete) |
Una volta montato un device, noterete che anche premendo il pulsante di eject (escluso il floppy) il media non uscirà. Questo perchè non abbiamo istruito Linux a "lasciare libero" il nostro device. Anche qui, c'è un comando che serve appositamente a questo: umount, la cui sintassi è semplicemente:
umount dir
dove con "dir" dobbiamo andare ad indicare la directory nella quale è montato il media. Riprendiamo l'esempio fatto sopra, ipotizzando di avere già montato il cd in /cdrom: per smontarlo, basterà solamente lanciare:
umount /cdrom
A questo punto, con il pulsante eject del drive sarà possibile estrarre il disco dal lettore.
Può però accadere, a volte, che l'umount fallisca dicendoci "device is busy", ossia che qualcosa tiene occupato il device. Spesso, questo accade perchè un utente si trova all'interno del mount point: se provate ad esempio a dare:
mount /dev/hdd /cdrom cd /cdrom umount /cdrom
otterrete proprio il messaggio: "/cdrom: device is busy
". Ricordate quindi di "uscire" dal mount point quando volete smontare il device.
Sfruttare gli alias per velocizzare il mount
Finiamo questo capitolo con un paio di trucchetti: il primo riguardante il cdrom ed il secondo il floppy.
A volte continuare a lanciare una serie di comandi per montare i cd può risultare fastidioso: per questo si possono utilizzare gli alias: scrivete nel vostro ~/bashrc
o ~/bash_profile
o entrambi (a seconda che vogliate utilizzare questi alias da X, da console o da entrambi) quanto segue:
alias cdin='cd; mount /dev/hdd /cdrom; cd -' alias cdout='cd; umount /cdrom; cd -; eject'
Adesso, lanciando solamente cdin
o cdout
potrete montare e smontare i device senza troppi problemi!
Ma vediamo soprattutto il secondo, che è una serie di quattro comandi: il primo (cd
) ci porta nella nostra home (altrimenti, se per caso siamo nel mount point, sarà impossibile smontare il device), il secondo smonta il device; il terzo ci riporta alla directory dove eravamo prima del "cd" ed il quarto espelle il cd! Notiamo soprattutto il comando eject solitamente è un programma (e quindi un pacchetto) che va installato a parte, altrimenti l'apertura del drive fallirà riportandovi un errore; alternativamente, esiste anche il comando cdeject presente nel pacchetto cdtool.
Passiamo ora al floppy: immaginate di dover copiare un file da un floppy ad un altro: bisognerà quindi:
- montare il primo floppy
- copiare il file
- smontare il floppy
- montare il secondo floppy
- copiare il file
Questa sarebbe la procedura standard se non esistesse il comando fdflush che permette al drive di "accorgersi" del cambiamento del floppy. Quindi, la procedura sopra illustrata si riduce al dover:
- montare il primo floppy;
- copiare il file
- inserire il secondo floppy e lanciare "fdflush /dev/fd0
- copiare il file
Una solo passo in meno, ma una grande comodità in più! L'unica nota, per chiudere, è che non tutti i drive riescono ad accorgersi del cambiamento del floppy: se eseguendo la procedura descritta sopra, dopo aver lanciato fdflush
, vedete ancora il contenuto del primo disco, probabilmente il comando fdflush
è inutile nel vostro sistema!