[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]


69. Mtools

Mtools è una raccolta di comandi utili per eseguire facilmente operazioni all'interno di filesystem Dos-FAT (comprendendo anche la gestione dei nomi lunghi); soprattutto, senza la necessità di montarli e smontarli.

Infatti, non si tratta di uno strumento indispensabile; tuttavia, dal momento che il formato Dos-FAT, data la sua diffusione, è molto comodo quando si vogliono utilizzare dischetti per trasferire file da un sistema all'altro, Mtools dà un aiuto in più, riducendo il numero di operazioni da compiere per trasferire file con un dischetto del genere.

Mtools è composto da un solo programma eseguibile, `mtools', da un file di configurazione generale, `/etc/mtools.conf', eventualmente da file di configurazione personalizzati, `~/.mtoolsrc', e da una serie di collegamenti simbolici che puntano all'unico eseguibile. Così, a seconda del nome con cui viene chiamato il programma `mtools', questo si comporta in modo differente.

69.1 Logica di funzionamento e configurazione

I comandi di Mtools, ovvero i collegamenti simbolici che puntano al programma `mtools', cercano di emulare il comportamento dei comandi analoghi del Dos:

69.1.1 Configurazione

La configurazione di Mtools avviene fondamentalmente attraverso i file `/etc/mtools.conf' e `~/.mtoolsrc'; il primo rappresenta la configurazione generale, il secondo quella personalizzata. Il contenuto dei due file segue le stesse regole, tuttavia è importante considerare che le direttive contenute nella configurazione personalizzata tendono a sostituirsi a quelle generali.

Questi file di configurazione possono contenere commenti, e questi sono introdotti dal simbolo `#' e terminati dalla fine della riga; inoltre, le righe vuote sono ignorate.

Le direttive sono suddivise in sezioni, identificate da una sorta di etichetta terminata da due punti verticali (`:'), che rappresentano ognuna un'unità a dischi, secondo lo standard Dos. Alcune direttive hanno però un effetto globale, indipendente dalle sezioni. Queste ultime hanno la forma di assegnamenti di variabili, e in effetti, la loro definizione potrebbe essere fatta anche al di fuori dei file di configurazione, attraverso l'assegnamento e l'esportazione di variabili globali con lo stesso nome.

69.1.2 Variabili globali

Le direttive globali sono espresse in forma di assegnamento, dove, nella maggior parte dei casi, il valore assegnato può essere zero o uno, mentre negli altri si tratta di stringhe. Evidentemente, quando l'assegnamento riguarda solo valori binari, si ha di fronte una variabile booleana che rappresenta l'attivazione (1) o la disattivazione (0) di qualcosa.

Alcune direttive globali

MTOOLS_SKIP_CHECK={1|0}

Se attivato, fa sì che Mtools ignori una serie di controlli sul filesystem Dos, così da permettere l'utilizzo di dischetti formattati in un modo che altrimenti risulterebbe inammissibile.

MTOOLS_FAT_COMPATIBILITY={1|0}

Se attivato, fa in modo che Mtools ignori la dimensione della FAT.

MTOOLS_LOWER_CASE={1|0}

Se attivato, fa in modo che i nomi corti (8.3) vengano visualizzati sempre in minuscolo.

MTOOLS_NO_VFAT={1|0}

Se attivato, fa in modo che Mtools si limiti a creare file utilizzando nomi corti, senza l'estensione VFAT. Ciò può essere utile quando si utilizza un Dos incapace di utilizzare i nomi lunghi.

MTOOLS_TWENTY_FOUR_HOUR_CLOCK={1|0}

Se attivato, fa sì che la visualizzazione di informazioni orarie avvenga utilizzando la notazione europea di 24 ore.

MTOOLS_DATE_STRING=<stringa-di-formato>

Permette di definire il formato di rappresentazione delle date. Il valore predefinito di questa direttiva è la stringa `dd-mm-yyyy'.

69.1.3 Sezioni riferite alle unità a dischi

A parte la configurazione globale di Mtools, è importante definire le varie unità a dischi che si intendono utilizzare, e la relativa configurazione. Si apre una sezione riferita a un'unità particolare nel modo seguente:

drive <lettera>:

Per esempio, `drive a:', apre una sezione riferita alla prima unità a dischi secondo il Dos. Il minimo per questa sezione, sarà la definizione del dispositivo corrispondente a tale unità virtuale, come mostrato nell'esempio seguente:

drive a: file="/dev/fd0"
Alcune direttive

sync

Se viene utilizzata questa direttiva, le operazioni di lettura e scrittura sull'unità avvengono in modo sincrono.

exclusive

Fa in modo che l'accesso all'unità avvenga in modo esclusivo.

file="<file>"

