CDROM w Linux-ie: Odpowiedzi na często zadawane pytania.
Następna strona
Poprzednia strona
Spis treści
6. Odpowiedzi na często zadawane pytania.
6.1 Jak inny użytkownik niż root może montować i odmontowywać płyty?
Większość poleceń mount posiada opcję user. Jeśli zrobisz
taką pozycję w /etc/fstab:
/dev/sbpcd /mnt/cdrom iso9660 user,noauto,ro
to zwykły użytkownik będzie mógł zamontować i odmontować płytę
poleceniami:
% mount /mnt/cdrom
% umount /mnt/cdrom
Płyta zostanie zamontowana z pewnymi opcjami, które zwiększają
bezpieczeństwo (np. programy nie mogą być wykonywane, pliki
urządzeń są ignorowane); w niektórych przypadkach może to być zbyt
rygorystyczne.
Inną metodą jest zdybycie pakietu usermount, który pozwala
użytkownikom innym niż root montować i odmontowywać urządzenia
wyjmowalne takie jak dyskietki i CD-ROM-y, ale zmniejsza dostęp do
innych urządzeń (takich jak partycje twardych dysków). Dostępny jest
na większości serwerów ftp.
Pod adresem ftp.cdrom.com znajduje się plik źródłowy
mount.c, który pozwala na montowanie i odmontowywanie
CD-ROM-ów (tylko) przez normalnych użytkowników. Uruchamiany jest z
prawami root-a.
6.2 Dlaczego dostaję komunikat "device is busy" kiedy odmontowuję CD-ROM?
Płyta nie może być odmontowana jeśli jakikolwiek proces żąda do
niej dostępu, włącznie z przypadkiem kiedy bierzącym katalogiem
jest któryś z podkatalogów płyty lub jej katalog główny. Jeśli nie
możesz znaleźć procesu używającego płytę, to możesz użyć polecenia
fuser tak jak to pokazano poniżej:
% umount /cdrom
umount: /dev/hdd: device is busy
% fuser -v /cdrom
USER PID ACCESS COMMAND
/mnt/cdrom tranter 133 ..c.. bash
Na niektórych systemach możliwe, że musisz być root-em, żeby
uruchomić polecenie fuser, żeby zobaczyć procesy innych
użytkowników.
6.3 Jak mam eksportować CD-ROM dla innych komputerów przez NFS?
Musisz dodać pozycję do pliku /etc/exports. Wtedy
użytkownicy na tamtej maszynie będą mogli zamontować to
urządzenie. Szczegóły znajdziesz w poleceniu "man 5 exports".
6.4 Czy mogę startować Linux-a z CD-ROM-u?
Przy instalacji Linux-a najpopularniejszą metodą jest użycie
dyskietki startowej. Niektóre dystrybucje pozwalają na start
Linux-a bezpośrednio z płyty.
Michael Fulbright (
msf@redhat.com) zgłosił, że jeśli posiada się dobry CD-ROM,
ROM BIOS i napęd CD-ROM ATAPI, to jest możliwe startowanie z
płyty. Najnowsza wersja mkisofs także obsługuje tworzenie
takich dysków. Dodał on jakieś łaty do obsługi standardu El Torito
dla startowalnych CD-ROM-ów.
6.5 Jak mogę przeczyta dane cyfrowe z płyty muzycznej?
Heiko Eissfeldt (
heiko@colossus.escape.de) i Olaf Kindel napisali narzędzie,
które czyta dane audio i zachowuje je jako pliki dźwiękowe w
formacie .wav. Pakiet nazywa się cdda2wav.tar.gz i można
go pobrać z ftp.icm.edu.pl.
Ponieważ napędy CD-ROM zmieniają się bardzo szybko, trudno jest
powiedzieć które modele obsługują czytanie danych
cyfrowych. Najlepiej zdobyć najnowszy pakiet cdda2wav i
przeczytać zawartą tam dokumentację.
Więcej informacji na ten temat znajdziesz na stronie
www.tardis.ed.ac.uk oraz w FAQ grupy alt.cd-rom wymienionym w
referencjach.
6.6 Dlaczego polecenie find nie działa?
Jeśli używasz tego polecenia na kompakcie w formacie ISO-9660 bez
Rock Ridge Extensions, to musisz dodać opcję -noleaf. Więcej
szczegółów w poleceniu "man find".
(Z moich doświadczeń wynika, że prawie wszystkie nowsze płyty
Linux-a używają Rock Ridge Extensions, więc ten problem powinien
występować bardzo rzadko.)
6.7 Czy Linux obsługuje jakieś nagrywarki?
Pakiet X-CD-Roast jest graficznym interfejsem do obsługi nagrywarek
CD. Pakiet można znaleźć na ftp.icm.edu.pl w kataloogu
/pub/Linux/sunsite/utils/disk-management/.
Zobacz także "Linux CD-Writing HOWTO" pod adresem
www.jtz.org.pl dostępne w języku polskim.
6.8 Dlaczego pojawia się taki komunikat "mount: Read-only file system when mounting a CD-ROM"?
CD-ROM jest nośnikiem tylko do odczytu. We wcześniejszych wersjach
jądra można było zamontować płytę CD do zapisu i odczytu, ale zapis
był po prostu ignorowany. Od wersji 1.1.33 zostało to poprawione i
CD-ROM-y muszą być montowane tylko-do-odczytu (np. z opcją -r).
6.9 Dlaczego wysuwa mi się szufladka kiedy zamykam system?
Od wersji jądra 1.1.38, sterownik sbpcd wysuwa szufladkę kiedy
płyta jest odmontowywana. Jeśli zamykasz system, to zamontowana
płyta zostanie odmontowana i szufladka wysunięta.
Funkcja ta ma pomóc przy zmianie płyt. Jeśli szufladka jest
wysunięta, to przy próbie odczytu lub zamontowania zostanie
zamknięta automatycznie.
Stwierdziłem, że to powoduje problemy z niektórymi programami
(np. cdplay i workbone). Od wersji 1.1.60 jądra można tę funkcję
kontrolować programowo. Przykładowy program zawarty jest w
dokumentacji do sterownika sbpcd programu (albo użyj
eject).
6.10 Mam "specjalny" kompakt, którego nie można zamontować?
Ten specjalny kompakt to pewnie płyta XA (jak wszystkie PhotoCD czy
"one-offs" stworzone przy użyciu nagrywarek). Większość sterowników
CD-ROM-ów nie obsługuje płyt XA, chociaż może znajdziesz gdzieś
jakąś łatę, która dodaje obsługę takich płyt.
Sterownik sbpcd obsługuje XA. Jeśli używasz tego sterownika,
to możesz sprawdzić czy płyta jest XA w ten sposób: otwórz plik
sbpcd.c i włącz wyświetlanie "Table of Contents"
(DBG_TOC). Skompiluj i zainstaluj nowe jądra i wystartuj
je. Podczas każdego montowania TOC będzie wyświetlane na konsoli,
albo logowane do pliku). Jeśli pierwszą wartością w TOC jest 20, to
jest to płyta XA. Bajt ten ma wartość 00 w normalnych
płytach. Jeśli TOC pokazuje różne ścieżki, to jest to także znak,
że jest to płyta XA.
(dzięki dla Eberharda Moenkeberga za powyższą informację)
Innymi możliwościami dla nieodczytywalnych CD-ROM-ów są:
Płyta nie używa systemu plików ISO-9660 (np. niektóre używają
SunOS lub HFS).
Jest to płyta muzyczna.
Włożyłeś ją do napędu "do góry nogami" :-)
6.11 Czy wielopłytowe napędy CD-ROM działają z Linux-em?
Kilku użytkowników zgłosiło, że osiągnęło jakieś sukcesy z
wielopłytowymi napędami CD-ROM SCSI. Musisz przypuszczalnie włączyć
opcję "Probe all LUNs on each SCSI device" przy konfiguracji
jądra. Przynajmniej jeden użytkownik musiał także zwiększyć wartość
oczekiwania (timeout) dla SCSI w sterowniku. Zgłoszono mi, że Nakamichi
MBR-7 7 i Pioneer 12 działają.
Dostępne są także napędy wielopłytowe EIDE/ATAPI. Jądro w wersji
2.0 ma szczątkową obsługę dla napędów korzystających z funkcji
ioctl CDROM_SELECT_DISC. Plik z dokumentacją do sterownika IDE-CD
zawiera źródła krótkiego programu do wybierania kompaktów, albo
możesz użyć nowszej wersji opisanego wcześniej programu eject.
6.12 Dostaję błędy: "/cdrom: Permission denied"
Niektóre płyty mają tak ustawione prawa dostępu do swojego głównego
katalogu, że tylko użytkownik root może go czytać. Przykładem może
tutaj być płyta InfoMagic z marca 1995. Jest to wyraźna
niedogodność.
Następująca łata, grzeczność ze strony Christopha Lametera (
clameter@waterf.org) obchodzi
ten problem w jądrze.
From: clameter@waterf.org (Christoph Lameter)
Newsgroups: comp.os.linux.setup
Subject: InfoMagic Developers Set: Fix for CD-ROM permissions
Date: 12 Apr 1995 20:32:03 -0700
Organization: The Water Fountain - Mining for streams of Living Water
NNTP-Posting-Host: waterf.org
X-Newsreader: TIN [version 1.2 PL2]
Zbiór płyt "InfoMagic Developers" z marca 1995 ma błędy ponieważ
informacja o prawach dostępu zapisana w katalogu głównym przysparza
następujących problemów:
1. Płyta 1 będzie zawsze miała właściciela/grupę 5101/51 i ma
dozwolony zapis (?)
2. Płyta 2 i 3 mają ustawione prawa rwx dla root-a i żadnych praw dla
innych użytkowników/grupy. Płyty tej nie można odczytać z innego
użytkownika niż root! Mam uruchomionego BBS-a i muszę je udostępnić do
zgrywania dla innych.
Widziałem już gdzieś tam kilka poprawek do tego. Jednak kłopot w tym,
że poprawki te zmieniają prawa dla WSZYSTKICH katalogów na płycie. Ta
poprawka zmienia TYLKO prawa dostępu do katalogu głównego płyty. Jeśli
chcesz uruchamiać części Linux-a bezpośrednio z tej płyty to możesz
wpaść w kłopoty jeśli wszystkie katalogi są czytelne dla wszystkich i
jeśli właścicielem wszystkich jest root.
Poprawka ta zmieni prawa dostępu dla katalogu głównego na r-xr-xr-x i
właściciela/grupę na wartości odpowiadające opcjom uid i gid polecenia
mount.
Aby założyć poprawkę:
cd /usr/src/linux/fs/isofs
patch <**TEN LIST**
i skompiluj ponownie jądro (możliwe, że musisz poprawić trochę tę
poprawkę w zależności od wersji twojego jądra).
Poprawka ta powinna się przypuszczalnie znaleźć w jądrze. Jaki interes
mają dane na płycie w grzebaniu prawami/właścicielem katalogu do
zamontowania?
--- inode.c.ORIG Wed Apr 12 17:24:36 1995
+++ inode.c Wed Apr 12 17:59:12 1995
@@ -552,7 +552,15 @@
these numbers in the inode structure. */
if (!high_sierra)
- parse_rock_ridge_inode(raw_inode, inode);
+ { parse_rock_ridge_inode(raw_inode, inode);
+ /* check for access to the root directory rights/owner CL */
+ if((inode->i_sb->u.isofs_sb.s_firstdatazone) == inode->i_ino)
+ { /* Change owner/rights to the ones demanded by the mount command */
+ inode->i_uid = inode->i_sb->u.isofs_sb.s_uid;
+ inode->i_gid = inode->i_sb->u.isofs_sb.s_gid;
+ inode->i_mode = S_IRUGO | S_IXUGO | S_IFDIR;
+ }
+ }
#ifdef DEBUG
printk("Inode: %x extent: %x\n",inode->i_ino, inode->u.isofs_i.i_first_extent);
@@ -805,4 +813,3 @@
}
#endif
-
Zauważ, że powyższa łata jest raczej stara i przypuszczalnie nie
zainstaluje się gładko w jądrze wersji 2.0. Zobacz także pytanie na
temat plików ukrytych w dalszej części tego dokumentu.
6.13 Jak mam interpretować komunikaty o błędach IDE CD?
Co to znaczy jak otrzymam komunikat o błędzie od sterownika
CD-ROM-u - np. taki: "hdxx: code: xx key: x asc: xx ascq: x"?
To jest komunikat o statusie/błędzie od napędu IDE
CD-ROM. Domyślnie sterownik IDECD wypisuje informacje otrzymane
przez napęd bez "zawracania jądru głowy". Możesz zmienić to domyślne
zachowanie, aby wyświetlał właściwy komunikat o błędzie, przez
zmianę wartości VERBOSE_IDE_CD_ERRORS w pliku
/usr/src/linux/drivers/block/ide-cd.c na 1 i rekompilację
jądra.
6.14 Jak mogę powiedzieć jaką prędkość ma mój CD-ROM?
Oto jeden sposób. Polecenie to mierzy jaki czas przeznaczony jest
na odczytanie 1500K danych z płyty:
% time -p dd if=/dev/cdrom of=/dev/null bs=1k count=1500
1500+0 records in
1500+0 records out
real 5.24
user 0.03
sys 5.07
Prędkość CD-ROM-u o pojedynczej prędkości wynosi 150 kb na sekundę,
co powinno zabrać około 10 sekund. Przy prędkości podwójnej
zabrałoby to 5 sekund, przy czterokrotnej - 2,5, itd...
Czas "real" powyżej jest przypuszczalnie tym, na który należy
patrzeć - w tym przypadku jest to CD-ROM podwójnej
prędkości. Możesz zwiększyć ilość danych, aby otrzymać bardziej
dokładną wartość (w razie gdybyś pytał, to te dane nie są
cache'owane). Przypuszczalnie powinieneś uruchomić to polecenie
kilka razy i wziąć średnią z nich wszystkich.
6.15 Mój CD-ROM przestał działać odkąd zainstalowałem Linux-a.
Zwykłym symptomem jest to, że dysk startowy użyty do instalacji
rozpoznał twój CD-ROM, ale po tym jak Linux został zainstalowany na
dysku twardym czy dyskietce i zrestartowany - przestał rozpoznawać
twój napęd.
Najpopularniejszym powodem jest tutaj fakt, że w niektórych
dystrybucjach jądro instalowane nie zawsze jest tym samym jądrem,
które znajduje się na twojej dyskietce startowej. Wybrałeś
dyskietkę, która obsługiwała twój CD-ROM, podczas gdy jądro, które
zainstalowałeś, jest jądrem "ogólnym" i nie ma w nim obsługi
CD-ROM-u. Możesz to sprawdzić postępując zgodnie ze wskazówkami
zawartymi w sekcji Rozwiązywanie problemów wcześniej w
tym dokumencie (np. zacznij od sprawdzenia /proc/devices).
Rozwiązaniem jest ponowna kompilacja jądra, upewniając się
jednocześnie, że wszystkie sterowniki jakie potrzebujesz są
włączone. Zobacz
Kernel-HOWTO (po polsku) jeśli nie wiesz jak to zrobić.
Jeśli przekazałeś jakieś parametry startowe do dyskietki
(np. "hdc=cdrom"), to musisz je dodać do konfiguracji twojego
programu startującego (zwykle jest to plik /etc/lilo.conf).
6.16 Na płycie są "ukryte" plik, których nie mogę odczytać.
Niektóre płyty posiadają pliki z ustawionym bitem
"hidden". Normalnie nie można zobaczyć tych plików. Jeśli
zamontujesz płytę z opcją "unhide", to wtedy pliki te powinny być
dostępne (jakoś nie widać, żęby to było gdziekolwiek udokumentowane).
6.17 Gdzie jest udokumentowane CD-ROM API?
Jeśli chcesz napisać własną aplikację, jak np. odtwarzarka audio,
to będziesz musiał zrozumieć API - interfejs programowana aplikacji
(application programming interface).
Oryginalnie sterownik CD-ROM-u używał swojej własnej funkcji
ioctl(), aby obsłużyć funkcje specyficzne dla każdego napędu. Pliki
nagłówkowe takie jak /usr/include/linux/sbpcd.h opisują
je. Ponieważ wiele sterowników bazowało na innych sterownikach,
interfejsy, jeśli nie są identyczne, to mają wiele wspólnego.
Ostatnio powstała inicjatywa ustandaryzowania interfejsu dla
napędów CD-ROM kierowana przez Davida van Leeuwena
(
david@tm.tno.nl).
Polega ona na umieszczeniu ogólnego kodu w jednym miejscu i
upewnieniu się, że wszystkie sterowniki zachowują sie tak samo
Jest to udokumentowane w pliku
/usr/src/linux/Documentation/cdrom/cdrom-standard.tex. Kilka
sterowników to obsługuje. Spodziewam się, że w następnej głównej
wersji jądra (3.0?) wszyskie sterowniki CD-ROM-ów dostosują się do
tego API.
Moja książka, Linux Multimedia Guide, poświęca o wiele
więcej miejsca tematowi programowania CD-ROM-ów, szczególnie jeśli
chodzi o funkcje audio. Zobacz na koniec sekcji Referencje.
6.18 Dlaczego nie widzę długich nazw na CD-ROM-ach z Windows-ów?
Jeśli masz CD-ROM, który ma długie nazwy pod Windows, ale nie pod
Linux-em, może on być zformatowany do Microsoft-owego systemu
plików Joliet. Rozwiązanie znajdziesz w odpowiedzi na następne
pytanie.
6.19 Czy obsługiwany jest Microsoft-owy system plików Joliet?
Microsoft stworzył rozszerzenie do formatu ISO CD-ROM o nazwie
Joliet. W czasie pisania obsługa dla Joliet była w trakcie
opracowywania; łaty były dostępne z adresu url
url="http://www-plateau.cs.berkeley.edu/people/chaffee/joliet.html">
lub
ftp://www-plateau.cs.berkeley.edu/pub/multimedia/linux/joliet/.
Następna strona
Poprzednia strona
Spis treści
Wyszukiwarka
Podobne podstrony:
cdrom howto pl 1CDROM HOWTO plcdrom howto pl 3cdrom howto pl 5cdrom howto plcdrom howto plcdrom howto pl 2cdrom howto pl 7cdrom howto pl 4bootdisk howto pl 8PPP HOWTO pl 6 (2)NIS HOWTO pl 1 (2)jtz howto pl 5Keystroke HOWTO pl (2)PostgreSQL HOWTO pl 14printing howto pl 5debian apt howto plKernel HOWTO pl 12 (2)XFree86 HOWTO pl (3)więcej podobnych podstron