mtools(5) MTOOLS mtools(5)

mtools.conf - pliki konfiguracyjne mtools

Niniejsza strona podręcznika opisuje pliki konfiguracyjne pakietu mtools. Pliki konfiguracyjne noszą nazwy `/etc/mtools.conf' oraz `~/.mtoolsrc'. Jeśli ustawiono zmienną środowiska MTOOLSRC, to jej wartość jest używana jako nazwa trzeciego pliku konfiguracyjnego. Pliki konfiguracyjne opisują następujące pozycje:

* Ogólne flagi i zmienne konfiguracji
* Flagi i zmienne dla napędu

Położenie plików konfiguracyjnych

Ogólnym, systemowym plikiem konfiguracyjnym jest `/etc/mtools.conf', a `~/.mtoolsrc' jest prywatnym plikiem konfiguracyjnym użytkownika.

W niektórych systemach plikiem konfiguracyjnym o zasięgu ogólnosystemowym jest jednak `/etc/default/mtools.conf'.

Pliki konfiguracyjne złożone są z sekcji. Każda sekcja rozpoczyna się identyfikującym ją słowem kluczowym zakończonym dwukropkiem. Po identyfikacji sekcji następują przypisania zmiennych i flag. Przypisania zmiennych mają poniższą postać:

nazwa=wartość

Flagi są pojedynczymi słowami kluczowymi bez znaku równości i przypisanej wartości. Sekcja kończy się z końcem pliku lub z rozpoczęciem kolejnej sekcji.

Linie rozpoczynające się od znaku krzyżyka (#) są komentarzami. Znaki nowej linii są równoważne białym znakom (z wyjątkiem kończących komentarz). Wielkość liter w pliku konfiguracyjnym nie ma znaczenia, z wyjątkiem pozycji ujętych w znaki cytowania (jak na przykład nazwy plików).

Dla większości platform mtools mają wbudowane rozsądne parametry domyślne dla napędów dyskietek. Zwykle zatem nie ma potrzeby zajmowania się plikiem konfiguracyjnym, jeśli chcemy jedynie wykorzystywać mtools do uzyskania dostępu do dyskietek. Z drugiej strony jednak plik konfiguracyjny jest niezbędny przy użyciu mtools również do partycji dysku twardego i plików obrazu DOSEMU.

Przełączniki (flagi) globalne mogą być ustawione na 1 lub 0.

Rozpoznawane są następujące flagi globalne:

Ustawienie na 1 powoduje, że mtools pomijają większość testów kontrolnych. Potrzebne przy odczycie niektórych dyskietek Atari, zrobionych z użyciem wcześniejszych wersji ROM, które w inny sposób nie byłyby rozpoznawane.
Przy ustawieniu na 1, mtools pomijają sprawdzenie rozmiaru FAT. Niektóre dyski mają FAT większy niż faktycznie tego potrzebują. Są one odrzucane, jeśli niniejsza opcja nie jest ustawiona.
Ustawienie na 1 powoduje, że mtools wyświetlają małymi literami krótkie nazwy plików, w których wszystkie litery są duże. Stworzone dla uzyskania zgodności z poprzednimi wersjami mtools, które nie rozpoznawały bitu dużych/małych liter (patrz mtools(1), sekcja Rozróżnianie dużych i małych liter w systemie VFAT).
Przy ustawieniu na 1 mtools nie będą tworzyć wpisów VFAT dla nazw plików o mieszanych, dużych/małych literach, które poza tym są poprawnymi nazwami plików DOS-u. Przydatne przy pracy z wersjami DOS-u nieobsługującymi długich nazw VFAT, jak np. FreeDOS.
Przy szerokim listowaniu katalogu, pokazuje nazwy plików z kropką zamiast odstępów oddzielających nazwę od rozszerzenia.
Domyślnie ustawione na jeden, decyduje o tworzeniu numerycznych przyrostków we wszystkich długich nazwach plików (~1). Ustawienie na zero oznacza, że przyrostki numeryczne nie będą tworzone, chyba że spowodowałoby to kolizję nazw.
Przy ustawieniu na jeden używany jest europejski sposób zapisu czasu (zegar 24-godzinny). W przeciwnym przypadku wykorzystywana jest notacja anglosaska (am/pm).
Jak długo, w sekundach, ma występować oczekiwanie na zwolnienie zablokowanego urządzenia. Domyślnie: 30.

Przykład: Wstawienie poniższej linii do pliku konfiguracyjnego nakazuje mtools pominięcie testów poprawności:

  MTOOLS_SKIP_CHECK=1

Zmienne globalne mogą być także ustawiane za pomocą środowiska:

  export MTOOLS_SKIP_CHECK=1

Globalne zmienne znakowe mogą mieć przypisaną dowolną wartość:

Format używany do wyświetlania dat plików. Domyślnie jest to dd-mm-yyyy.

W sekcji napędu mogą być użyte przełączniki i wartości odnoszące się do tego napędu. Sekcja opisująca napęd rozpoczyna się od napisu: drive litera_napędu:

Następnie występują pary zmienna-wartość oraz flagi.

A oto przykładowy opis napędu:

  drive a:     file="/dev/fd0" use_xdf=1

Dla każdego napędu należy podać miejsce, w którym dane są fizycznie umieszczone (plik obrazu, urządzenie, partycja, offset).

Nazwa pliku lub urządzenia przechowującego obraz dysku/dyskietki. Zmienna obowiązkowa. Nazwa pliku powinna być ujęta w cudzysłowy.
Nakazuje mtools traktowanie napędu jak urządzenia spartycjonowanego i wymusza użycie zadanej partycji. Przy zastosowaniu tej metody dostępne są wyłącznie partycje główne (primary), numerowane od 1 do 4. Dla partycji logicznych należy posłużyć się ogólniejszą zmienną offset. Zmienna partition przeznaczona jest do obsługi nośników wyjmowalnych, takich jak napędy Syquest, ZIP czy dyski magnetooptyczne. Mimo że tradycyjny DOS postrzega dyski Syquest i dyski magnetooptyczne jako `ogromne dyskietki', które nie są partycjonowane, to OS/2 oraz Windows NT traktują je jak dyski twarde, tj. urządzenia partycjonowane. Flaga partition przydaje się dla obrazów dysków twardych DOSEMU. Nie jest zalecana dla dysków twardych, do których możliwy jest bezpośredni dostęp do partycji poprzez montowanie (mount).
Opisuje, gdzie w pliku rozpoczyna się system plików MS-DOS. Przydatna w obsłudze partycji logicznych wewnątrz obrazów dysków twardych (hdimages) DOSEMU oraz ram-dysków Atari. Domyślnie ustawiona na zero, co oznacza, że system plików zaczyna się na samym początku urządzenia lub pliku.

