mtools(5)

Nazwa
mtools.conf - pliki konfiguracyjne mtools

opis

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

  Ogólna składnia pliku konfiguracyjnego

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

  Domyślne wartości
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.

  Zmienne globalne

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

Rozpoznawane są następujące flagi globalne:

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

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

MTOOLS_LOWER_CASE
    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).

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

MTOOLS_DOTTED_DIR
    Przy szerokim listowaniu katalogu, pokazuje nazwy plików z kropką zamiast odstępów oddzielających nazwę od rozszerzenia.

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

MTOOLS_TWENTY_FOUR_HOUR_CLOCK
    Przy ustawieniu na jeden używany jest europejski sposób zapisu czasu (zegar 24-godzinny). W przeciwnym przypadku wykorzystywana jest notacja anglosaska (am/pm).

MTOOLS_LOCK_TIMEOUT
    How long, in seconds, to wait for a locked device to become free. Defaults to 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ść:

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

  Flagi i zmienne napędów

  Informacje ogólne

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

  Informacje o położeniu

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

file
    Nazwa pliku lub urządzenia przechowującego obraz dysku/dyskietki. Zmienna obowiązkowa. Nazwa pliku powinna być ujęta w cudzysłowy.

partition
    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).

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

  Konfiguracja geometrii dysku

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

formatowanie
    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).

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

geometria początkowa
    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:

cylinders
tracks
    Liczba cylindrów. Forma zalecana; tracks (ścieżki) jest formą przestarzałą.

heads
    Liczba głowic (stron).

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

  Flagi otwarcia

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

sync
    Wszystkie operacje wejścia/wyjścia wykonywane są synchronicznie.

nodelay
    Urządzenie lub plik jest otwierane z flagą O_NDELAY. Niezbędne przy niektórych systemach nie-Linuksowych.

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

  Zmienne napędu ogólnego przeznaczenia

The following general purpose drive variables are available. Depending to their type, these variables can be set to a string (precmd, postcmd) or an integer (all others)

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

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

data_map
    Remaps data from image file. This is useful for image files which might need additional zero-filled sectors to be inserted. Such is the case for instance for IBM 3174 floppy images. These images represent floppy disks with fewer sectors on their first cylinder. These missing sectors are not stored in the image, but are still counted in the filesystem layout. The data_map allows to fake these missing sectors for the upper layers of mtools. A data_map is a comma-separated sequence of source type and size. Source type may be zero for zero-filled sectors created by map, skip for data in raw image to be ignored (skipped), and nothing for data to be used as is (copied) from the raw image. Datamap is automatically complemented by an implicit last element of data to be used as is from current offset to end of file. Each size is a number followed by a unit: s for a 512 byte sector, K for Kbytes, M for megabytes, G for gigabytes, and nothing for single bytes.

    Example:

    data_map=1s,zero31s,28s,skip1s would be a map for use with IBM 3174 floppy images. First sector (1s, boot sector) is used as is. Then follow 31 fake zero-filled sectors (zero31s), then the next 28 sectors from image (28s) are used as is (they contain FAT and root directory), then one sector from image is skipped (skip1s), and finally the rest of image is used as is (implicit)

precmd
    Executes the given command before opening the device. On some variants of Solaris, it is necessary to call 'volcheck -v' before opening a floppy device, in order for the system to notice that there is indeed a disk in the drive. precmd="volcheck -v" in the drive clause establishes the desired behavior.

postcmd
    Executes the given command after closing the device. May be useful if mtools shares the image file with some other application, in order to release the image file to that application.

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

  Flagi napędu ogólnego przeznaczenia

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

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

scsi
    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'..

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

vold

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

swap

    Zakłada, że dysk jest dyskiem Atari z zamienioną kolejnością słów.

use_xdf
    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).

mformat_only
    mtools powinny użyć geometrii tego napędu tylko do formatowania (mformat), ale nie do filtrowania.

filter
    mtools użyją geometrii tego napędu zarówno do formatowania jak i do filtrowania.

remote
    nakazuje mtools podłączenie się do floppyd (patrz floppyd(1)).

  Wielokrotne opisy napędu

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

  Wsteczna zgodność ze starą składnią plików konfiguracyjnych

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.

Zobacz także
mtools

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Wojtek Kotwica <wkotwica@post.pl> i Robert Luberda <robert@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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.