mtools(1)

Nume
mtools - instrumente pentru accesarea discurilor DOS în Unix.

Introducere
Mtools este o colecție de instrumente care permit sistemelor Unix să manipuleze fișiere MS-DOS: citirea, scrierea și deplasarea fișierelor pe un sistem de fișiere MS-DOS (de obicei o dischetă). Atunci când este rezonabil, fiecare program încearcă să emuleze comanda echivalentă MS-DOS. Cu toate acestea, restricțiile și ciudățeniile inutile ale DOS nu sunt emulate. De exemplu, este posibilă mutarea subdirectoarelor dintr-un subdirectoriu în altul.

Mtools este suficient pentru a oferi acces la sistemele de fișiere MS-DOS. De exemplu, comenzi precum mdir a: funcționează pe discheta a: fără nici o montare sau inițializare preliminară (presupunând că `/etc/mtools.conf' implicit funcționează pe mașina dumneavoastră). Cu mtools, se pot schimba și dischetele fără a le demonta și monta.

De unde se poate obține mtools

mtools poate fi găsit în următoarele locuri (și în oglinzile acestora):

http://ftp.gnu.org/gnu/mtools/mtools-4.0.32.tar.gz

Aceste corecții se numesc mtools-version-ddmm.taz, unde versiunea reprezintă versiunea de bază, dd reprezintă ziua și mm reprezintă luna. Din cauza lipsei de spațiu, de obicei las doar cea mai recentă modificare.

Există o listă de discuții mtools la info-mtools @ gnu.org . Trimiteți toate rapoartele de erori la această listă. Vă puteți abona la listă la https://lists.gnu.org/mailman/listinfo/info-mtools. (N.B. Eliminați spațiile din jurul lui „@”. Le-am lăsat acolo pentru a păcăli roboții de publicitate nedorită și agresivă „spambots”). Anunțurile despre noile versiuni mtools vor fi trimise, de asemenea, la această listă, în plus față de grupurile de știri „Linux announce”. Lista de discuții este arhivată la http://lists.gnu.org/pipermail/info-mtools/

Caracteristici comune tuturor comenzilor mtools

  Opțiuni și nume de fișiere
Numele fișierelor MS-DOS sunt compuse dintr-o literă de unitate urmată de două puncte, un subdirector și un nume de fișier. Numai partea cu numele de fișier este obligatorie, litera de unitate și subdirectorul sunt opționale. Numele de fișier fără litera de unitate se referă la fișiere Unix. Numele subdirectoarelor pot folosi fie separatorul '/', fie '\'. Utilizarea separatorului '\' sau a caracterelor joker necesită ca numele să fie închise între ghilimele pentru a le proteja de shell. Cu toate acestea, caracterele joker din numele de fișiere Unix nu trebuie să fie incluse între ghilimele, deoarece aici se vrea ca shell-ul să le extindă.

Rutinele de „potrivire a modelelor” ale expresiilor regulate respectă regulile de tip Unix. De exemplu, `*' se potrivește cu toate fișierele MS-DOS în loc de `*.*'. Biții de arhivă, ascuns, numai-pentru-citire și de atribut de sistem sunt ignorați în timpul potrivirii modelelor.

Toate opțiunile folosesc - (minus) ca prim caracter, nu /, așa cum v-ați aștepta în MS-DOS.

Majoritatea comenzilor mtools permit mai mulți parametri de nume de fișier, ceea ce nu respectă convențiile MS-DOS, dar este mai ușor de utilizat.

Cele mai multe comenzi mtools permit opțiuni care le indică modul în care trebuie să gestioneze conflictele de nume de fișiere. Pentru mai multe detalii despre acestea, consultați secțiunea Conflicte de nume. Toate comenzile acceptă opțiunea -V, care afișează versiunea, iar majoritatea acceptă opțiunea -v, care activează modul descriptiv. În modul descriptiv, aceste comenzi afișează numele fișierelor MS-DOS asupra cărora acționează, cu excepția cazului în care se specifică altfel. A se vedea secțiunea Comenzi, pentru o descriere a opțiunilor specifice fiecărei comenzi.

  Literele de unitate

Semnificația literelor de unitate depinde de arhitecturile țintă. Cu toate acestea, pe majoritatea arhitecturilor țintă, unitatea A este prima unitate de dischetă, unitatea B este a doua unitate de dischetă (dacă este disponibilă), unitatea J este o unitate Jaz (dacă este disponibilă), iar unitatea Z este o unitate Zip (dacă este disponibilă). Pe acele sisteme în care numele dispozitivului este derivat din ID-ul SCSI, se presupune că unitatea Jaz se află la ținta SCSI 4, iar unitatea Zip la ținta SCSI 5 ( configurările implicite din fabrică). Pe Linux, se presupune că ambele unități sunt a doua unitate de pe magistrala SCSI (/dev/sdb). Configurările implicite pot fi modificate cu ajutorul unui fișier de configurare (consultați secțiunea Configurație).

Litera de unitate : (două puncte) are o semnificație specială. Se utilizează pentru a accesa fișierele imagine care sunt specificate direct în linia de comandă folosind opțiunile -i.

Exemplu:

 mcopy -i fișierul-meu-de_imagine.bin ::fișier1 ::fișier2 .

Aceasta copiază fișier1 și fișier2 din fișierul imagine (fișierul-meu-de_imagine.bin) în directorul /tmp.

De asemenea, puteți furniza o poziție în cadrul fișierului de imagine incluzând @@poziția în numele fișierului.

Exemplu:

 mcopy -i fișierul-meu-de_imagine.bin@@1M ::fișier1 ::fișier2 .

Acest lucru caută imaginea la poziția 1M în fișier, mai degrabă decât la începutul acestuia.

  Directorul de lucru curent

Comanda mcd (`mcd') este utilizată pentru a stabili dispozitivul și directorul de lucru curent (în raport cu sistemul de fișiere MS-DOS), în caz contrar se presupune că valoarea implicită este A:/. Cu toate acestea, spre deosebire de MS-DOS, există un singur director de lucru pentru toate unitățile, și nu unul pentru fiecare unitate.

  Nume de fișiere lungi în stilul VFAT

Această versiune de mtools acceptă nume de fișiere lungi de tip VFAT. Dacă un nume de fișier Unix este prea lung pentru a încăpea într-un nume DOS scurt, acesta este stocat ca un nume lung VFAT și se generează un nume scurt însoțitor. Acest nume scurt nume este cel pe care îl vedeți atunci când examinați discul cu o versiune pre-7.0 de DOS. Tabelul următor prezintă câteva exemple de nume scurte:

Nume lung       Nume MS-DOS     Motivul modificării ---------       -----------     ------------------------ thisisatest     THISIS~1        nume de fișier prea lung alain.knaff     ALAIN~1.KNA     extensie prea lungă prn.txt         PRN~1.TXT       PRN este un nume de dispozitiv .abc            ABC~1           nume de fișier null hot+cold        HOT_CO~1        caracter ilegal

 După cum vedeți, următoarele transformări se realizează pentru a obține un nume scurt:

*   Caracterele ilegale sunt înlocuite cu caractere de subliniere. Caracterele ilegale sunt ;+=[]',\ "*\\\<>/?:|.

*   Punctele suplimentare, care nu pot fi interpretate ca un separator nume principal/extensiune, sunt eliminate

*   Se generează un număr ~n,

*   Numele este scurtat pentru a se încadra în limitarea 8+3

 Numele inițial al fișierului în stil Unix (indiferent dacă este lung sau scurt) se mai numește și numele principal, iar numele scurt derivat se numește și numele secundar.

 Exemplu:

 mcopy /etc/motd a:Reallylongname

mtools creează o intrare VFAT pentru Reallylongname și folosește REALLYLO ca nume scurt. Reallylongname este numele principal, iar REALLYLO este numele secundar.

 mcopy /etc/motd a:motd

motd se încadrează în limitele de nume de fișier DOS. Mtools nu are nevoie să obțină un alt nume. motd este numele principal și nu există un nume secundar.

 Pe scurt: Numele principal este numele lung, dacă există unul, sau numele scurt, dacă nu există un nume lung.

 Deși VFAT este mult mai flexibil decât FAT, există totuși nume care nu sunt acceptate, chiar și în VFAT. Mai există încă unele caractere ilegale (\ "*\\<>/?:|), iar numele dispozitivelor sunt încă rezervate.

Nume Unix       Nume lung       Motivul modificării ---------       ----------      ------------------------ prn             prn-1           PRN este un nume de dispozitiv ab:c            ab_c-1          caracter ilegal

 După cum vedeți, următoarele transformări au loc dacă un nume lung este ilegal:

*   Caracterele ilegale sunt înlocuite cu caractere de subliniere,

*   Se generează un număr -n,

  Conflicte de nume

La scrierea unui fișier pe disc, numele lung sau scurt al acestuia poate intra în conflict cu un fișier sau un director deja existent. Acest lucru se poate întâmpla pentru toate comenzile care creează noi intrări în directoare, cum ar fi mcopy, mmd, mren, mmove. Atunci când apare un conflict de nume, mtools vă întreabă ce ar trebui să facă. Acesta oferă mai multe opțiuni:

overwrite
    Suprascrie fișierul existent. Nu este posibil să se suprascrie un director cu un fișier.

rename
    Redenumește fișierul nou creat. Mtools solicită noul nume de fișier

autorename
    Redenumește fișierul nou creat. Mtools alege singur un nume, fără a solicita un răspuns

skip
    Renunță la acest fișier și trece la următorul (dacă există)

Pentru a alege una dintre aceste acțiuni, introduceți prima literă a acesteia la prompt. Dacă folosiți o literă minusculă, acțiunea se aplică numai pentru acest fișier, dacă folosiți o literă majusculă, acțiunea se aplică tuturor fișierelor și nu vi se va mai solicita din nou.

De asemenea, puteți alege acțiuni (pentru toate fișierele) în linia de comandă, atunci când apelați mtools:

-D o
    Suprascrie în mod implicit numele principale.

-D O
    Suprascrie în mod implicit numele secundare.

-D r
    Redenumește numele primar în mod implicit.

-D R
    Redenumește numele secundar în mod implicit.

-D a
    Auto-redenumește numele principal în mod implicit.

-D A
    Auto-redenumește numele secundar în mod implicit.

-D s
    Omite numele principal în mod implicit.

-D S
    Omite numele secundar în mod implicit.

-D m
    Întreabă utilizatorul ce să facă cu numele principal.

-D M
    Întreabă utilizatorul ce să facă cu numele secundar.

Rețineți că, pentru opțiunile din linia de comandă, minusculele/majusculele diferențiază între numele „principal”/„secundar”, în timp ce pentru opțiunile interactive, minusculele/majusculele diferențiază între „doar de data aceasta”/„întotdeauna”.

Numele principal este numele afișat în Windows 95 sau Windows NT: adică numele lung, dacă există, și numele scurt, dacă nu există. Numele secundar este numele „ascuns”, adică numele scurt dacă există un nume lung.

În mod implicit, utilizatorul este întrebat dacă numele principal este conflictual, iar numele secundar se numește automat.

În cazul în care apare un conflict de nume într-un director Unix, mtools întreabă doar dacă trebuie să suprascrieți fișierul sau să îl omiteți.

  Diferențierea între majuscule și minuscule a sistemului de fișiere VFAT

Sistemul de fișiere VFAT este capabil să memoreze majusculele și minusculele din numele fișierelor. Cu toate acestea, nu este permisă coexistența în același director a numelor de fișiere care diferă doar prin majuscule și minuscule. De exemplu, dacă stocați un fișier numit NumeFișierLung pe un sistem de fișiere VFAT, «mdir» afișează acest fișier ca NumeFișierLung, și nu ca Numefișierlung. Cu toate acestea, dacă încercați apoi să adăugați NumeFișierlung în același director, acesta este refuzat, deoarece este ignorată distincția dintre majuscule și minuscule pentru verificările de conflict.

Sistemul de fișiere VFAT vă permite să stocați tipul de litere minuscule/majuscule al unui nume de fișier în octetul de atribut, dacă toate literele numelui de fișier sunt de același tip minuscule/majuscule și dacă toate literele extensiei sunt de asemenea de același tip. Mtools utilizează aceste informații la afișarea fișierelor și, de asemenea, pentru a genera numele de fișier Unix atunci când se face utilizează «mcopying» într-un director Unix. Acest lucru poate avea rezultate neașteptate atunci când este aplicat fișierelor scrise folosind o versiune de DOS anterioară la versiunea 7.0: într-adevăr, numele de fișiere în stil vechi se raportează la toate literele în majusculele. Acest lucru este diferit de comportamentul vechii versiuni a mtools care obișnuia să genereze nume de fișiere Unix cu litere minuscule.

  formate de mare capacitate

Mtools acceptă o serie de formate care permit stocarea pe disc a mai multor date decât în mod obișnuit. Din cauza diferitelor capacități ale sistemelor de operare, aceste formate nu sunt acceptate pe toate sistemele de operare. Mtools recunoaște aceste formate în mod transparent acolo unde sunt acceptate.

Pentru a formata aceste discuri, trebuie să utilizați un instrument specific sistemului de operare. Pentru Linux, instrumentele adecvate pentru dischete se găsesc în pachetul fdutils în următoarele locații~:

http://www.fdutils.linux.lu/.

Pentru mai multe detalii, consultați paginile de manual incluse în pachetul respectiv. Utilizați superformat pentru a formata toate formatele, cu excepția XDF, și utilizați xdfcopy pentru a formata XDF.

  Mai multe sectoare

Cea mai veche metodă de a pune mai multe date pe un disc este de a folosi mai multe sectoare și mai mulți cilindri. Deși formatul standard utilizează 80 de cilindri și 18 sectoare (pe un disc de 3 1/2 de înaltă densitate), este posibil să se utilizeze până la 83 de cilindri (pe majoritatea unităților) și până la 21 de sectoare. Această metodă permite stocarea a până la 1743K pe un disc de 3 1/2 HD. Cu toate acestea, discurile cu 21 de sectoare sunt de două ori mai lente decât discurile standard cu 18 sectoare, deoarece sectoarele sunt atât de apropiate încât trebuie să le intercalăm. Această problemă nu există în cazul formatelor cu 20 de sectoare.

Aceste formate sunt acceptate de numeroase utilități shareware DOS, cum ar fi fdformat și vgacopy. În nesfârșita sa aroganță, Bill Gate$ a crezut că el a inventat acest lucru și l-a numit `DMF disks', sau `Windows formatted disks'. Dar, în realitate, acesta exista deja cu ani înainte! Mtools suportă aceste formate pe Linux, pe SunOS și pe DELL Unix PC.

  Sectoare mai mari
Prin utilizarea unor sectoare mai mari, este posibil să se depășească capacitatea care poate fi obținută cu ajutorul sectoarelor standard de 512 octeți. Acest lucru se datorează antetului de sector. Antetul sectorului are aceeași dimensiune, indiferent de numărul de octeți de date din sector. Astfel, economisim ceva spațiu prin utilizarea unor mai puține sectoare, dar mai mari. De exemplu, 1 sector de 4K ocupă spațiu de antet doar o singură dată, în timp ce 8 sectoare de 512 octeți au tot 8 anteturi, pentru aceeași cantitate de date utile.

Această metodă permite stocarea a până la 1992K pe un disc de 3 1/2 HD.

Mtools acceptă aceste formate numai pe Linux.

  2m

Formatul 2m a fost inventat inițial de Ciriaco Garcia de Celis. De asemenea, acesta utilizează sectoare mai mari decât de obicei pentru a încadra mai multe date pe disc. Cu toate acestea, utilizează formatul standard (18 sectoare de 512 octeți fiecare) pe primul cilindru, pentru a face aceste discuri mai ușor de gestionat de către DOS. Într-adevăr, această metodă vă permite să aveți un sector de pornire de dimensiuni standard, care conține o descriere a modului în care trebuie citit restul discului.

Cu toate acestea, dezavantajul este că primul cilindru poate conține mai puține date decât celelalte. Din nefericire, DOS poate gestiona numai discuri în care fiecare pistă conține aceeași cantitate de date. Astfel, 2m ascunde faptul că prima pistă conține mai puține date prin utilizarea unui shadow FAT. (De obicei, DOS stochează FAT în două copii identice, pentru o siguranță suplimentară. XDF stochează o singură copie, dar îi spune lui DOS că stochează două. Astfel, se economisește spațiul care ar fi fost ocupat de a doua copie FAT). Acest lucru înseamnă, de asemenea, că nu ar trebui să folosiți niciodată un disc de 2m pentru a stoca altceva decât un sistem de fișiere DOS.

Mtools acceptă aceste formate numai pe Linux.

  XDF

XDF este un format de mare capacitate utilizat de OS/2. Acesta poate conține 1840 K pe disc. Acest lucru este mai mic decât cele mai bune formate de 2m, dar principalul său avantaj este că este rapid: 600 de milisecunde pe piesă. Acest lucru este mai rapid decât formatul cu 21 de sectoare și aproape la fel de rapid ca formatul standard cu 18 sectoare. Pentru a accesa aceste discuri, asigurați-vă că mtools a fost compilat cu suport XDF și definiți variabila use_xdf pentru unitatea de dischetă în fișierul de configurare. Consultați secțiunea Compilarea mtools, și `miscellaneous variables', pentru detalii despre cum să faceți acest lucru. Accesul rapid la XDF este disponibil numai pentru nucleele Linux care sunt mai recente decât 1.1.34.

Mtools acceptă acest format numai pe Linux.

Atenție / În atenția distribuitorilor: Dacă mtools este compilat pe un nucleu Linux mai recent decât 1.3.34, nu va funcționa pe un nucleu mai vechi. Cu toate acestea, dacă a fost compilat pe un nucleu mai vechi, funcționează în continuare pe un nucleu mai nou, cu excepția faptului că accesul la XDF este mai lent. Se recomandă ca autorii de distribuții să includă numai binari mtools compilați pe nuclee mai vechi de 1.3.34 până la apariția versiunii 2.0. Când va ieși 2.0, binarele mtools compilate pe nuclee mai noi pot (și ar trebui) să fie distribuite. Binarele mtools compilate pe nuclee mai vechi de 1.3.34 nu vor funcționa pe niciun nucleu 2.1 sau mai recent.

  Coduri de ieșire
Toate comenzile Mtools returnează 0 în caz de succes, 1 în caz de eșec total sau 2 în caz de eșec parțial. Toate comenzile Mtools efectuează câteva verificări înainte de a continua, pentru a se asigura că discul este într-adevăr un disc MS-DOS (spre deosebire de, să zicem, un disc ext2 sau MINIX). Aceste verificări pot respinge discurile parțial corupte, care altfel ar putea fi încă citibile. Pentru a evita aceste verificări, definiți variabila de mediu MTOOLS_SKIP_CHECK sau variabila corespunzătoare din fișierul de configurare (a se vedea secțiunea variabile globale).

  ERORI
Un efect secundar nefericit al faptului că nu se ghicește dispozitivul adecvat (atunci când sunt acceptate mai multe capacități de disc) este un mesaj de eroare ocazional de la controlorul de dispozitiv. Acestea pot fi ignorate în siguranță.

Codul de verificare FAT se blochează pe discurile de 1,72 Mb formatate cu mtools pre-2.0.7. Definiți variabila de mediu MTOOLS_FAT_COMPATIBILITY (sau variabila corespunzătoare din fișierul de configurare, `global variables')) pentru a ocoli verificarea FAT.

Consultați și
floppyd_installtest mattrib mbadblocks mcd mclasserase mcopy mdel mdeltree mdir mdu mformat minfo mkmanifest mlabel mmd mmount mmove mrd mren mshortname mshowfat mtoolstest mtype

TRADUCERE
Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.