Wie erstelle ich ein virtuelles Dateisystem richtig?

10

Eine Aufgabe in meiner Hausaufgabe fordert mich auf, ein virtuelles Dateisystem zu erstellen, es bereitzustellen und einige Vorgänge daran auszuführen.

Ich soll eine Datei von 10 MB erstellen, deren Bits alle gesetzt sind 0, sie als ext3 formatieren und einbinden. So habe ich das gemacht:

dd if=/dev/zero of=~/filesyst bs=10485760 count=1
sudo mkfs.ext3 ~/filesyst
sudo mount –o loop ~/filesyst /media/fuse

Obwohl ich /dev/zerodie Datei verwendet habe , bin ich immer noch voller Kauderwelsch-Zeichen (meistens At-Signs). Die Berechtigungen für /media/fusesind drw-rw-rw-(die in Ordnung sind), aber die Berechtigungen für die darin enthaltenen Dateien sind ungefähr so:

d????????? ? ? ? ?          ? lost+found
-????????? ? ? ? ?          ? secret_bin

Wo bin ich falsch gelaufen?

Paul
quelle
Ich denke, das Problem hängt mit Ihrem Befehl mkfs.ext3 zusammen. IIRC, Es gibt verschiedene Argumente, die Sie verwenden müssen, wenn Sie dies für eine Datei anstelle eines Geräts tun.
user606723
1
Vielleicht irre ich mich, laut adamsinfo.com/… machst du es richtig. Können Sie versuchen, den genauen Befehlen in dieser URL zu folgen und festzustellen, ob Sie noch Probleme haben?
user606723
Versuchen Sie auchmkfs.ext3 -F ~/filesyst
user606723
@ user606723 Danke, ich habe es gelöst. Das Problem war das bsund countArgumente. Wenn ich schreibe bs=1MiB count=10, wie in dem Link, den Sie gepostet haben, funktioniert es.
Paul
1
Übrigens müssen Sie die Datei nicht mit Nullen füllen. Sie können einfach eine leere Datei beliebiger Größe mit erstellen truncate -s 400m filesyst. Der Unterschied besteht darin, dass bis Sie tatsächlich Daten in die Datei schreiben, kein Speicherplatz auf der Festplatte belegt wird. Sie können also ein virtuelles Dateisystem erstellen, das größer als Ihr gesamtes Festplattenlaufwerk ist, solange Sie nicht versuchen, es tatsächlich zu füllen . Sie können sehen, mit wie viel Speicherplatz die Datei tatsächlich belegt du -h filesyst.
Psusi

Antworten:

6

Hmmm ... der richtige Weg ist:

dd if=/dev/zero of=./filesyst bs=10485760 count=1
sudo losetup /dev/loop0 ./filesyst
sudo mkfs.ext3 /dev/loop0
sudo mount /dev/loop0 /tmp/lalla

und es funktioniert:

(0)romano-asus:~/tmp% ls -l /tmp/lalla
total 12
drwx------ 2 root root 12288 2011-12-20 22:21 lost+found
(0)romano-asus:~/tmp% df /tmp/lalla
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/loop0                9911      1121      8278  12% /tmp/lalla

Sie sollten das erste freie Loop-Gerät mit überprüfen losetup -f.

Rmano
quelle