Nächste: Zugeordnete Geräte, Vorige: „operating-system“-Referenz, Nach oben: Systemkonfiguration [Inhalt][Index]
Die Liste der Dateisysteme, die eingebunden werden sollen, steht im
file-systems
-Feld der Betriebssystemdeklaration (siehe Das Konfigurationssystem nutzen). Jedes Dateisystem wird mit der
file-system
-Form deklariert, etwa so:
(file-system
(mount-point "/home")
(device "/dev/sda3")
(type "ext4"))
Wie immer müssen manche Felder angegeben werden — die, die im Beispiel oben stehen —, während andere optional sind. Die Felder werden nun beschrieben.
Objekte dieses Typs repräsentieren einzubindende Dateisysteme. Sie weisen folgende Komponenten auf:
type
Eine Zeichenkette, die den Typ des Dateisystems spezifiziert, z.B.
"ext4"
.
mount-point
Der Einhängepunkt, d.h. der Pfad, an dem das Dateisystem eingebunden werden soll.
device
Hiermit wird die „Quelle“ des Dateisystems bezeichnet. Sie kann eines von drei Dingen sein: die Bezeichnung („Labels“) eines Dateisystems, die UUID-Kennung des Dateisystems oder der Name eines /dev-Knotens. Mit Bezeichnungen und UUIDs können Sie Dateisysteme benennen, ohne den Gerätenamen festzuschreiben25.
Dateisystem-Bezeichnungen („Labels“) werden mit der Prozedur
file-system-label
erzeugt und UUID-Kennungen werden mit uuid
erzeugt, während Knoten in /dev mit ihrem Pfad als einfache
Zeichenketten aufgeführt werden. Hier ist ein Beispiel, wie wir ein
Dateisystem anhand seiner Bezeichnung aufführen, wie sie vom Befehl
e2label
angezeigt wird:
(file-system
(mount-point "/home")
(type "ext4")
(device (file-system-label "my-home")))
UUID-Kennungen werden mit der uuid
-Form von ihrer Darstellung als
Zeichenkette (wie sie vom Befehl tune2fs -l
angezeigt wird)
konvertiert26 wie
hier:
(file-system
(mount-point "/home")
(type "ext4")
(device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))
Wenn die Quelle eines Dateisystems ein zugeordnetes Gerät (siehe Zugeordnete Geräte) ist, muss sich das device
-Feld auf den zugeordneten
Gerätenamen beziehen — z.B. "/dev/mapper/root-partition". Das ist
nötig, damit das System weiß, dass das Einbinden des Dateisystems davon
abhängt, die entsprechende Gerätezuordnung hergestellt zu haben.
flags
(Vorgabe: '()
)Eine Liste von Symbolen, die Einbinde-Flags („mount flags“)
bezeichnen. Erkannt werden unter anderem read-only
,
bind-mount
, no-dev
(Zugang zu besonderen Dateien verweigern),
no-suid
(setuid- und setgid-Bits ignorieren), no-atime
(Dateizugriffs-Zeitstempel nicht aktualisieren), strict-atime
(Dateizugriffs-Zeitstempel immer aktualisieren), lazy-time
(Zeitstempel nur auf zwischengespeicherten Datei-Inodes im Arbeitsspeicher
aktualisieren) und no-exec
(Programmausführungen verweigern). Siehe
Mount-Unmount-Remount in Referenzhandbuch der GNU-C-Bibliothek
für mehr Informationen zu diesen Einbinde-Optionen.
options
(Vorgabe: #f
)Entweder #f
oder eine Zeichenkette mit Einbinde-Optionen („mount
options“), die an den Dateisystemtreiber übergeben werden. Siehe
Mount-Unmount-Remount in Referenzhandbuch der GNU-C-Bibliothek
für Details; führen Sie man 8 mount
aus, um die Einbinde-Optionen
verschiedener Dateisysteme zu sehen. Beachten Sie, dass die Prozeduren
file-system-options->alist
und alist->file-system-options
aus
(gnu system file-systems)
benutzt werden können, um als assoziative
Liste dargestellte Dateisystemoptionen in eine Darstellung als Zeichenkette
umzuwandeln und umgekehrt.
mount?
(Vorgabe: #t
)Dieser Wert zeigt an, ob das Dateisystem automatisch eingebunden werden
soll, wenn das System gestartet wird. Ist der Wert #f
, dann erhält
das Dateisystem nur einen Eintrag in der Datei /etc/fstab (welche vom
mount
-Befehl zum Einbinden gelesen wird), es wird aber nicht
automatisch eingebunden.
needed-for-boot?
(Vorgabe: #f
)Dieser boolesche Wert gibt an, ob das Dateisystem zum Hochfahren des Systems notwendig ist. In diesem Fall wird das Dateisystem eingebunden, wenn die initiale RAM-Disk (initrd) geladen wird. Für zum Beispiel das Wurzeldateisystem ist dies ohnehin immer der Fall.
check?
(Vorgabe: #t
)Dieser boolesche Wert sagt aus, ob das Dateisystem vor dem Einbinden auf Fehler hin geprüft werden soll.
create-mount-point?
(Vorgabe: #f
)Steht dies auf wahr, wird der Einhängepunkt vor dem Einbinden erstellt, wenn er noch nicht existiert.
mount-may-fail?
(Vorgabe: #f
)Wenn dies auf wahr steht, bedeutet es, dass das Einbinden dieses
Dateisystems scheitern kann, dies aber nicht als Fehler aufgefasst werden
soll. Das braucht man in besonderen Fällen, zum Beispiel wird es für
efivarfs
benutzt, einem Dateisystem, das nur auf EFI-/UEFI-Systemen
eingebunden werden kann.
dependencies
(Vorgabe: '()
)Dies ist eine Liste von <file-system>
- oder
<mapped-device>
-Objekten, die Dateisysteme repräsentieren, die vor
diesem Dateisystem eingebunden oder zugeordnet werden müssen (und nach
diesem ausgehängt oder geschlossen werden müssen).
Betrachten Sie zum Beispiel eine Hierarchie von Einbindungen: /sys/fs/cgroup ist eine Abhängigkeit von /sys/fs/cgroup/cpu und /sys/fs/cgroup/memory.
Ein weiteres Beispiel ist ein Dateisystem, was von einem zugeordneten Gerät abhängt, zum Beispiel zur Verschlüsselung einer Partition (siehe Zugeordnete Geräte).
Diese Prozedur kapselt die Zeichenkette in einer opaken Dateisystembezeichnung:
(file-system-label "home") ⇒ #<file-system-label "home">
Mit Dateisystembezeichnungen werden Dateisysteme anhand ihrer Bezeichnung („Label“) statt ihres Gerätenamens („Device Name“) identifiziert. Siehe die Beispiele oben.
Das Modul (gnu system file-systems)
exportiert die folgenden
nützlichen Variablen.
Hiermit werden essenzielle Dateisysteme bezeichnet, die für normale Systeme
unverzichtbar sind, wie zum Beispiel %pseudo-terminal-file-system
und
%immutable-store
(siehe unten). Betriebssystemdeklaration sollten auf
jeden Fall mindestens diese enthalten.
Das als /dev/pts einzubindende Dateisystem. Es unterstützt über
openpty
und ähnliche Funktionen erstellte Pseudo-Terminals
(siehe Pseudo-Terminals in Referenzhandbuch der
GNU-C-Bibliothek). Pseudo-Terminals werden von Terminal-Emulatoren wie
xterm
benutzt.
Dieses Dateisystem wird als /dev/shm eingebunden, um Speicher
zwischen Prozessen teilen zu können (siehe shm_open
in Referenzhandbuch der GNU-C-Bibliothek).
Dieses Dateisystem vollzieht einen „bind mount“ des /gnu/store, um
ihn für alle Nutzer einschließlich des Administratornutzers root
nur
lesbar zu machen, d.h. Schreibrechte zu entziehen. Dadurch kann als
root
ausgeführte Software, oder der Systemadministrator, nicht aus
Versehen den Store modifizieren.
Der Daemon kann weiterhin in den Store schreiben, indem er ihn selbst mit Schreibrechten in seinem eigenen „Namensraum“ einbindet.
Das binfmt_misc
-Dateisystem, durch das beliebige Dateitypen als
ausführbare Dateien auf der Anwendungsebene (dem User Space) zugänglich
gemacht werden können. Es setzt voraus, dass das Kernel-Modul
binfmt.ko
geladen wurde.
Das fusectl
-Dateisystem, womit „unprivilegierte“ Nutzer ohne
besondere Berechtigungen im User Space FUSE-Dateisysteme einbinden und
aushängen können. Dazu muss das Kernel-Modul fuse.ko
geladen sein.
Das Modul (gnu system uuid)
stellt Werkzeug zur Verfügung, um mit
eindeutigen Identifikatoren für Dateisysteme umzugehen (sogenannten „Unique
Identifiers“, UUIDs).
Liefert eine eindeutige UUID (Unique Identifier) als opakes Objekt des angegebenen Typs (ein Symbol), indem die Zeichenkette verarbeitet wird:
(uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb") ⇒ #<<uuid> type: dce bv: …> (uuid "1234-ABCD" 'fat) ⇒ #<<uuid> type: fat bv: …>
Als Typ kann entweder dce
, iso9660
, fat
,
ntfs
oder eines der üblichen Synonyme dafür angegeben werden.
UUIDs bieten eine andere Möglichkeit, sich in der Betriebssystemkonfiguration ohne Mehrdeutigkeiten auf eines der Dateisysteme zu beziehen. Siehe die Beispiele oben.
• Btrfs-Dateisystem |
Beachten Sie: Obwohl es verführerisch ist, mit /dev/disk/by-uuid und ähnlichen Gerätenamen dasselbe Resultat bekommen zu wollen, raten wir davon ab: Diese speziellen Gerätenamen werden erst vom udev-Daemon erzeugt und sind, wenn die Geräte eingebunden werden, vielleicht noch nicht verfügbar.
Die uuid
-Form nimmt 16-Byte-UUIDs entgegen, wie
sie in RFC 4122 definiert
sind. Diese Form der UUID wird unter anderem von der ext2-Familie von
Dateisystemen verwendet, sie unterscheidet sich jedoch zum Beispiel von den
„UUID“ genannten Kennungen, wie man sie bei FAT-Dateisystemen findet.
Nächste: Zugeordnete Geräte, Vorige: „operating-system“-Referenz, Nach oben: Systemkonfiguration [Inhalt][Index]