====== Datenträger einhängen (mounten) ======
Laufwerksbuchstaben gibt es bei Linux nicht, man hängt ("mountet") Datenträger an beliebigen Orten ("[[wpde>Mountpoint|Mountpoints]]") im Verzeichnisbaum ein.
Beispiel: Der Inhalt einer USB-Festplatte soll im Verzeichnis /media/usbplatte zur Verfügung stehen:
mount -t ext3 /dev/sda1 /media/usbplatte
Der Befehl ''mount'' verlangt 3 Parameter: Zuerst den als Parameter den Dateisystemtyp, den ich mit der Option ''-t ext3'' angebe, dann den Gerätenamen (/dev/sda1) und dann den [[wpde>Mountpoint]](/media/usbplatte). In manchen Fällen kann der Dateisystemtyp auch automatisch ermittelt werden.
Mounten funktioniert auf diese Art nur für den Benutzer root. Bei Wechseldatenträgern kümmert sich meist ein Dienst um das automatische einhängen für Benutzer unterhalb des Verzeichnisses ''/media'' , man kann den Datenträger aber auch in die Datei ''/etc/fstab'' aufnehmen. Bei Datenträgern die während des bootens automatisch zur Verfügung gestellt werden sollen ist dies sogar notwendig. Die Datei ''/etc/fstab'' enthält pro Zeile die Definition für einen [[wpde>Mountpoint]].
Die Zeilen haben folgenden Aufbau:
^ Gerätename ^ [[wpde>Mountpoint]] ^ Dateisystemtyp ^ Mountoptionen ^ dump((,wird aktuell nicht benutzt)) ^ fsck((Reihenfolge der Dateisystemprüfung, die root-Partition sollte die 1 haben, andere Datenträger die 2, 0 oder leer wenn nicht überprüft werden soll)) ^
| /dev/hda1 | /boot | ext3 | defaults | 1 | 2 |
| /dev/hdc | /media/cdrom | iso9660 | ro,noauto,user | 0 | 0 |
Die unteren beiden Zeilen sind Beispiele wie sie in der Datei ''/etc/fstab'' stehen könnten.
**In der ersten Zeile** existiert eine eigene Partition für ''/boot'' welche sich auf ''/dev/hda1'' befindet und mit ext3 formatiert ist. "defaults" bedeutet, das die Standardoptionen gelten sollen. In so einem Fall wird angenommen, das der Datenträger automatisch beim booten und beschreibbar gemountet werden soll. Die 1 ist ein Parameter für dump, der momentan nicht benutzt wird. Es ist üblich hier 1 für Systempartitionen anzugeben und 0 für alle anderen Partitionen. Die 2 steht für die Reihenfolge, in der das Dateisystem der Partition gecheckt werden soll. An dieser Stelle vergibt man eine 1 für die Root-Partition, eine 2 für alle weiteren Partitionen die gecheckt werden sollen und eine 0 für alle Partitionen die nicht gecheckt werden sollen oder können (z. B. CD-Rom oder andere Wechseldatenträger).
**In der zweiten Zeile** wird das Gerät ''/dev/hdc'' nach ''/media/cdrom'' gemountet. Das Dateisystem ist iso9660, welches das Standarddateisystem für CD-ROMs ist. Es werden die Optionen ''ro'' (read only=nur lesbar), ''noauto'' (nicht beim booten mounten) und ''user'' (darf durch normale User gemountet werden) angegeben. Die Option ''user'' ist also dafür zuständig, normalen Usern Mountrechte zu geben. "''dump''" und ein möglicher Filesystemcheck werden hier nicht berücksichtigt, was bei CD-Roms auch gar nicht möglich wäre.
Wenn ich nun eine ext3 formatierte USB-Festplatte habe, welche vom System als sda1 erkannt wird, könnte ich meine fstab folgendermassen ergänzen:
/dev/sda1 /media/usbplatte ext3 rw,user,noauto 0 0
In diesem Fall kann ich als normaler Benutzer die USB-Festplatte mit einem verkürzten Mountbefehl einhängen:
mount /media/usbplatte
Die weiteren Angaben, werden aus der ''/etc/fstab'' entnommen.
Mit dem Befehl
cat /proc/mounts
oder durch Aufruf des Mount-Befehls kann man detaillierte Informationen zu den aktuell gemounteten Dateisystemen einsehen.
===== Gerätenamen =====
Unter Linux wird jedes Gerät durch eine Datei symbolisiert.
Dies sollte nicht mit dem Treiber verwechselt werden. IDE-Geräte, wie Festplatten und CD-Rom Laufwerke fangen stets mit den Buchstaben hd als Gerätebezeichnung an. Danach folgt ein weiterer Buchstabe, der angibt das wievielte Gerät im System gemeint ist.
Bei **Ide-Geräten**, bei denen wie vielleicht bekannt ist, jeweils 2 Geräte (Master und Slave) an einen IDE-Controller angeschlossen werden können, gilt: hda ist der Master am ersten IDE-Controller und hdb ist der Slave am ersten IDE-Controller. Dementsprechend ist hdc der Master am zweiten IDE-Controller und hdd der Slave am zweiten IDE-Controller.
**SCSI-Festplatten** beginnen mit sd. Dementsprechend ist sda die erste SCSI-Festplatte im System und sdb die zweite SCSI-Festplatte im System. SATA und USB-Laufwerke werden ebenfalls als SCSI-Laufwerke vom System behandelt. Für Partitionen auf diesen Datenträgern wird eine Zahl an das Gerät angehängt. hda1 ist also die erste Partition auf dem Master des ersten IDE-Controllers.
[[Dos:Dos]]-artige Partitionierungsschemas können bis zu 4 primäre Partitionen enthalten, von denen eine eine erweiterte Partition sein kann, welche nochmals max. 16 logische Partitionen enthalten kann. Da dies eigentlich keine Grenze von [[Dos:Dos]]/[[Windows:Windows]] ist, sondern von der x86 Hardware allgemein, gilt dies auch für Linux. Logische Partitionen, die in einer erweiterten Partition liegen fangen ihre Partitionsnummer daher immer mit 5 an zu zählen, selbst wenn es weniger als 4 primäre Partitionen im System geben sollte. /dev/hda6 steht also für die 2. logische Partition in einer erweiterten Partition des Laufwerks hda.
^ Gerät ^ im Vergleich zu Windows ^
^ hda ^ 1.IDE-Festplatte ^
| hda1 | **C:** (primäre Part.) |
| hda5 | erweiterte Part. |
| hda6 | **E:** (logisches Laufwerk) |
^ hdb ^ 2.IDE-Festplatte ^
| hdb1 | **D:** (primäre Part.) |
^ anderere Typen ^^
| sda | 1. SATA-Festplatte oder USB-Geräte (z.B. Stick) |
| hdc | CD/DVD-Laufwerk am 2. EIDE-Controller |
| pdc_* | Promise-Host-RAID-Partition |
| isw_* | Intel-Host-RAID-Partition |
| via_* | Via-Host-RAID-Partition |
Wie man sieht geht die Bennung der Laufwerksbuchstaben bei Windows erst nach den primären Partitionen und nicht dem physikalischen Anschluß.
===== neue Notation durch udev =====
Bei aktuellen [[distributionen und Live-cds|Distributionen]] und [[linux:Kernel]]versionen werden Datenträger nicht mehr anhand ihrer logischen Benennung (/dev/sda1 usw.) sondern anhand einer eindeuten [[UUID]] angesprochen.
Das ermöglicht die Einrichtung eigener Regeln bei wechselnden Datenträgern. Wenn
sich allerdings die [[UUID]] ändert muss man diese im Boot-manager eintragen.
Der Befehl
blkid
listet die aktuellen [[UUID]] auf, diese trägt man dann in ''/boot/grub/menu.lst'' und ''/etc/fstab'' ein.
Außerdem kann der Datenträger auch über die ID, das Label, den (Bus-) Pfad angesprochen werden, so dass die Gerätedateien in den Verzeichnissen
- /dev/disk/by-id
- /dev/disk/by-label
- /dev/disk/by-path
- /dev/disk/by-uuid
liegen und über diese die Geräte ansprechbar sind.
Näheres auf der [[udev|Seite zu udev]].
==== Links zu udev ====
* **[[udev]]**
* [[http://frappuccino.pvb.li/doku.php?id=linux:debian:udev|udev auf frappuccino.pvb.li]]
* [[http://www.reactivated.net/writing_udev_rules.html|Writing udev rules]]
===== Datenträger erneut einhängen =====
Mount bietet die Möglichkeit einen aktuelle eingehängten Datenträger mit anderen Optionen erneut einzuhängen.
mount -o remount,noatime /
Hier wird die Option noatime (keine Zugriffszeitstempel schreiben) eingestellt.
Sinnvoll ist dieses "remounten" wenn die aktuellen Einstellungen nicht gewünscht sind oder unsicher sind usw.
:!: mit ''mount -a'' werden alle Datenträger in der /etc/fstab eingehängt.
===== Abbilder/Images mounten =====
man kann mit dem normalen mount-Befehl auch (iso-)Abbilder einhängen:
mount [Pfad+iso-Datei] [Mountpoint] -t [Dateisystem, meist "iso9660"] -o loop
Angaben in eckigen Klammern muss man natürlich durch die eigenen Werte ersetzen.\\
__**Beispiel:**__
mount /media/usbdisk/isodatei.iso /home/username/iso/ -t iso9660 -o loop
:!: übrigens kann man mit dem Programm nrg2iso (für Linux und Windows) aus Nero-Abbildern iso9660-Abbilder erstellen.
===== RAMdisk anlegen =====
Eine RAMdisk (Datenträger im Arbeitsspeicher) läßt sich mit Bordmitteln relativ leicht anlegen.
Folgender Eintrag in der ''/etc/fstab'' genügt:
none /MOUNT-ORT tmpfs defaults,noexec,nodev,nosuid,noatime,size=50m,mode=770,uid=0,gid=0 0 0
Die Daten sind beim Herunterfahren des Betriebssystems natürlich weg.
===== Netware Laufwerke unter Linux einhängen =====
**__Vorarbeiten:__**
* die mount-Verzeichnisse anlegen /mnt/ ...
* username mit dem eigenen Namen ersetzen
* Textdatei mit folgendem Inhalt anlegen:
#!/bin/bash
echo -n "Pw: "
read -s pw
ncpmount -u 1000 -g 100 -S SERVERNAME -A S5 -U BENUTZERNAME -P $pw -V Vol1/User/BENUTZERNAME /mnt/BENUTZERNAME
* diese Textdatei ausführbar machen, entweder über Dateimanager oder ''chmod +x Dateiname'' in der Konsole
* Datei ausführen (Konsole: ''./Dateiname'')