Nächste: Swap-Speicher, Vorige: Dateisysteme, Nach oben: Systemkonfiguration [Inhalt][Index]
Der Linux-Kernel unterstützt das Konzept der Gerätezuordnung: Ein
blockorientiertes Gerät wie eine Festplattenpartition kann einem neuen Gerät
zugeordnet werden, gewöhnlich unter /dev/mapper/
, wobei das
neue Gerät durchlaufende Daten zusätzlicher Verarbeitung unterzogen
werden30. Ein typisches Beispiel ist eine
Gerätezuordnung zur Verschlüsselung: Jeder Schreibzugriff auf das
zugeordnete Gerät wird transparent verschlüsselt und jeder Lesezugriff
ebenso entschlüsselt. Guix erweitert dieses Konzept, indem es darunter jedes
Gerät und jede Menge von Geräten versteht, die auf irgendeine Weise
umgewandelt wird, um ein neues Gerät zu bilden; zum Beispiel entstehen
auch RAID-Geräte aus einem Verbund mehrerer anderer Geräte, wie etwa
Festplatten oder Partition zu einem einzelnen Gerät, das sich wie eine
Partition verhält.
Zugeordnete Geräte werden mittels einer mapped-device
-Form
deklariert, die wie folgt definiert ist; Beispiele folgen weiter unten.
Objekte dieses Typs repräsentieren Gerätezuordnungen, die gemacht werden, wenn das System hochfährt.
source
Es handelt sich entweder um eine Zeichenkette, die den Namen eines
zuzuordnenden blockorientierten Geräts angibt, wie "/dev/sda3"
, oder
um eine Liste solcher Zeichenketten, sofern mehrere Geräts zu einem neuen
Gerät verbunden werden. Im Fall von LVM ist es eine Zeichenkette, die den
Namen der zuzuordnenden Datenträgergruppe (Volume Group) angibt.
target
Diese Zeichenkette gibt den Namen des neuen zugeordneten Geräts an. Bei
Kernel-Zuordnern, wie verschlüsselten Geräten vom Typ
luks-device-mapping
, wird durch Angabe von "my-partition"
ein
Gerät "/dev/mapper/my-partition"
erzeugt. Bei RAID-Geräten vom Typ
raid-device-mapping
muss der Gerätename als voller Pfad wie zum
Beispiel "/dev/md0"
angegeben werden. Logische Datenträger von LVM
(„LVM logical volumes“) vom Typ lvm-device-mapping
müssen angegeben
werden als "DATENTRÄGERGRUPPENNAME-LOGISCHERDATENTRÄGERNAME"
.
targets
Diese Liste von Zeichenketten gibt die Namen der neuen zugeordneten Geräte an, wenn es mehrere davon gibt. Das Format ist mit target identisch.
type
Dies muss ein mapped-device-kind
-Objekt sein, das angibt, wie die
Quelle source dem Ziel target zugeordnet wird.
Hiermit wird ein blockorientiertes Gerät mit LUKS verschlüsselt, mit Hilfe
des Befehls cryptsetup
aus dem gleichnamigen Paket. Dazu wird das
Linux-Kernel-Modul dm-crypt
vorausgesetzt.
Dies definiert ein RAID-Gerät, das mit dem Befehl mdadm
aus dem
gleichnamigen Paket als Verbund zusammengestellt wird. Es setzt voraus, dass
das Linux-Kernel-Modul für das entsprechende RAID-Level geladen ist, z.B.
raid456
für RAID-4, RAID-5 oder RAID-6, oder raid10
für
RAID-10.
Hiermit wird ein oder mehrere logische Datenträger („Logical Volumes“) für
den Logical Volume Manager (LVM)
für Linux definiert. Die Datenträgergruppe („Volume Group“) wird durch den
Befehl vgchange
aus dem lvm2
-Paket aktiviert.
Das folgende Beispiel gibt eine Zuordnung von /dev/sda3 auf
/dev/mapper/home mit LUKS an – dem
Linux Unified Key Setup,
einem Standardmechanismus zur Plattenverschlüsselung. Das Gerät
/dev/mapper/home kann dann als device
einer
file-system
-Deklaration benutzt werden (siehe Dateisysteme).
(mapped-device
(source "/dev/sda3")
(target "home")
(type luks-device-mapping))
Um nicht davon abhängig zu sein, wie Ihre Geräte nummeriert werden, können Sie auch die LUKS-UUID (unique identifier, d.h. den eindeutigen Bezeichner) des Quellgeräts auf der Befehlszeile ermitteln:
cryptsetup luksUUID /dev/sda3
und wie folgt benutzen:
(mapped-device
(source (uuid "cb67fc72-0d54-4c88-9d4b-b225f30b0f44"))
(target "home")
(type luks-device-mapping))
Es ist auch wünschenswert, Swap-Speicher zu verschlüsseln, da in den Swap-Speicher sensible Daten ausgelagert werden können. Eine Möglichkeit ist, eine Swap-Datei auf einem mit LUKS-Verschlüsselung zugeordneten Dateisystem zu verwenden. Dann wird die Swap-Datei verschlüsselt, weil das ganze Gerät verschlüsselt wird. Ein Beispiel finden Sie im Abschnitt Swap-Speicher oder im Abschnitt Disk Partitioning.
Ein RAID-Gerät als Verbund der Partitionen /dev/sda1 und /dev/sdb1 kann wie folgt deklariert werden:
(mapped-device
(source (list "/dev/sda1" "/dev/sdb1"))
(target "/dev/md0")
(type raid-device-mapping))
Das Gerät /dev/md0 kann als device
in einer
file-system
-Deklaration dienen (siehe Dateisysteme). Beachten
Sie, dass das RAID-Level dabei nicht angegeben werden muss; es wird während
der initialen Erstellung und Formatierung des RAID-Geräts festgelegt und
später automatisch bestimmt.
Logische Datenträger von LVM namens „alpha“ und „beta“ aus der Datenträgergruppe (Volume Group) „vg0“ können wie folgt deklariert werden:
(mapped-device
(source "vg0")
(targets (list "vg0-alpha" "vg0-beta"))
(type lvm-device-mapping))
Die Geräte /dev/mapper/vg0-alpha und /dev/mapper/vg0-beta
können dann im device
-Feld einer file-system
-Deklaration
verwendet werden (siehe Dateisysteme).
Beachten Sie, dass mit GNU Hurd kein Unterschied zwischen dem Konzept eines „zugeordneten Geräts“ und dem eines Dateisystems besteht: Dort werden bei beiden Ein- und Ausgabeoperationen auf eine Datei in Operationen auf dessen Hintergrundspeicher übersetzt. Hurd implementiert zugeordnete Geräte genau wie Dateisysteme mit dem generischen Übersetzer-Mechanismus (siehe Translators in Referenzhandbuch von GNU Hurd).
Nächste: Swap-Speicher, Vorige: Dateisysteme, Nach oben: Systemkonfiguration [Inhalt][Index]