Definisce il file di dispositivo corrispondente all'unità a dischi, oppure il file-immagine corrispondente a un disco ideale. Come si può intuire, questa informazione è indispensabile.

partition=<n-partizione-primaria>

Se il file a cui si fa riferimento con la direttiva `file', è il dispositivo di un disco suddiviso in partizioni (lo stesso discorso vale nel caso di un file-immagine), si può indicare la partizione attraverso un numero in questa direttiva (sono valide solo le partizioni primarie).

Questa direttiva è utile solo quando non si può utilizzare un file di dispositivo che faccia riferimento, da solo, alla partizione desiderata.

offset=<scostamento>

Quando il file a cui si fa riferimento, come dispositivo o come immagine di un'unità a dischi, contiene l'unità desiderata a partire da una certa posizione, diversa dall'inizio, è possibile utilizzare questa direttiva. Ciò potrebbe essere utile per accedere a una partizione estesa attraverso un dispositivo che faccia riferimento all'unità intera, oppure quando si utilizzano dischi con un formato particolare.

Il punto di inizio, lo scostamento, è normalmente zero, per indicare l'inizio del file corrispondente; altrimenti indica il numero di byte da saltare.

69.1.4 Configurazione predefinita

La configurazione standard di Mtools, che si trova nel file `/etc/mtools.conf' standard delle distribuzioni GNU/Linux, è utile a comprendere in che modo vadano utilizzate le direttive più importanti.

Per quanto riguarda l'utilizzo comune di Mtools, cioè quello riferito esclusivamente ai dischetti, tale configurazione standard è già sufficiente.

# floppy
drive a: file="/dev/fd0" exclusive
drive b: file="/dev/fd1" exclusive

# DOSEMU hdimage
drive n: file="/var/lib/dosemu/hdimage.first" partition=1 offset=128

MTOOLS_LOWER_CASE=1

Nell'esempio si mostra anche l'unità `N:', riferita a una partizione contenuta nel file `/var/lib/dosemu/hdimage', a partire dalla posizione 128. Questo file è solitamente l'immagine del disco `C:' per DOSEMU (capitolo 236). *1*

69.1.5 Verifica della configurazione

Attraverso il comando `mtoolstest', usato senza argomenti, è possibile verificare la configurazione. Quello che si ottiene attraverso lo standard output è una sorta di file `mtools.conf' dettagliato di tutta la configurazione attiva, compresi i valori predefiniti.

69.1.6 Accesso ai dispositivi

In base alla configurazione, Mtools utilizza file-immagine o file di dispositivo determinati. Evidentemente, la proprietà e i permessi su questi regolano l'accessibilità agli utenti. È probabile che si desideri concedere, a tutti o a un gruppo di utenti, l'accesso in lettura e scrittura alle unità a dischetti. Per farlo, occorre intervenire sui file di dispositivo `/dev/fd*'.

Nel caso si intenda concedere a chiunque l'accesso indiscriminato a tali unità, è sufficiente attribuire tutti i permessi in lettura e scrittura.

chmod a+rw /dev/fd*

Se si vuole concedere solo a un gruppo di utenti la possibilità di accedere ai dischetti, occorre fare in modo che tali dispositivi appartengano al gruppo `floppy', e che a questo gruppo siano aggregati tali utenti.

chgrp floppy /dev/fd*

chmod g+rw /dev/fd*

gpasswd -a tizio floppy

gpasswd -a caio floppy

gpasswd -a <...> floppy

Se non si dispone di `gpasswd', probabilmente perché non si hanno le password shadow, basta agire manualmente nel file `/etc/group'.

69.2 Comandi

Come accennato, i comandi di Mtools emulano una serie di comandi Dos. Per facilitare le cose all'utente, i comandi Mtools hanno gli stessi nomi di quelli Dos, con l'aggiunta di una lettera «m» iniziale. Da questo l'origine del nome, dove la «m» sta per «MS-Dos».

69.2.1 mattrib

mattrib [+a|-a] [+h|-h] [+r|-r] [+s|-s] <file-dos>...

`mattrib' serve a modificare gli attributi dei file Dos indicati come argomenti. L'esempio seguente, toglie l'attributo di sola lettura a tutti i file contenuti nel dischetto `A:' (si usano gli apici singoli per evitare che la shell interpreti l'asterisco).

mattrib -r 'a:/*'

69.2.2 mbadblock

mbadblock <unità-dos>

`mbadblock' scandisce un'unità Dos alla ricerca di settori difettosi, marcandoli come tali nella FAT. L'esempio seguente verifica il dischetto `A:'.

mbadblock a:

69.2.3 mcd

mcd [<directory-dos>]

`mcd' permette di modificare o conoscere la directory corrente delle unità Dos. L'esempio seguente cambia la directory corrente nel dischetto `A:'.

