Ich habe ein Image meiner gesamten Festplatte mit erstellt
dd if=/dev/sda of=/media/external_media/sda.img
Jetzt ist das Problem, ich möchte ein ext4-Dateisystem mounten, das sich aber auf dieser Platte befand
mount -t ext4 -o loop /media/external_media/sda.img /media/sda_image
Offensichtlich gibt es einen Superblock-Fehler, da das Image die gesamte Festplatte (MBR, andere Partitionen) enthält, nicht nur die Partition, die ich benötige. Ich denke, ich sollte einen Weg finden, das Disk-Image im /dev/
Ordner anzuzeigen ...
Weiß jemand, wie man das macht?
PS: Ich kann dd
das Image immer auf die ursprüngliche Festplatte zurückschreiben, aber das wäre sehr unpraktisch. (Ich habe das Betriebssystem aktualisiert und möchte es so lassen, wie es ist.)
sudo losetup -o $((56*512)) /dev/loop0 sda.img
mount -o loop,offset=$((56 * 512)) sda.img /mnt
. Quelle: madduck.net/blog/…Update für Ubuntu 16.04: Mit dem neuen ist
losetup
dies jetzt einfacher:Lesen Sie den Rest der Antwort für ältere Versionen von Ubuntu.
Eine einfache Lösung ist die Verwendung von kpartx : Es ermittelt das Partitionslayout und ordnet es jeweils Blockgeräten zu. Danach müssen Sie nur noch das gewünschte montieren.
Öffnen Sie das Terminal, suchen Sie das Image und geben Sie den folgenden Befehl ein:
Dies schuf
loop0p1
undloop0p2
unter/dev/mapper
. In der Ausgabe sehen Sie die Größe der Partitionen, anhand derer Sie diese leichter identifizieren können. Sie können den gewünschten montieren mit:Alternativ wird das Blockiergerät von Nautilus erkannt und Sie können es von der Seitenleiste aus montieren:
Wenn Sie fertig sind, heben Sie die Bereitstellung auf und entfernen Sie die Gerätezuordnung:
quelle
sudo apt-get install kpartx
- um Zugriff auf kpartx zu erhalten. Derkpartx
Link am Anfang des Beitrags ist meiner Meinung nach eine "Falle". Links, die die Installation von Software implizieren, sind ein Nein-Nein.losetup -Pf
von zuvor erwähnt worden askubuntu.com/a/496576/52975 empfehle ich , dass Sie zumindest Link zu dieser Antwort.losetup -Pf ..
Befehl erstellt Geräte/dev/loopXpY
, die Sie noch mounten müssen. Sie finden dieX
Ausgabe deslosetup
Befehls. DasY
ist die Partitionsnummer.Bearbeiten : funktioniert mit util-linux> = 2.21 . Zum Zeitpunkt des Schreibens wird Ubuntu nur mit Version 2.20 ausgeliefert
Vom Mann losetup :
Also renn einfach
Erstellen Sie Geräteknoten für jede Partition Ihres Festplattenabbilds auf dem ersten nicht verwendeten Loop-Gerät und drucken Sie es auf stdout. Wenn Sie ein
/dev/loop0
Gerät verwenden, wird dies zumindest dazu führen,/dev/loop0p1
dass Sie wie gewohnt mounten können.quelle
losetup
? Die in Ubuntu 14.04 verwendete hat eine Manpage von Juli 2003 (util-linux) und keine Option `-P` (oder etwas anderes) zum Scannen von Partitionen.--partscan
Option wurde in util-linux 2.21gnome-disks
hat eine Option zum Mounten eines Disk-Images und seiner Partitionen. (<- das ist für die Installation und Bash / Terminal-Verwendung,Disks
im Bindestrich findet es auch).losetup
), aber es ist fast drei Jahre neuer als die akzeptierte Antwort - und das war zu diesem Zeitpunkt der richtige Weg.Versuchen Sie
gnome-disk-image-mounter
:Nicht
sudo
erforderlich Es wird/media/your_user_name/partition_name
wie USB-Laufwerke an gemountet .quelle
losetup -P
Automatisierunglosetup -P
ist die beste Methode ab Ubuntu 16.04 (siehe https://askubuntu.com/a/496576/52975) . Hier finden Sie Funktionen, die Sie bei Bedarf automatisieren können. Verwendungszweck:Quelle:
Schleifenmodul max_part config
Dies ist eine anständige Methode vor dem 16.04.
loop
ist ein Kernelmodul, das in Ubuntu 14.04 in den Kernel integriert ist.Wenn Sie es richtig konfigurieren, teilt Linux die Geräte automatisch für Sie auf.
gibt an, wie viele Partitionen
loop
Geräte generieren können.Unter
0
Ubuntu 14.04 ist dies standardmäßig der Fall, weshalb keine automatische Aufteilung erfolgt.Um es zu ändern, können wir entweder hinzufügen:
in eine Datei in
/etc/modprobe
oder:zu
/etc/default/grub
und dannsudo update-grub
.Wie Sie einen Modulparameter einstellen, erfahren Sie auch unter: Wie füge ich Kernelmodulparameter hinzu?
Wenn Sie nach einem Neustart Folgendes tun:
Das Image wird an ein
/dev/loopX
Gerät angehängt und die Partitionen werden automatisch an/dev/loopXpY
Geräte angehängt.Dies ist die bequemste Methode, wenn Sie einen Neustart durchführen möchten.
Siehe auch
quelle
Verwenden Sie losetup, um das gesamte Disk-Image anzuhängen.
Verwenden Sie dann mdadm, um ein MD-Gerät zu erstellen, und Blockgeräte werden für alle Partitionen erstellt.
Jetzt sollten Sie die Partitionsgeräte sehen.
quelle
Der einfachste Weg ist meiner Meinung nach,
mount -o loop,offset=...
wie in dieser Antwort auf StackOverflow erwähnt . Die Idee ist wie folgt:Die beste Methode ist, weil das Loop-Gerät nach dem Ummounten der gemounteten Partition nicht gelöscht werden muss.
Um die Aufgabe weiter zu vereinfachen (was erforderlich ist, wenn Sie es oft tun), können Sie mein Skript verwenden
mountimg
, um alles für Sie zu tun. Holen Sie es sich einfach unter https://github.com/AlexanderAmelkin/mountimg und verwenden Sie es wie folgt:Sie können auch den Dateisystemtyp und andere zusätzliche Mount-Optionen angeben, wenn Sie möchten:
Wenn Sie mit der Partition fertig sind, gehen Sie einfach folgendermaßen vor
umount
:quelle