Erstellen Sie einen Dateibild-Container


23

Ich möchte eine 100GB-Datei als Dateisystem erstellen. Die Datei wird auf einem verschlüsselten Datenträger gespeichert, sodass die Datei / das Dateisystem selbst nicht (weiter) verschlüsselt werden muss. Die Suche hat viele verschiedene Methoden ergeben, um dies zu tun. Manche verwenden losetup, manche nicht. Ist das Folgende eine akzeptable Methode?

$ dd if=/dev/zero of=~/theFile.img bs=1M count=10240
$ mkfs.ext4 ~/theFile.img   # will prompt about block special device
$ sudo mount -o loop ~/theFile.img /media/mountPoint

3
Abgesehen davon, dass ich eine 10 GB-Datei anstelle von 100 GB erstellt habe, hat die Änderung der Anzahl auf 102400 meine Anforderungen erfüllt :)

Antworten:


9
  1. BS und COUNT sollten Kleinbuchstaben sein:

    dd if=/dev/zero of=~/theFile.img bs=1M count=10240

  2. Sie müssen das Verzeichnis / media / MountPoint erstellen, falls es noch nicht vorhanden ist:

    sudo mkdir -p /media/MountPoint

Abgesehen von diesen beiden Dingen sollte das, was Sie dort haben, funktionieren.

In der Regel ist es besser, explizit zu sein, als sich auf implizites Verhalten zu verlassen. Daher möchten Sie möglicherweise die Mount-Zeile ändern in:

sudo mount -t ext4 -o loop ~/theFile.img /media/mountPoint


2
Danke für die Korrekturen. Es war die Min 1Mdem hatte Groß zu sein. Ich weiß nicht, warum bsund auch countin Großbuchstaben. Danke für die Verbesserung mount.
SabreWolfy

Ich habe eine vorgeschlagene Bearbeitung meiner Frage akzeptiert, um den Fehler in Großbuchstaben zu korrigieren und explizit ein Schleifengerät in der zu spezifizieren mount.
SabreWolfy

5

Abgesehen von den Großbuchstaben in den ddOptionen und ohne die loopOption in mount, finde ich das vollkommen gültig. mkfswarnt Sie, dass kein Blockgerät verwendet wird, um sicherzustellen, dass Sie wissen, was Sie tun.

Wie auch immer, am Ende werden Sie ein Loop-Gerät verwenden:

$ dd if=/dev/zero of=~/theFile.img bs=1M count=10
$ /sbin/mkfs.ext4 theFile.img
$ sudo mount -o loop theFile.img /mnt/tmp/
$ df -h

/dev/loop0            9,7M  1,1M  8,1M  12% /mnt/tmp

1
Das -o loopkann oder kann nicht erforderlich sein ... hängt von der Version der Halterung ab. Meine aktuelle Version erfordert es nicht, aber ich erinnere mich, dass ich es in der Vergangenheit spezifizieren musste. Dennoch, wie ich schon sagte - es ist besser, explizit als implizit in Skripten zu sein, dient als Dokumentation für WTF. Habe ich nachgedacht, als ich das getan habe?
cas

Einverstanden. (Hinweis: Ich verwende Mount 2.17.2-9 aus dem aktuellen Debian-Stable)
rpet
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.