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:
- 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.
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).
- 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.
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.
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.
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) lub liczba
całkowita (pozostałe).
- 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
- 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.
- 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.
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)).
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.