Nazwa
mtools - narzędzia dostępu do dysków DOS w Uniksie
WSTĘP
Mtools jest zbiorem narzędzi pozwalających systemom uniksowym na operowanie plikami systemu MS-DOS: odczyt, zapis i przemieszczanie plików położonych na systemie plików MS-DOS (zwykle dyskietce). Gdy jest to uzasadnione, każdy z programów usiłuje emulować odpowiednie polecenie MS-DOS. Nie są jednak emulowane zbędne ograniczenia i osobliwości DOS-u. Na przykład, możliwe jest przesuwanie podkatalogów z jednego podkatalogu do innego.
Mtools wystarczają do zapewnienia dostępu do systemów plikowych MS-DOS. Na przykład, polecenia takie jak mdir a: działają na napędzie a: bez uprzedniego montowania (dołączania) czy inicjacji (zakładając, że na maszynie działa domyślny plik ’/etc/mtools.conf’. Przy pomocy mtools można zmieniać dyskietki bez potrzeby ich dołączania i odłączania.
Skąd wziąć mtools
Mtools można znaleźć w następujących miejscach (i ich mirrorach):
http://ftp.gnu.org/gnu/mtools/mtools-4.0.24.tar.gz
http://mtools.linux.lu/mtools-4.0.24.tar.gz
ftp://www.tux.org/pub/knaff/mtools/mtools-4.0.24.tar.gz
ftp://ibiblio.unc.edu/pub/Linux/utils/disk-management/mtools-4.0.24.tar.gz
Przed zgłoszeniem błędu należy sprawdzić, że nie został już poprawiony w łatkach alfa, które można znaleźć na:
http://ftp.gnu.org/gnu/mtools/
http://mtools.linux.lu/
ftp://www.tux.org/pub/knaff/mtools
Łaty mają nazwy mtools-wersja-ddmm.taz, gdzie wersja oznacza wersję podstawową, dd - dzień, a mm - miesiąc. Z powodu braku miejsca zwykle pozostawiam jedynie najnowszą łatę.
Pod adresem "mtools @ tux.org" jest lista dyskusyjna. Proszę przesyłać wszystkie zgłoszenia błędów na tę listę. Można zapisać się na listę wysyłając wiadomość o treści "subscribe mtools @ tux.org" do "majordomo @ tux.org". (Uwaga: proszę usunąć odstępy przed i po znaku "@". Pozostawiłem je dla oszukania spambotów). Zawiadomienia o nowych wersjach mtools, oprócz przesyłania na ogłoszeniowe grupy Linuksa, będą również wysyłane na tę listę. Archiwum listy prowadzone jest na http://lists.gnu.org/pipermail/info-mtools/.
Wspólne cechy wszystkich poleceń mtools
Opcje i
nazwy plików
Nazwy plików MS-DOS składają się z
litery napędu, po której następuje
dwukropek, podkatalog i nazwa pliku. Tylko nazwa pliku jest
obowiązkowa, litera napędu i podkatalog są
opcjonalne. Nazwy plików bez litery napędu
odnoszą się do plików unixowych. Nazwy
podkatalogów mogą używać
zarówno separatora \ jak i \.
Użycie separatora \ lub znaków
uogólniających wymaga otoczenia nazw znakami
cytowania (apostrofami, cudzysłowami) dla ochrony przed
ich interpretacją przez powłokę.
Jednakże znaki uogólniające w nazwach
plików unixowych nie powinny być cytowane,
gdyż chcemy by powłoka je
rozwinęła.
Procedury "wyszukiwania wzorców" wyrażeń regularnych stosują się do reguł uniksowych. Na przykład, * oznacza wszystkie pliki DOSowe (zamiast *.*). Bity określające atrybuty pliku (archiwalny, ukryty, tylko-do-odczytu, systemowy) podczas wyszukiwania wzorca są ignorowane.
Wszystkie opcje używają znaku - (minus) jako pierwszego znaku, nie zaś / (ukośnika), jak mógłbyś się spodziewać w DOSie.
Większość poleceń mtools pozwala na użycie wielu nazw plików jako parametrów, co nie jest zgodne z konwencjami DOSu, ale jest przyjaźniejsze dla użytkownika.
Większość poleceń mtools posiada opcje informujące je, jak obsługiwać kolizje nazw plików. Więcej szczegółów znajdziesz w sekcji Kolizje nazw. Wszystkie polecenia akceptują opcję -V wyświetlającą wersję, a większość również opcję -v przełączającą tryb wyświetlania szczegółów (verbose). Patrz sekcja Polecenia, gdzie umieszczono szczegółowy opis opcji charakterystycznych dla poszczególnych poleceń.
Litery
napędów
Znaczenie liter napędów zależy od
konfiguracji sprzętowej. Przy większości
konfiguracji jednak, napęd A jest pierwszym
napędem dyskietek, napęd B drugim napędem
dyskietek (jeśli jest dostępny), napęd J jest
napędem Jaz (jeśli dostępny), zaś
napęd Z - napędem typu Zip (jeśli
dostępny). W systemach, gdzie nazwa urządzenia
pochodzi od identyfikatora SCSI, napęd Jaz przyjmowany
jest za 4 obiekt SCSI, a Zip za SCSI 5 (domyślne
ustawienia fabryczne). W Linuksie, w przypadku obu tych
napędów, przyjmuje się, że jest to
drugi napęd szyny SCSI (/dev/sdb). Ustawienia
domyślne mogą być zmienione przez zmianę
pliku konfiguracyjnego (patrz opis konfiguracji w
mtools(5)).
Litera dysku : (dwukropek) ma specjalne znaczenia. Jest używana do uzyskania dostępu do plików, które są wprost podane w linii poleceń za pomocą opcji -i.
Przykład:
mcopy -i my-image-file.bin ::file1 ::file2 .
Kopiuje to file1 i file2 z pliku obrazu (my-image-file.bin) do katalogu /tmp.
Można także podać offset w pliku obrazu przez dodanie do nazwy pliku @@offset.
Przykład:
mcopy -i my-image-file.bin@@1M ::file1 ::file2 .
Powyższe zaczyna szukać obrazu w pliku od offsetu 1M zamiast od początku pliku.
Bieżący
katalog roboczy
Polecenie mcd jest używane do ustawienia
urządzenia i bieżącego katalogu
(odnoszącego się do systemu plikowego MS-DOS).
Jeśli nie zostanie użyte to domyślnym
katalogiem jest A:/. Jednak w przeciwieństwie
do MS-DOS-u, istnieje tylko jeden katalog roboczy dla
wszystkich napędów, nie zaś po jednym na
napęd.
Długie
nazwy plików VFAT
Niniejsza wersja mtools obsługuje długie nazwy
plików stosowane w VFAT. Jeśli unixowa nazwa
pliku jest zbyt długa, by zmieścić się w
krótkiej nazwie DOSu, zachowywana jest jako
długa nazwa VFAT i tworzona jest towarzysząca jej
krótka nazwa. Tę krótką nazwę
widzisz sprawdzając dysk DOSem w wersji
wcześniejszej niż 7.0. Poniższe zestawienie
pokazuje kilka przykładów krótkich
nazw:
Długa
nazwa Nazwa MS_DOS Powód zmiany nazwy
----------- ------------ -----------------------
ToJestTest TOJEST~1 zbyt długa nazwa pliku
alain.knaff ALAIN~1.KNA za długie rozszerzenie
prn.txt PRN~1.TXT PRN jest nazwą urządzenia
.abc ABC~1 pusta nazwa pliku
hot+cold HOT_CO~1 niedozwolony znak
Jak widać, w celu uzyskania krótkiej nazwy zastosowano następujące przekształcenia:
* |
Niedozwolone znaki są zastąpione podkreśleniem. Znakami zabronionymi są: ;+=[]’,\"*\<>/?:|. | ||
* |
Usunięte są dodatkowe kropki, które nie mogą być zinterpretowane jako główny separator nazwy/rozszerzenia. | ||
* |
Tworzony jest licznik dla przyrostka ~n, | ||
* |
Nazwa skracana jest tak, by spełnić ograniczenie 8+3. |
Początkowa, uniksowa nazwa pliku (długa lub krótka) zwana jest również nazwą pierwotną lub główną (primary), zaś pochodząca od niej nazwa krótka zwana jest wtórną lub dodatkową (secondary).
Przykład:
mcopy /etc/motd a:Reallylongname
Mtools utworzą wpis w VFAT dla ’DlugaNazwa’ i użyją ’DLUGANAZ’ jako nazwy krótkiej. ’DlugaNazwa’ jest tutaj nazwą główną, zaś ’DLUGANAZ’ nazwą dodatkową.
mcopy /etc/motd a:motd
’motd’ spełnia ograniczenia stawiane nazwom pliku DOS. Mtools nie musi tworzyć z niej innej nazwy. Nazwą pierwotną jest ’motd’, a nie ma nazwy wtórnej.
W skrócie: nazwą główną jest długa nazwa, jeśli taka istnieje, lub krótka nazwa, jeśli nie ma długiej nazwy.
Mimo, iż VFAT jest dużo elastyczniejszy niż FAT, nawet w nim nadal istnieją niedopuszczalne nazwy plików. Pozostały jeszcze niektóre niedozwolone znaki (\"*\<>/?:|), zaś nazwy urządzeń w dalszym ciągu są zarezerwowane.
Nazwa
uniksowa Długa nazwa Powód zmiany
------------- ----------- -------------------------
prn prn-1 PRN jest nazwą urządzenia
ab:c ab_c-1 niedozwolony znak
Jak widać, w przypadku niedozwolonej długiej nazwy, wykonywane są następujące przekształcenia:
* |
Niedozwolone znaki zastępowane są podkreśleniami, |
|||
* |
Tworzony jest licznik dla przyrostka ~n, |
Kolizje
nazw
Podczas zapisu pliku na dysk, jego długa lub
krótka nazwa może kolidować z nazwą
istniejącego pliku lub katalogu. Może się to
zdarzyć dla każdego z poleceń tworzących
nowy katalog lub wpis w katalogu, takiemu jak
mcopy, mmd, mren, mmove.
W przypadku kolizji nazw polecenia mtools pytają o
sposób postępowania. Oferują kilka
możliwości:
overwrite
Nadpisuje istniejący plik. Nie jest możliwe nadpisanie katalogu plikiem.
rename
Zmienia nazwę nowo tworzonego pliku. Mtools pytają o nową nazwę pliku.
autorename
Zmienia nazwę nowo tworzonego pliku. Mtools wybierają same nazwę, bez pytania.
skip |
Pomiń ten plik, zajmij się następnym (jeśli jest). |
By wybrać jedną z powyższych akcji, po zachęcie ze strony polecenia, wpisz jej pierwszą literę. Jeśli użyjesz małej litery, to akcja będzie się odnosić wyłącznie do tego pliku; użycie dużej litery spowoduje zastosowanie danej akcji do wszystkich plików bez dalszych pytań.
Można również wybrać akcje (dla wszystkich plików) w linii poleceń, przy wywołaniu mtools:
-D o |
Domyślnie nadpisuje nazwy pierwotne. |
|||
-D O |
Domyślnie nadpisuje nazwy wtórne. |
|||
-D r |
Domyślnie zmienia nazwę pierwotną. |
|||
-D R |
Domyślnie zmienia nazwę wtórną. |
|||
-D a |
Domyślnie automatycznie zmienia nazwę pierwotną. |
|||
-D A |
Domyślnie automatycznie zmienia nazwę wtórną. |
|||
-D s |
Domyślnie przeskocz nazwę pierwotną. |
|||
-D S |
Domyślnie przeskocz nazwę wtórną. |
|||
-D m |
Pytaj użytkownika, co zrobić z nazwą pierwotną. |
|||
-D M |
Pytaj użytkownika, co zrobić z nazwą wtórną. |
Zauważ, że w linii poleceń przełączniki małe/duże odróżniają polecenia dla nazwy pierwotnej/wtórnej, podczas gdy przy wyborze interakcyjnym małe/duże różnicują zakres: tym-razem/zawsze.
Nazwa pierwotna jest nazwą wyświetlaną w Windows 95 lub Windows NT, tj. nazwą długą, jeśli takowa istnieje, w przeciwnym razie krótką. Nazwa wtórna jest nazwą "ukrytą", tj. nazwą krótką jeśli istnieje długa.
Przy domyślnym sposobie działania mtools użytkownik jest proszony o reakcję w przypadku kolizji nazw pierwotnych, zaś nazwy wtórne zmieniane są automatycznie.
Jeśli kolizja nazw zdarzy się w katalogu Unixa, mtools pytają tylko czy nadpisać plik, czy go pominąć.
Rozróżnianie
dużych i małych liter w systemie VFAT
System plików VFAT potrafi zapamiętać
wielkość znaków (małe/duże
litery) w nazwach plików. W tym samym katalogu nie
mogą jednak istnieć pliki o nazwach
różniących się jedynie
wielkością liter. Jeśli na przykład
zapisano plik o nazwie DlugaNazwaPliku w systemie plikowym
VFAT, mdir pokaże go jako DlugaNazwaPliku, a nie jako
DlugaNazwapliku. Jednak polecenie odmówi dodania
pliku DlugaNazwapliku do tego samego katalogu, gdyż
wielkość liter jest ignorowana przy sprawdzaniu
kolizji.
The VFAT file system allows you to store the case of a filename in the attribute byte, if all letters of the filename are the same case, and if all letters of the extension are the same case too. Mtools uses this information when displaying the files, and also to generate the Unix filename when mcopying to a Unix directory. This may have unexpected results when applied to files written using an pre-7.0 version of DOS: Indeed, the old style filenames map to all upper case. This is different from the behavior of the old version of mtools which used to generate lower case Unix filenames.
Formatowanie
o dużej gęstości
Mtools supports a number of formats which allow storage of
more data on disk than usual. Due to different operating
system abilities, these formats are not supported on all
operating systems. Mtools recognizes these formats
transparently where supported.
W celu sformatowania takich dyskietek powinieneś użyć narzędzia odpowiedniego do systemu operacyjnego. Dla Linuksa, odpowiednie narzędzia obsługi dyskietek można znaleźć w pakiecie fdutils w następujących miejscach:
ftp://www.tux.org/pub/knaff/fdutils/. ftp://ibiblio.unc.edu/pub/Linux/utils/disk-management/fdutils-*
Dalszych szczegółów szukaj w dokumentacji dołączonej do tego pakietu. Należy użyć superformat, by sformatować dyskietkę w dowolnym z formatów oprócz XDF, oraz xdfcopy do formatowania XDF.
Więcej
sektorów
Najstarszą metodą umieszczenia większej
ilości danych na dyskietce jest użycie
większej liczy sektorów i cylindrów.
Mimo, że standardowy format używa 80
cylindrów i 18 sektorów (na 3,5"
dyskietkach dużej gęstości), to możliwe
jest użycie do 83 cylindrów (na
większości napędów) i do 21
sektorów. Metoda ta pozwala na zapisanie do 1743K na
dyskietce 3,5"HD. Dyskietki o 21 sektorach są
jednak dwukrotnie wolniejsze od standardowych dyskietek o 18
sektorach, gdyż sektory są upakowane tak blisko
siebie, że zachodzi potrzeba ich przeplotu. Problem ten
nie istnieje przy formatach o 20 sektorach.
Formaty te są obsługiwane przez liczne shareware’owe DOSowe programy narzędziowe takie jak fdformat i vgacopy. W swej nieskończonej arogancji Bill Gate$ wierzył, że to on to wynalazł i nazwał je "dyskami DMF" lub "Windows formatted disks". W rzeczywistości, rozwiązanie to istniało już od lat! Mtools obsługują te formaty w Linuksie, SunOS oraz DELL Unix PC.
Większe
sektory
Użycie większych sektorów umożliwia
przekroczenie pojemności możliwej do uzyskania
przy standardowych sektorach 512-bajtowych. Powodem jest
nagłówek sektora. Nagłówek sektora
ma taki sam rozmiar, niezależnie od liczby
bajtów danych w sektorze. Możemy zatem
zaoszczędzić nieco miejsca używając
mniejszej liczby większych sektorów. Na
przykład, 1 sektor 4-kilobajtowy zabiera tylko jedno
miejsce na nagłówek, podczas gdy 8
sektorów po 512 bajtów ma 8
nagłówków, przy tej samej ilości
danych użytkowych.
This method permits storage of up to 1992K on a 3 1/2 HD disk.
Mtools obsługują te formaty tylko w Linuksie.
2m
The 2m format was originally invented by Ciriaco Garcia de
Celis. It also uses bigger sectors than usual in order to
fit more data on the disk. However, it uses the standard
format (18 sectors of 512 bytes each) on the first cylinder,
in order to make these disks easier to handle by DOS. Indeed
this method allows you to have a standard sized boot sector,
which contains a description of how the rest of the disk
should be read.
Wadą tego rozwiązania jest to, że pierwszy cylinder może pomieścić mniej danych niż pozostałe. Niestety, DOS potrafi obsługiwać wyłącznie dyskietki o tej samej ilości danych na każdej ścieżce. A zatem 2m ukrywa fakt, iż pierwsza ścieżka zawiera mniej danych przez użycie shadow FAT. (Zwykle DOS przechowuje FAT w dwu identycznych kopiach, dla dodatkowego bezpieczeństwa. XDF przechowuje tylko jedną kopię, ale mówi DOS-owi, że przechowuje dwie. W ten sposób oszczędzane jest miejsce, jakie byłoby zajęte przez drugą kopię FAT). Oznacza to również, że nie powinno się nigdy używać dyskietek 2m do zapisywania czegokolwiek innego niż system plików DOS.
Mtools obsługują te formaty tylko w Linuksie.
XDF
XDF jest formatem dużej gęstości
używanym przez OS/2. Umożliwia przechowywanie na
dyskietce do 1840K. Jest to mniej niż najlepsze formaty
2m, ale jego główną zaletą jest
szybkość: 600 milisekund na
ścieżkę. Jest to szybciej niż dla
formatu 21-sektorowego i prawie tak szybko jak dla
standardowego formatu o 18 sektorach. Chcąc
zapewnić dostęp do tych dyskietek, należy
sprawdzić, że mtools zostały skompilowane z
obsługą XDF i ustawić zmienną
use_xdf dla napędu w pliku konfiguracyjnym.
Szczegóły można znaleźć w
rozdziałach Kompilowanie mtools i
Różne zmienne. Szybki dostęp XDF
osiągalny jest przy jądrze Linuksa nowszym
niż 1.1.34.
Mtools obsługuje ten format tylko w Linuksie.
Ostrzeżenie / Uwaga dystrybutorzy: mtools skompilowane pod jądrem Linuksa nowszym niż 1.3.34 nie będzie działać przy starszym jądrze. Skompilowane jednak na starszym jądrze działa nadal na nowszym, z wyjątkiem tego, że dostęp XDF jest wolniejszy. Zaleca się, by autorzy dystrybucji dołączali binaria mtools skompilowane wyłącznie pod jądrze starszym niż 1.3.34, aż do ukazania się 2.0. Po ukazaniu się 2.0 mogą (i powinny) być rozpowszechniane binaria mtools kompilowane pod nowszymi jądrami. Binaria mtools kompilowane pod jądrami starszymi niż 1.3.24 nie będą działać przy żadnym z jąder 2.1 lub późniejszym.
Kody
zakończenia
Wszystkie polecenia mtools zwracają 0 w przypadku
powodzenia, 1 przy kompletnym niepowodzeniu lub 2 przy
częściowym. Wszystkie polecenia mtools przed
pracą dokonują pewnych sprawdzeń
poprawności, by upewnić się, że dysk
jest rzeczywiście dyskiem MS-DOS (a nie, powiedzmy,
dyskiem systemu ext2 czy MINIX). Kontrole te mogą
odrzucić dyski częściowo uszkodzone,
które mimo to mogą być czytelne. Można
uniknąć tych kontroli przez ustawienie zmiennej
środowiska MTOOLS_SKIP_CHECK lub odpowiedniej zmiennej
pliku konfiguracyjnego (patrz rozdział Zmienne
globalne w mtools(5)).
BŁĘDY
Niefortunnym efektem ubocznym odgadywania poprawnego
urządzenia (przy obsługiwaniu wielu
pojemności dyskietek) jest sporadyczny komunikat o
błędzie ze sterownika urządzenia. Może
być on spokojnie zignorowany.
Kod sprawdzający formatowanie zatyka się na dyskietkach 1.72M formatowanych przy użyciu mformat z mtools wersji wcześniejszych niż 2.0.7. Należy ustawić zmienną środowiska MTOOLS_FAT_COMPATIBILITY (lub odpowiednią zmienną pliku konfiguracyjnego, patrz Zmienne globalne w mtools(5)), by pominąć sprawdzanie fat.
ZOBACZ TAKŻE
floppyd_installtest mattrib mbadblocks mcd mclasserase mcopy mdel mdeltree mdir mdu mformat minfo mkmanifest mlabel mmd mmount mmove mrd mren mshortname mshowfat mtoolstest mtype
TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Robert Luberda <robert [AT] debian.org>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres <manpages-pl-list [AT] lists.net>.