16.12. Netzwerk-, speicher- und dateibasierte Dateisysteme

Verbessert und neu strukturiert von Marc Fonvieille.

Neben Laufwerken, die sich physikalisch im Rechner befinden wie Floppylaufwerke, CDs, Festplatten usw., kann FreeBSD auch mit anderen Laufwerken, den virtuellen Laufwerken, umgehen.

Dazu zählen Netzwerkdateisysteme wie Network Filesystem und Coda, speicher- und dateibasierte Dateisysteme.

Abhängig von der verwendeten FreeBSD Version werden speicher- und dateibasierte Dateisysteme mit unterschiedlichen Werkzeugen angelegt.

Anmerkung: In FreeBSD 4.X werden Gerätedateien mit MAKEDEV(8) angelegt. FreeBSD 5.X erzeugt Gerätedateien automatisch mithilfe von devfs(5).

16.12.1. Dateibasierte Laufwerke unter FreeBSD 4.X

Mit vnconfig(8) werden vnode Pseudo-Platten konfiguriert und aktiviert. Ein vnode stellt eine Datei dar, auf der Dateioperationen ablaufen. Das bedeutet, dass vnconfig(8) Dateien benutzt, um ein Dateisystem zu erstellen und zu verwalten. Damit ist es z.B. möglich, Dateien, die Abbilder von Floppies oder CDs enthalten, anzuhängen.

In der Kernelkonfiguration muss die vn(4)-Unterstützung aktiviert sein, damit vnconfig(8) funktioniert:

pseudo-device vn

Um ein existierendes Abbild eines Dateisystems einzuhängen:

Beispiel 16-4. Einhängen eines existierenden Abbildes unter FreeBSD 4.X

# vnconfig vn0 diskimage
# mount /dev/vn0c /mnt

Um ein neues Dateisystem mit vnconfig(8) anzulegen:

Beispiel 16-5. Anlegen eines dateibasierten Laufwerks

# dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
# vnconfig -s labels -c vn0 newimage
# disklabel -r -w vn0 auto
# newfs vn0c
Warning: 2048 sector(s) in last cylinder unallocated
/dev/vn0c:     10240 sectors in 3 cylinders of 1 tracks, 4096 sectors
        5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g)
