[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 86.   Mtools

Mtools (1) è una raccolta di comandi utili per eseguire facilmente operazioni all'interno di file system 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.

86.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:

86.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, 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.

86.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 file system 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 dispone di 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.

86.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à sia 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.

86.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 343).(2)

86.1.5   Verifica della configurazione

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

86.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 di lettura e di 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.

86.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».

86.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:/*'

86.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:

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

86.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, oltre che da e verso il file system 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 file system 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 file system 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 file system 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/.

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

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

86.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 che terminano con l'estensione .COM, contenuti nella directory radice dell'unità A:. Gli apici servono per evitare che la shell tenti di interpretare in qualche modo l'asterisco.

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

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

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

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

86.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, pertanto 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.

86.3   Riferimenti

Appunti di informatica libera 2003.01.01 --- Copyright © 2000-2003 Daniele Giacomini -- daniele @ swlibero.org

1) Mtools   GNU GPL

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


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome mtools.html

[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]