Informacja o geometrii opisuje fizyczną charakterystykę dysku. Ma ona trojakie zastosowanie:

Informacja o geometrii zapisywana jest w sektorze startowym (boot-sector) nowo utworzonego dysku. Można jednak opisać geometrię dysku z linii poleceń (patrz polecenie mformat).
W niektórych Uniksach węzły urządzeń (device nodes) obsługują wyłącznie jedną geometrię fizyczną. Na przykład, można potrzebować innego węzła dla dostępu do dyskietki dużej gęstości niż do dyskietki o małej gęstości. Aby zapewnić możliwość poprawnego odczytu dysku przez węzeł, geometria porównywana jest z faktyczną geometrią zapisaną w sektorze startowym. Jeżeli nie pasują, to odpowiedni zapis charakteryzujący napęd zawodzi i testowany jest kolejny wpis z tą samą literą napędu. Sekcja "Wielokrotne opisy" wyjaśnia bliżej posługiwanie się wieloma opisami dla jednej litery napędu.
Gdy w pliku konfiguracyjnym nie podano żadnej informacji o geometrii, to akceptowane są wszystkie dyski. W Linuksie (i również w systemie SPARC) istnieją węzły urządzeń o konfigurowalnej geometrii (`/dev/fd0', `/dev/fd1' itd.), zatem filtrowanie napędów dyskowych jest zbędne (i ignorowane). (Mtools wykonują jednak filtrowanie plików zwykłych (obrazów dysków) w Linuksie: przeznaczono to głównie do testowania, gdyż nie mam dostępu do Uniksa, który faktycznie potrzebowałby filtrowania).
Jeśli nie potrzebujesz filtrowania, a chcesz używać domyślnej geometrii przy formatowaniu (z użyciem mformat), możesz wyłączyć filtrowaniu flagą mformat_only.
Jeśli chcesz filtrowania - powinieneś użyć flagi filter. Podając geometrię musisz podać również jedną z tych dwu flag.
W urządzeniach obsługujących tę możliwość (zwykle napędy dyskietek), informacja o geometrii używana jest też do ustawienia geometrii początkowej. Geometria początkowa stosowana jest przy odczycie sektora startowego, zawierającego rzeczywistą geometrię. Początkowe konfigurowanie nie jest wykonywane, gdy w pliku konfiguracyjnym brak jest opisu geometrii lub gdy użyto flagi mformat_only.
W Linuksie geometria początkowa nie jest faktycznie potrzebna, gdyż urządzenia konfigurowalne potrafią samoczynnie wykryć dostatecznie dokładnie typ dysku (dla większości powszechnych formatów) by móc odczytać sektor startowy.

Zły opis geometrii może prowadzić do bardzo poważnych błędów. Dlatego też usilnie zaleca się dodanie flagi mformat_only do opisu napędu, chyba iż faktycznie występuje potrzeba filtrowania czy geometrii początkowej.

Dostępne są następujące zmienne związane z geometrią dysków:


Liczba cylindrów. Forma zalecana; tracks (ścieżki) jest formą przestarzałą.
Liczba głowic (stron).
Liczba sektorów na ścieżkę.

Przykład: poniższa sekcja opisuje napęd 1.44MB:

  drive a:       file="/dev/fd0H1440"       fat_bits=12       cylinders=80 heads=2 sectors=18       mformat_only

Dostępne są następujące skrócone opisy geometrii:

1.44m 
dyskietka 3,5" wysokiej gęstości. Równoważne: fat_bits=12 cylinders=80 heads=2 sectors=18
1.2m 
dyskietka 5,25" wysokiej gęstości. Równoważne: fat_bits=12 cylinders=80 heads=2 sectors=15
720k 
dyskietka 3,5" podwójnej gęstości. Równoważne: fat_bits=12 cylinders=80 heads=2 sectors=9
360k 
dyskietka 5,25" podwójnej gęstości. Równoważne: fat_bits=12 cylinders=40 heads=2 sectors=9

Skrócone opisy formatów mogą być zmieniane, zdefiniując inny format. Na przykład, 360k sectors=8 opisuje dyskietkę 320k i jest równoważne zapisowi: fat_bits=12 cylinders=40 heads=2 sectors=8.

Dostępne są ponadto następujące flagi:

Wszystkie operacje wejścia/wyjścia wykonywane są synchronicznie.
Urządzenie lub plik jest otwierane z flagą O_NDELAY. Niezbędne przy niektórych systemach nie-Linuksowych.
Urządzenie lub plik jest otwierane z flagą O_EXCL. W Linuksie zapewnia to dostęp do napędu dyskietek w trybie wyłączności. W większości innych architektur oraz dla zwykłych plików nie daje żadnego efektu.

Dostępne są poniższe ogólne zmienne napędu. W zależności od typu, zmiennym tym może być przypisany łańcuch znakowy (precmd, postcmd) lub liczba całkowita (pozostałe).

Liczba bitów tablicy alokacji plików (FAT). Może to być 12 lub 16. Rzadko potrzebna, gdyż prawie zawsze może być uzyskana z informacji w sektorze startowym. I przeciwnie, podanie liczby bitów FAT może być przyczyną kłopotów, jeśli jest ona zła. Powinna być używana wyłącznie w przypadku niewłaściwego rozpoznawania automatycznego przez mtools liczby bitów FAT. Przydatna również przy formatowaniu z wykorzystaniem polecenia mformat dyskietki z nietypową liczbą bitów FATu.
Opisuje stronę kodową DOS używaną do krótkich nazw plików. Jest to numer pomiędzy 1 a 999. Domyślną wartością jest 850, która zawiera większość znaków występujących w ISO-Latin-1. Można także podać globalną stronę kodową, używając globalnego parametru default_codepage (podanego poza opisem jakiegokolwiek dysku). Ten parametr istnieje od wersji 4.0.0.
Ponownie mapuje dane z pliku obrazu. Jest to przydatne, w przypadku plików obrazu, które mogą potrzebować dodania dodatkowych sektorów wypełnionych zerami. Jest to na przykład przypadek obrazów dyskietek IBM 3174. Te obrazy reprezentują dyskietki z mniejszą liczbą sektorów na ich pierwszym cylindrze. Brakujące sektory nie są przechowywane w obrazie, lecz są wciąż liczone w rozmieszczeniu systemu plików. data_map pozwala zasymulować te brakujące sektory dla wyższych warstw mtools. data_map jest sekwencją typu i rozmiaru źródła, oddzielonych przecinkiem. Typ źródła może wynosić: zero dla sektorów wypełnionych zerami, tworzonymi przez mapę. skip dla danych w surowym obrazie, które mają być ignorowane (pomijane) i nic dla danych, które mają być użyte w rzeczywistej postaci (skopiowane) z surowego obrazu. Mapa danych jest automatycznie uzupełniane przez dorozumiany ostatni element danych, który ma być użyty w jego rzeczywistej postaci, od bieżącego przesunięcia, do końca pliku. Każdy rozmiar jest liczbą, po której występuje jednostka: : s oznacza 512 bajtowy sektor, K to kilobajty, M to megabajty, G to gigabajty oraz nic oznaczające pojedyncze bajty.
Przykład:
data_map=1s,zero31s,28s,skip1s byłoby mapą do użycia z obrazami dyskietek IBM 3174. Pierwszy sektor (1s, sektor rozruchowy) jest używany w rzeczywistej postaci, Następnie mamy 31 symulowanych sektorów, wypełnionych zerami (zero31s), później 28 sektorów z obrazu (28s) jest używanych w rzeczywistej postaci (zawierają FAT i katalog główny), następnie jeden sektor z obrazu jest pomijany (skip1s), a reszta obrazu jest używana (w sposób dorozumiany) w rzeczywistej postaci.
Wykonuje polecenie, przed otwarciem urządzenia. W niektórych odmianach Solaris niezbędne jest wywołanie volcheck -v przed otwarciem urządzenia dyskietek, co ma na celu wymuszenie na systemie zauważenia, że w napędzie rzeczywiście jest dyskietka. precmd="volcheck -v" umieszczone w sekcji opisującej napęd powoduje pożądane zachowanie.
Wykonuje polecenie po zamknięciu urządzenia. Może się przydać, jeśli mtools dzielą plik obrazu z inną aplikacją, aby uwolnić dla niej plik obrazu.
Parametr ten określa domyślny rozmiar bloku, jaki będzie zawsze używany dla danego urządzenia. Wszystkie operacje wejścia/wyjścia wykonywane są z wielokrotnością tego rozmiaru bloku, niezależnie od rozmiaru sektora zapisanego w sektorze startowym systemu plików. Rozwiązanie to jest przydatne do obsługi urządzeń znakowych, gdzie rozmiar sektora jest inny niż 512, jak na przykład napędy CD-ROM w systemie Solaris.

Obowiązkowa jest tylko zmienna file. Inne parametry mogą zostać pominięte. W takim przypadku przyjmowane są wartości domyślne lub automatycznie wykrywane.

Flaga może być albo ustawiona na 1 (włączone), albo na 0 (wyłączone). Jeśli pominięto wartość, to jest ona włączana. Na przykład, scsi jest równoważne z scsi=1

Poleca mtools nie używać blokady (locking) dla tego napędu. Przydatne w systemach z nie najlepszą semantyką blokowania. Włączenie tego przełącznika powoduje jednak, że operacje są mniej bezpieczne w przypadkach, gdy kilku użytkowników może korzystać z tego samego napędu w tym samym czasie.
Ustawiona na 1 nakazuje mtools użycie przy dostępie do urządzenia surowego wejścia/wyjścia SCSI (raw SCSI I/O) zamiast standardowych funkcji read/write. Obecnie jest to obsługiwane na HP/UX, Solaris i SunOS. Przełącznik jest tam niezbędny, gdyż w niektórych architekturach, jak SunOS czy Solaris, nie można korzystać z nośników PC przy użyciu funkcji systemowych read i write, gdyż system operacyjny oczekuje, że będą one zawierać specyficzną dla Suna "etykietę dysku".
Ponieważ surowy dostęp do SCSI zawsze posługuje się całym urządzeniem, musisz podać dodatkowo flagę "partition".
Na niektórych systemach, jak Solaris, mtools potrzebują uprawnień superużytkownika (root), by móc wykorzystać opcję scsi. Zatem, jeśli chce się korzystać z napędów Zip/Jaz w systemie Solaris, pakiet mtools powinien być zainstalowany z uprawnieniem setuid root. Stąd też jeśli podano flagę scsi, to automatycznie używana jest też privileged, chyba że zostanie jawnie wyłączona przez privileged=0.
Mtools używają swoich uprawnień superużytkownika do otwarcia urządzenia oraz wywołania rzeczywistych funkcji wejścia/wyjścia SCSI. Co więcej, uprawnienia roota używane są wyłącznie dla napędów opisanych w pliku konfiguracyjnym o zasięgu ogólnosystemowym, jak `/etc/mtools.conf', nie zaś dla napędów opisanych w `~/.mtoolsrc' lub w `$MTOOLSRC'..
Ustawiona na 1 nakazuje mtools użycie posiadanych przez nie uprawnień setuid oraz setgid przy otwieraniu danego napędu. Opcja ta jest poprawna tylko dla napędów opisanych w ogólnosystemowym pliku konfiguracyjnym (takim jak `/etc/mtools.conf', nie zaś w `~/.mtoolsrc' lub `$MTOOLSRC'). Naturalnie opcja ta nie działa również, jeśli mtools nie zostały zainstalowane z ustawionym setuid lub setgid. Jest automatycznie ustawiana przez "scsi=1", ale również wyłącznie dla napędów zdefiniowanych w plikach konfiguracyjnych o zasięgu ogólnosystemowym. Flaga ta może być jawnie ustawiona na zero w celu zakazania mtools używania uprawnień do danego napędu, nawet jeśli ustawione jest "scsi=1".
mtools potrzebują ustawienia dostępu SUID tylko wtedy, gdy planuje się wykorzystanie zmiennych privileged lub scsi dla któregoś z napędów. Jeżeli opcje te nie są używane, mtools działa prawidłowo nawet bez ustawiania SUID root.
Poleca mtools interpretację nazwy urządzenia jako identyfikatora "vold" [tłum.:volume daemon - demon mechanizmu zarządzania woluminami systemu Solaris], nie zaś jako nazwy pliku. Identyfikator "vold" jest tłumaczony na faktyczną nazwę pliku przy użyciu funkcji media_findname() oraz media_oldaliases() z biblioteki volmgt. Przełącznik ten jest dostępny tylko w przypadku skonfigurowania mtools z opcją --enable-new-vold przed kompilacją.
Zakłada, że dysk jest dyskiem Atari z zamienioną kolejnością słów.
Ustawienie na wartość niezerową powoduje, że mtools próbuje również dostępu do tej dyskietki jak do dyskietki XDF. XDF jest formatem dużej gęstości wykorzystywanym przez OS/2. Przełącznik ten jest domyślnie wyłączony. Więcej informacji znajdziesz w sekcji XDF dokumentacji mtools(1).
mtools powinny użyć geometrii tego napędu tylko do formatowania (mformat), ale nie do filtrowania.
mtools użyją geometrii tego napędu zarówno do formatowania jak i do filtrowania.
nakazuje mtools podłączenie się do floppyd (patrz floppyd(1)).

Możliwe jest podanie wielu opisów dla danego napędu. W takim przypadku, opisy są wypróbowywane po kolei, aż do znalezienia pasującego. Opisy mogą nie pasować z kilku powodów:

1. 
nieodpowiednia geometria,
2. 
brak dysku w napędzie,
3. 
inne kłopoty.

Wielość opisów jest przydatna przy wykorzystywaniu urządzeń fizycznych potrafiących obsługiwać tylko jedną geometrię pojedynczego dysku. Przykład:

  drive a: file="/dev/fd0H1440" 1.44m   drive a: file="/dev/fd0H720" 720k

Powyższe linie nakazują mtools użycie /dev/fd0H1440 dla dyskietek 1.44MB (dużej gęstości) oraz /dev/fd0H720 dla dyskietek 720KB (podwójnej gęstości). W Linuksie cecha ta nie jest faktycznie potrzebna, gdyż urządzenie /dev/fd0 jest w stanie obsługiwać dowolną geometrię.

Można też użyć wielu opisów napędu, by korzystać z obu napędów fizycznych za pośrednictwem jednej litery napędu:

  drive z: file="/dev/fd0"   drive z: file="/dev/fd1"

Z takim opisem mdir z: wykorzystuje pierwszy napęd fizyczny, jeśli zawiera on dyskietkę. Jeśli w pierwszym napędzie nie ma dyskietki, to mtools sprawdzają drugi napęd.

Przy użyciu wielu plików konfiguracyjnych opisy napędu występujące jako ostatnie przesłaniają uprzednie opisy dla tego samego napędu z wcześniejszych plików. Można tego uniknąć posługując się słowami kluczowymi drive+ lub +drive zamiast drive. Pierwsza składnia dodaje opis na końcu listy (tzn.będzie wypróbowany jako ostatni), zaś druga na początek listy.

Położenie plików konfiguracyjnych i kolejność przetwarzania

Pliki konfiguracyjne przetwarzane są w następującej kolejności:

1. 
wbudowane wartości domyślne
2. 
`/etc/mtools.conf'
3. 
`~/.mtoolsrc'.
4. 
`$MTOOLSRC' (plik wskazywany przez zawartość zmiennej środowiska MTOOLSRC)

Opcje opisywane w późniejszych plikach unieważniają opcje opisane w plikach wcześniejszych. Napędy zdefiniowane w późniejszych plikach pozostają zdefiniowane, jeśli nie są unieważnione w plikach czytanych później. Na przykład, napędy A i B mogą być zdefiniowane w pliku `/etc/mtools.conf', a napędy C i D zdefiniowane w `~/.mtoolsrc'. Jeżeli jednak `~/.mtoolsrc' definiuje również napęd A, to ta nowa definicja unieważnia poprzedni opis napędu A z `/etc/mtools.conf' zamiast uzupełniać go. W celu dodania nowego opisu do napędu już opisanego we wcześniejszym pliku należy posłużyć się słowem kluczowym +drive albo drive+.

Składnia opisana w niniejszym dokumencie obowiązuje w nowej wersji mtools-3.0. Stara zorientowana liniowo składnia jest nadal obsługiwana. W starej składni każda linia rozpoczynająca się pojedynczą literą uważana jest za opis napędu. Sekcje napędów w starej i nowej składni mogą być mieszane w tym samym pliku konfiguracyjnym, co powinno ułatwić aktualizację do nowej wersji. Obsługa starej składni będzie z czasem zaniechane, a w celu zniechęcenia do jej używania celowo pominięto tu jej opis.

mtools

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Wojtek Kotwica <wkotwica@post.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

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 listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

21 marca 2023 MTOOLS