super-block backups (for fsck -b #) at:
 32
# mount /dev/vn0c /mnt
# df /mnt
Filesystem  1K-blocks     Used    Avail Capacity  Mounted on
/dev/vn0c        4927        1     4532     0%    /mnt

16.12.2. Dateibasierte Laufwerke unter FreeBSD 5.X

Unter FreeBSD 5.0 werden virtuelle Laufwerke (md(4)) mit mdconfig(8) erzeugt. Dazu muss das Modul md(4) geladen sein oder das entsprechende Gerät in der Kernelkonfiguration aktiviert sein:

device md

Mit mdconfig(8) können drei verschiedene virtuelle Laufwerke angelegt werden: speicherbasierte Laufwerke, deren Speicher von malloc(9) zur Verfügung gestellt wird, oder dateibasierte Laufwerke, deren Speicher von einer Datei oder dem Swap-Bereich zur Verfügung gestellt wird. Eine mögliche Anwendung ist das Einhängen von Dateien, die Abbilder von CD-ROMs oder Floppies enthalten.

Das Abbild eines Dateisystems wird wie folgt eingehangen:

Beispiel 16-6. Einhängen eines existierenden Abbildes unter FreeBSD 5.X

# mdconfig -a -t vnode -f diskimage -u 0
# mount /dev/md0 /mnt

Ein neues Dateisystem-Abbild erstellen Sie mit mdconfig(8) wie folgt:

Beispiel 16-7. Erstellen eines dateibasierten Laufwerks mit mdconfig

# dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
# mdconfig -a -t vnode -f newimage -u 0
# disklabel -r -w md0 auto
# newfs md0c
/dev/md0c: 5.0MB (10240 sectors) block size 16384, fragment size 2048
    using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes.
super-block backups (for fsck -b #) at:
 32, 2624, 5216, 7808
# mount /dev/md0c /mnt
# df /mnt
Filesystem  1K-blocks     Used    Avail Capacity  Mounted on
/dev/md0c        4846        2     4458     0%    /mnt

Wenn Sie keine Gerätenummer mit dem Schalter -u angeben, wird von md(4) automatisch eine ungenutzte Gerätenummer zugewiesen. Das zugewiesene Gerät wird auf der Standardausgabe ausgegeben (zum Beispiel md4). Weitere Informationen entnehmen Sie bitte der Hilfeseite mdconfig(8).

Anmerkung: Ab FreeBSD 5.1-RELEASE wurde disklabel(8) durch bsdlabel(8) ersetzt. In bsdlabel wurden veraltete Optionen entfernt. Entfernen Sie die Option -r in den obigen Beispielen, wenn Sie bsdlabel verwenden. Weiteres entnehmen Sie bitte der Hilfeseite bsdlabel(8).

Das Werkzeug mdconfig(8) ist sehr nützlich, doch muss man viele Kommandos absetzen, um ein dateibasiertes Dateisystem zu erstellen. FreeBSD enthält das Werkzeug mdmfs(8), das die notwendigen Schritte in einem Befehl zusammenfasst. Es konfiguriert mit mdconfig(8) ein md(4)-Laufwerk, erstellt darauf mit newfs(8) ein Dateisystem und hängt es anschließend mit mount(8) ein. Das virtuelle Laufwerk aus dem obigen Beispiel kann somit einfach mit den nachstehenden Befehlen erstellt werden:

Beispiel 16-8. Mit mdmfs ein dateibasiertes Dateisystem erstellen

# dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
# mdmfs -F newimage -s 5m md0 /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity  Mounted on
/dev/md0        4846    2  4458     0%    /mnt

Wenn sie die Option md ohne Gerätenummer verwenden, wählt md(4) automatisch ein ungenutztes Gerät aus. Weitere Einzelheiten entnehmen Sie bitte der Hilfeseite mdmfs(8).

16.12.3. Speicherbasierte Laufwerke unter FreeBSD 4.X

Mit dem Gerätetreiber md(4) lassen sich unter FreeBSD 4.X leicht speicherbasierte Laufwerke (RAM-disks) anlegen. Der dazu nötige Speicher wird mit malloc(9) belegt.

Nehmen Sie einfach ein Dateisystem, dass Sie z.B. mit vnconfig(8) vorbereitet haben:

Beispiel 16-9. Speicherbasiertes Laufwerk unter FreeBSD 4.X

# dd if=newimage of=/dev/md0
5120+0 records in
5120+0 records out
# mount /dev/md0c /mnt
# df /mnt
Filesystem  1K-blocks     Used    Avail Capacity  Mounted on
/dev/md0c        4927        1     4532     0%    /mnt

Weitere Einzelheiten entnehmen Sie bitte der Hilfeseite md(4).

16.12.4. Speicherbasierte Laufwerke unter FreeBSD 5.X

Speicher- und dateibasierte Laufwerke werden in FreeBSD 5.0 mit denselben Werkzeugen erstellt: mdconfig(8) oder mdmfs(8). Der Speicher für speicherbasierte Laufwerke (RAM-disks) wird mit malloc(9) belegt.

Beispiel 16-10. Erstellen eines speicherbasierten Laufwerks mit mdconfig

# mdconfig -a -t malloc -s 5m -u 1
# newfs -U md1
/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
    using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes.
    with soft updates
super-block backups (for fsck -b #) at:
 32, 2624, 5216, 7808
# mount /dev/md1 /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity  Mounted on
/dev/md1        4846    2  4458     0%    /mnt

Beispiel 16-11. Erstellen eines speicherbasierten Laufwerks mit mdmfs

# mdmfs -M -s 5m md2 /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity  Mounted on
/dev/md2        4846    2  4458     0%    /mnt

Der Speicher für das Dateisystem muss nicht mit malloc(9) zugewiesen werden, sondern kann auch aus dem Swap-Bereich stammen. Auf der Kommandozeile von mdconfig(8) ist dazu malloc durch swap zu ersetzen. Ohne Angabe des Schalters -M verwendet mdmfs(8) Speicher aus dem Swap-Bereich. Weitere Informationen entnehmen Sie bitte den Hilfeseiten mdconfig(8) und mdmfs(8).

16.12.5. Virtuelle Laufwerke freigeben

Wenn ein virtuelles Laufwerk nicht mehr gebraucht wird, sollten Sie dem System die belegten Ressourcen zurückgeben. Hängen Sie dazu zuerst das Dateisystem ab und geben Sie dann die benutzten Ressourcen mit mdconfig(8) frei.

Alle von /dev/md4 belegten Ressourcen werden mit dem nachstehenden Kommando freigegeben:

# mdconfig -d -u 4

Eingerichtete md(4)-Geräte werden mit dem Befehl mdconfig -l angezeigt.

Unter FreeBSD 4.X geben Sie die Ressourcen mit vnconfig(8) frei. Die von /dev/vn4 belegten Ressourcen geben Sie wie folgt frei:

# vnconfig -u vn4

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 17:56:55