mcd a:/ciao

69.2.4 mcopy

mcopy [<opzioni>] <origine>... [<destinazione>]

`mcopy' è il comando più importante di tutta la serie degli Mtools. Consente di copiare file da e verso unità Dos, e anche da e verso il filesystem Unix. Questo significa che l'origine e la destinazione possono essere indifferentemente file o directory Dos o Unix, permettendo quindi anche la copia da unità Dos a unità Dos, così come da file Unix a file Unix.

Quando la destinazione viene omessa, si intende fare riferimento implicitamente alla directory corrente nel filesystem Unix.

Una caratteristica importante di `mcopy' sta nella possibilità di convertire automaticamente il testo in modo che i codici di interruzione di riga siano compatibili con il Dos (<CR><LF>), oppure con i sistemi Unix (<LF>).

Alcune opzioni

-t

Considera trattarsi della copia di file di testo, e quando questa è fatta verso un'unità Dos, converte i codici di interruzione di riga in modo che siano compatibili con il Dos, mentre quando la destinazione è il filesystem Unix, converte il file in modo che sia compatibile con lo standard delle terminazioni di riga Unix.

Esempi

mcopy lettera a:

Copia il file `lettera' che si trova nella directory corrente del filesystem Unix, nella directory corrente dell'unità `A:'.

mcopy /tmp/prove/* a:/prove

Copia tutto il contenuto della directory `/tmp/prove/' della directory `\PROVE\' dell'unità `A:'.

mcopy a: /tmp

Copia il contenuto della directory corrente dell'unità `A:' nella directory `/tmp/'.

69.2.5 mdel

mdel <file-dos>...

`mdel' cancella i file Dos indicati come argomento. L'esempio seguente cancella il file `A:\PROVA.DOC'.

mdel a:/prova.doc

69.2.6 mdeltree

mdeltree <directory-dos>...

`mdeltree' cancella le directory Dos indicate come argomento. L'esempio seguente cancella la directory `A:\LETTERE\'.

mdeltree a:/lettere

69.2.7 mdir

mdir [<opzioni>] <percorso-dos>...

`mdir' elenca i file e il contenuto delle directory indicate come argomenti.

Alcune opzioni

-w

Emette un elenco di soli nomi di file e directory, in modo da visualizzarne meglio un gruppo numeroso,

-a

Mostra anche i file nascosti (hidden).

Esempi

mdir a:

Emette l'elenco del contenuto della directory corrente dell'unità `A:'.

mdir 'a:/*.com'

Emette l'elenco dei file `.COM' contenuti nella directory radice dell'unità `A:'. Gli apici servono per evitare che la shell tenti di interpretare in qualche modo l'asterisco.

69.2.8 mmd

mmd <directory-dos>...

`mmd' crea le directory Dos indicate come argomento. L'esempio seguente crea la directory `A:\LETTERE\'.

mmd a:/lettere

69.2.9 mmove

mmove <origine-dos>... <destinazione-dos>

`mmove' sposta o rinomina uno o più file e directory. Se l'origine è composta da più file o directory, la destinazione deve essere una directory. L'esempio seguente sposta tutti i file `A:\*.DOC' nella directory `A:\LETTERE\'.

mmove 'a:/*.doc' a:/lettere

69.2.10 mrd

mrd <directory-dos>...

`mrd' elimina le directory indicate come argomento, purché siano vuote. L'esempio seguente elimina la directory `A:\LETTERE\'.

mrd a:/lettere

69.2.11 mren

mren <origine-dos>... <destinazione-dos>

`mren' rinomina o sposta uno o più file e directory. Se l'origine è composta da più file o directory, la destinazione deve essere una directory. L'esempio seguente rinomina il file `A:\PIPPO.DOC' in `A:\PIPPO.TXT'.

mren a:/pippo.doc a:/pippo.txt

69.2.12 mtype

mtype [<opzioni>] <file-dos>...

`mtype' emette attraverso lo standard output il contenuto dei file indicati come argomento.

Alcune opzioni

-t

Considera trattarsi della lettura di file di testo, e in questo senso, converte i codici di interruzione di riga Dos in modo che siano compatibili con lo standard Unix (da <CR><LF> a <LF>).

Esempi

mtype -t a:/lettere.txt

Visualizza il contenuto del file `A:\LETTERA.TXT' convertendo opportunamente i codici di interruzione di riga.

69.3 Riferimenti

---------------------------

Appunti Linux 2000.04.12 --- Copyright © 1997-2000 Daniele Giacomini --  daniele @ pluto.linux.it


1.) Il valore corretto per lo scostamento da utilizzare quando si vuole accedere alle immagini di DOSEMU, dipende dalla versione di quest'ultimo, dal momento che nel tempo, il formato di questo file è cambiato varie volte.


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]