Das lokale Loopback-Dateisystem kann nicht formatiert werden

2525
Daniel Groves

Ich versuche, ein lokales Loopback-Dateisystem mit 40 GB ext3 zu erstellen. Dieses Loopback-Dateisystem ist auf meinem NAS gespeichert, der auf einem Ubuntu Precise 12.04 x64-Computer mit NFS eingehängt ist. Der Computer verfügt über Lese- und Schreibberechtigungen für den NAS.

Ich habe eine 40 GB-Datei erstellt, die beim Ausführen verwendet werden kann dd if=/dev/zero of=/media/vps/Ironman.ext3 bs=1024 count=40000000. Die Datei wurde erfolgreich erstellt, so dass ich als Loopback-System in /dev/loop0Betrieb bin sudo losetup /dev/loop0 /media/vps/Ironman.ext3.

Ich versuche jetzt, dies als ext3-Dateisystem zu formatieren sudo mkfs -t ext3 -q /media/vps/Ironman.ext3. Immer wenn ich diesen Befehl ausführe, erhalte ich folgende Ausgabe:

mke2fs 1.42 (29-Nov-2011) /media/vps/Ironman.ext3 is not a block special device. Proceed anyway? (y,n) y /media/vps/Ironman.ext3: Permission denied while setting up superblock 

Wie kann ich das umgehen und das Loopback-Gerät als ext3 formatieren?

Update 1

Ich habe gerade versucht, es mit dem Loopback-Gerät zu formatieren (siehe unten). Ich bekomme jedoch immer noch die Erlaubnis verweigert. Sie können im ersten Satz sehen, dass die Datei bereits eingehängt war.

danielsgroves@precise64:/dev$ sudo losetup /dev/loop0 /dev/loop0: [0015]:26378243 (/media/vps/Ironman.ext3) danielsgroves@precise64:/dev$ sudo mkfs -t ext3 -q /dev/loop0 /dev/loop0: Operation not permitted while setting up superblock 

Update 2

Mit ausführlicher Ausgabe

danielsgroves@precise64:/dev$ sudo mkfs -t ext3 -v /dev/loop0 mke2fs 1.42 (29-Nov-2011) fs_types for mke2fs.conf resolution: 'ext3' /dev/loop0: Operation not permitted while setting up superblock 
0
Versuchen Sie, -v anstelle von -q zu verwenden, um hoffentlich mehr Details darüber zu erhalten, was fehlschlägt. a CVn vor 10 Jahren 0
OK, das einzige, was mir einfällt, ist, mke2fs direkt zu verwenden, anstatt mkfs durchzugehen. "sudo mke2fs -j -v / dev / loop0" gibt Ihnen ein ext3-Dateisystem mit anderen Standardeinstellungen. Ich habe es gerade selbst ausprobiert (abgesehen davon, dass ich eine viel kleinere Bilddatei verwendet habe) und es scheint für Debian Wheezy gut zu funktionieren, was * nicht * anders sein sollte. a CVn vor 10 Jahren 0
Die Ausgabe erfolgt Zeile für Zeile wie bei der Verwendung von mkfs. Ich kann mich nicht erinnern, dass ich diese Probleme beim letzten Mal vor ein paar Monaten hatte. Daniel Groves vor 10 Jahren 0
Das ist wirklich komisch. Entschuldigung, aber mir fehlen die unmittelbaren Ideen, um es auszuprobieren. Hoffentlich kann jemand anderes dies machen und Einblicke geben! a CVn vor 10 Jahren 0
Um zu versuchen, mehr Details aus mkfs herauszuholen, können Sie mkfs über strace ausführen. Ich bin nicht sicher, wie es mit Sudo zusammenspielt, aber es ist einen Versuch wert. Versuchen Sie "sudo strace -o" / tmp / mkfs.syscalls 'mkfs -t ext3 -v / dev / loop0' und senden Sie dann die letzten 30-50 Zeilen oder so aus der Datei mkfs.syscalls (und insbesondere alles rund um das Drucken) Fehlermeldung "Vorgang nicht zulässig" oder etwas davor, das zu einem solchen Fehler geführt hat). Es sollte genau sagen, was mkfs macht, was nicht erlaubt ist, was einen Hinweis auf eine Lösung geben könnte. a CVn vor 10 Jahren 0

2 Antworten auf die Frage

0
a CVn

Sie müssen das Dateisystem auf dem Loop-Gerät erstellen, nicht die Datei, die das Loop-Gerät sichert. (Dies ist, worum es in der Warnung von "kein spezielles Blockgerät" von mke2fs geht.) Die Sicherungsdatei ist nur eine Überlegung für den "Loop Device" -Code im Kernel, und Sie werden sie nicht direkt verwenden, außer in der losetupBefehl Der Fehler "Erlaubnis verweigert" kann sehr wohl darauf zurückzuführen sein, dass Sie versuchen, die Sicherungsdatei eines gerade aktiven Loop-Geräts direkt zu ändern. Es ist denkbar, dass dies leicht alle möglichen Verwüstungen zur Folge haben könnte, so dass der Kernel Sie wahrscheinlich (sanft) daran hindert, dies auch als root auszuführen.

losetupVerwenden sudo mkfs -t ext3 -q /dev/loop0Sie nach dem Ausführen stattdessen und es sollte gut funktionieren. Dann montieren /dev/loop0Sie wo immer Sie möchten (wie sagen wir sudo mount /dev/loop0 /media/ironman).

Dies wird möglicherweise deutlicher, wenn Sie die anderen verfügbaren Optionen für das Losetup in Betracht ziehen, einschließlich --offsetund --sizelimit( weitere Informationen finden Sie in der Manpage).

Selbst beim Versuch, den Loopback direkt zu formatieren, erhalte ich dieselbe Fehlermeldung. Ich habe gerade Details hinzugefügt, die die Ausgabe der Frage zeigen. Daniel Groves vor 10 Jahren 0
@DanielGroves Ja, ich habe gesehen. Ich lasse diese Antwort erst einmal auf, da dies ein wichtiger (und vielleicht nicht ganz offensichtlicher) Punkt ist, an den man sich über Loop-Geräte erinnern muss. a CVn vor 10 Jahren 1
-1
Shane Kerr

Okay, diese Nachricht ist sehr alt, hat aber keine Antwort.

Ich hatte gerade das gleiche Problem. Das Problem für mich war, dass der Root-Benutzer über NFS keine besonderen Fähigkeiten zum Lesen und Schreiben in eine Datei hat.

Sie können zum Beispiel den Besitzer der Datei in root ändern oder Sie können sie in die root-Gruppe aufnehmen und die Gruppe beschreibbar machen.