Linux spricht alle Geräte, die nicht einigermassen direkt an der CPU hängen (wie z.B. PCI-Karten), über sogenannte device-Files an. Um eine Medium mounten zu können, d.h. in den Dateibaum einbinden zu können, muss man aber den device-file der zu mountenden Partition auf dem Medium wissen.
Die Namen von device-Files für Laufwerke (incl. Festplatten) sind nach folgendem Schema aufgebaut:
Das 'X' steht dabei für einen Buchstaben, den Linux dem Laufwerk zuordnet.
Bei IDE-Laufwerk werden der Reihe der Kanäle nach durchbuchstabiert:
a für Kanal1,Master,
b für Kanal1,Slave,
c für Kanal2, Master, usw. .
Bei SCSI werden die SCSI-Busse (wenn mehrere vorhanden, wie z.B. beim PowerMac 7500)
der Reihe nach und auf jedem Bus bei den kleinen SCSI-ID's beginnend durchgescannt.
In der Reihenfolge, wie dabei die SCSI-Geräte angetroffen werden, werden sie durchbuchstabiert.
Das 'Y' in obiger Tabelle bezeichnet dagegen die Nummern der Partitionen auf dem jeweiligen Laufwerk. Ist das Medium nach dem PC-Schema partitioniert beginnen diese Nummern bei 1. Auf dem Mac belegen jedoch die Treiber, die Partitiontabelle und ggfs. einige Patches die ersten Partitionen, so dass die erste nutzbare Partition die Nummer 3-5 trägt.
Man muss sich jedoch nicht die Mühe machen, das alles genau auszurechen. Bei Booten teilt Linux einem mit welches Gerät auf welchen Device-file bzw. welche Gruppe von device-files gelegt wurden. Falls man das ganze beim Booten verpasst hat, kann man es auch (als root) in der Datei /var/log/messages nachlesen. Bei mir sieht die Meldung beim Booten so aus:
hda: QUANTUM FIREBALL EX6.4A, ATA DISK drive hdb: IBM-DJNA-372200, ATA DISK drive hde: MATSHITADVD-ROM SR-8583, ATAPI CDROM driveIch habe also eine Festplatte auf /dev/hday, eine weitere auf /dev/hdby und ein DVD-ROM auf /dev/hde.
Um nun noch die Partitionsnummer herauszubekommen, wirft man am besten mit pdisk (bzw. fdisk für PC-partitioniert Medien) eine Blick darauf.
> pdisk -l /dev/hdaliefert alle was über das Laufwerk an /dev/hda man wissen muss.
Mounten ist eigentlich ganz einfach. Wenn man den device-file kennt, muss man nur noch ein Verzeichnis anlegen (diese sollte für alle volle Rechte gesetzt haben) und man sollte root sein. Dann mountet man mit
> mount /dev/hda8 /mnt
die 8. Partition der Master-Festplatte auf IDE-Kanal 1 auf den Pfad /mnt. Anders als bei MacOS darf das Verzeichnis irgendwo im lokalen Datenbaum liegen. Nur auf Netz- / NFS-Partitionen sollte es nicht liegen. Es ist also auch
> mount /dev/hda8 /usr/local/lanmöglich.
Nun man kann den device-file oder das Verzeichnis weglassen, wenn man die Partition in der Datei /etc/fstab eingetragen hat. Beispielsweise kann man seine CD-ROM mit:
> mount /cdromauf /cdrom mounten, wenn in der /etc/fstab diese Zeile steht
/dev/hde /cdrom auto noauto,ro 0 0
Diese besagt, dass das Gerät unter /dev/hde auf /cdrom gemounten werden soll, dass dabei der Type des Filesystems (ext2fs, hfs, fat,...) automatisch bestimmt werden soll (auto), dass dieses Partition/dises Laufwerk beim Booten nicht automatisch gemountet werden soll (noauto) und dass das Medium read-only gemountet werden soll(ro). Der Name des device-file muss dabei natürlich den Gegebenheiten auf dem eignen Rechner angepasst werden.
Anders ausgedrügt besteht jede Zeile in der /etc/fstab aus sechs Spalten, von denen hier die ersten 4 interessieren:
Analog zum CD-ROMlassen sich auch andere Wechselmedien-Laufwerke einrichten, z.B. mit folgender Zeile für mein MO an meinem PM7500:
/dev/sdc3 /mo ext2fs noauto,rw 0 0Mit
> mount /mo
wird die dritte Partition auf dem dritten Gerät der SCSI-Kette (das ist bei mir das MO) auf /mo gemountet. Im Gegensatz zur CD wird das MO auch beschreibbar gemountet (deshalb die Option rw statt ro).
Nein, man kann auch als normaler User mounten, aber nur Partitionen, für die dieses extra in der /etc/fstab freigegeben wurde. Partitionen oder Laufwerke, die nicht in der /etc/fstab eingetragen sind, kann nur root mounten.
Damit jeder user eine Partition oder Laufwerk mounten darf, muss bei dieser in /etc/fstab die Option user gesetzt sein. Für das CD-ROM sähe das so aus:
/dev/hde /cdrom auto noauto,user,ro 0 0
Leider impliziert die Option user in der /etc/fstab, dass von dort keine Programme mehr gestartet werden dürfen. Fügt man aber die Option exec hinzu, ist es wieder möglich Programme von diesem Medium zu starten:
/dev/hde /cdrom auto noauto,user,ro,exec 0 0
Wichtig ist, dass exec hinter user steht. Dasselbe gilt übrigens
für den suid-Mechanismus, der bei Bedarf mit der Option suid wieder eingeschaltet
werden muss.
Damit kann jetzt jeder User eine CD mit > mount /cdrom mounten.
Ja es geht. Es gibt dazu den einen sogenannten Automounter. Mit diesem kann man Linux dazu veranlassen ein Medium automatisch zu mounten, wenn darauf zugeriffenwerden soll. Mehr dazu in einem eigenen Artikel.
Wie unter MacOS (und anders als unter Windows) sind Laufwerke mit gemounteten Medien oder Partitionen gesperrt. Man muss das Medium erts "entmounten" oder unmounten. Die geht einfach mit:
> umount /cdrom
Hierzu ist nicht einmal ein Eintrag in der /etc/fstab nötig, da der device-file und Verzeichnis ja noch über den mount verknüpft sind. Damit jeder User das Medium umounten darf, braucht man aber genau wie beim mounten den entsprechende Eintrag der Option user in der /etc/fstab.
Noch eleganter geht es mit dem Kommando eject
(es findet sich
bei LinuxPC 1999 im Packet eject-2.0.2-3.rpm
,
bei LinuxPPC 2000 ist es Teil des Basissystems und sollte installiert sein.). Mit
> eject /cdrom
Wird nicht nur das Medium geumountet sondern auch gleich noch ausgeworfen. Ist das ein Luxus ;-).
Beim Mounten von Wechselmedium (ausser CD-ROMs) gibt es eine kleine Falle.
Aus unerfindlichen Gründen merkt Linux sich den Dateibaum eines Mediums auch nachdem dieses
geumountet wurde. Wenn man nun ein anderes Medium in demselben Laufwerk mit derselben Partition mountet,
so erscheint trotzdem wieder der Dateibaum des ersten Mediums. ;-(
Mit einem Trick kann man dieses jedoch umgehen.
Nachdem man das erste Medium dem Laufwerk wieder entnommen hat,
gibt man (eigentlich sinnloserweise) folgenden Befehl ein.
Als Beispiel habe ich wieder mein MO (siehe oben) gewählt.
> mount /mo
Da nun aber kein Medium im Laufwerk (hier im MO) ist, gibt es eine Fehlermeldung. Dabei vergisst Linux nun aber endlich den alten Dateibaum und man kann nun getrost ein neues Medium einschieben und mounten.