Linux unterstützt ein spezielles Blockgerät namens Loop-Gerät, das eine normale Datei auf ein virtuelles Blockgerät abbildet. Dadurch kann die Datei als „virtuelles Dateisystem“ innerhalb einer anderen Datei verwendet werden. Mit Linux ist es möglich, ein Dateisystem in einer einzigen Datei zu erstellen. Diese Speichergeräte sind als Gerätedateien wie /dev/Gerätename verfügbar .
Erstellen Sie eine Datei
1. Der erste Schritt besteht darin, eine Datei der gewünschten Größe zu erstellen. Der folgende Befehl erstellt eine Datei mit einer Größe von 1 GB:
# dd if=/dev/zero of=loopbackfile.img bs=100M count=10 10+0 records in 10+0 records out 1048576000 bytes (1.0 GB) copied, 1.26748 s, 827 MB/s
2. Überprüfen Sie die Größe der gerade erstellten Datei.
# du -sh loopbackfile.img 1000M loopbackfile.img
Erstellen Sie das Loop-Gerät
1. Der nächste Schritt besteht darin, ein Loop-Gerät mit der Datei zu erstellen. Verwenden Sie den Befehl „losetup “, um ein Loop-Gerät „loop0“ zu erstellen
# losetup -fP loopbackfile.img
Hier
-f – Suchen Sie das erste unbenutzte Loop-Gerät. Wenn ein Dateiargument vorhanden ist, verwenden Sie dieses Gerät. Geben Sie andernfalls seinen Namen aus.
-P – zwingt den Kernel, die Partitionstabelle auf dem neu erstellten Loop-Gerät zu scannen.
2. Um das mit dem obigen Befehl generierte Loop-Gerät zu drucken, verwenden Sie „losetup -a“.
# losetup -a /dev/loop0: [64769]:4199216 (/root/loopbackfile.img)
Erstelle das Dateisystem
1. Lassen Sie uns nun ein ext4-Dateisystem auf dem Loopback-Gerät erstellen.
# mkfs.ext4 /root/loopbackfile.img mke2fs 1.42.9 (28-Dec-2013) /root/loopbackfile.img is not a block special device. Proceed anyway? (y,n) y Discarding device blocks: done Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 64000 inodes, 256000 blocks 12800 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=262144000 8 block groups 32768 blocks per group, 32768 fragments per group 8000 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: done Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done
Mounten Sie das Loopback-Dateisystem
1. Wir können jetzt das Loopback-Dateisystem in ein Verzeichnis einhängen. Die „-o-Schleife ” zusätzliche Option wird verwendet, um Loopback-Dateisysteme zu mounten.
# mkdir /loopfs # mount -o loop /dev/loop0 /loopfs
2. Überprüfen Sie die Größe des neuen Einhängepunkts und den Typ des Dateisystems mit den folgenden Befehlen.
# df -hP /loopfs/ Filesystem Size Used Avail Use% Mounted on /dev/loop1 969M 2.5M 900M 1% /loopfs
# mount | grep loopfs /dev/loop0 on /loopfs type ext4 (rw,relatime,seclabel,data=ordered)
Loop-Gerät wird entfernt
Wenn Sie das neue Dateisystem entfernen möchten, führen Sie die folgenden Schritte aus:
1. Umounten und löschen Sie das Verzeichnis /loopfs
umount /loopfs rmdir /loopfs
2. Löschen Sie das Loopback-Gerät „loop0“, das mit dem Befehl „losetup -d“ erstellt wurde.
# losetup -d /dev/loop0
3. Entfernen Sie schließlich die Datei „/root/loopbackfile.img“, die zum Erstellen des Loop-Geräts verwendet wurde.
# rm /root/loopbackfile.img
Encryption on loop filesystem aktivieren
„losetup“ ermöglicht auch die Aktivierung der Datenverschlüsselung, um ein verschlüsseltes Dateisystem zu erhalten. Die Syntax zum Erstellen eines Geräts mit verschlüsselter Schleife lautet wie folgt:
# losetup [ -e encryption ] loop_device file
Die folgenden Verschlüsselungsalgorithmen werden akzeptiert:
- KEINE keine Verschlüsselung verwenden (Standard).
- XOR eine einfache XOR-Verschlüsselung verwenden.
- DES DES-Verschlüsselung verwenden.
Die DES-Verschlüsselung ist nur verfügbar, wenn das optionale DES-Paket zum Kernel hinzugefügt wurde. Die DES-Verschlüsselung verwendet einen zusätzlichen Startwert, der verwendet wird, um Passwörter vor Wörterbuchangriffen zu schützen.
Maximal zulässige Lopback-Geräte
Beim Erstellen von mehr als 8 Loopback-Geräten erhalten Sie möglicherweise die Fehlermeldung „Kein solches Gerät“. Dies geschieht, weil Sie durch die Anzahl der verfügbaren Loop-Geräte begrenzt sind. Fügen Sie je nach System „options loop max_loop=X“ zu /etc/modprobe.conf auf CentOS/RHEL 5 hinzu oder erstellen Sie eine neue Datei mit dem Namen disk.conf im Verzeichnis /etc/modprobe.d auf CentOS/RHEL 6. (Wobei X die Anzahl der Loop-Geräte ist, die Sie benötigen).