Ubuntu - Mount-Image-Datei mit R / W-Berechtigung

4

Host: Ubuntu 15.04

Mit Disk Image Mounterkann ich die test.img mounten und drei Verzeichnisse auftauchen.

  1. System-a
  2. System-b
  3. schreibbar

Da ich mich umgesehen habe, kann ich die Verzeichnisse nicht bearbeiten, da diese schreibgeschützt sind.

Die mögliche Lösung, die ich bisher gefunden habe, besteht darin, diese Verzeichnisse an einen anderen neuen Ort zu kopieren und eine neue Bilddatei zu generieren.

Wie kann ich das tun, da die Bilddatei diese drei Verzeichnisse enthält?

============ nach dem Update ============

mount: wrong fs type, bad option, bad superblock on /dev/loop1,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

====================================

Device                Start     End Sectors  Size Type
test_custom2.img1    8192   16383    8192    4M BIOS boot
test_custom2.img2   16384  147455  131072   64M EFI System
test_custom2.img3  147456 2244607 2097152    1G Linux filesystem
test_custom2.img4 2244608 4341759 2097152    1G Linux filesystem
test_custom2.img5 4341760 7614463 3272704  1.6G Linux filesystem
Sam
quelle
Welche Art von Dateisystem enthält das Image?
Andreas-Hofmann
@ andreas-hofmann ext4
Sam
Gibt es Partitionen im Image? Was sagt die Ausgabe von fdisk -l image.img?
andreas-hofmann
@ andreas-hofmann post aktualisiert.
Sam

Antworten:

1

Das Problem ist, dass Ihr Image mehrere Partitionen enthält. Ein einfaches altes Mount sucht nach Dateisysteminformationen bei Offset 0, das in Ihrem Fall anscheinend auf einige BIOS-Bootinformationen zeigt, aber nicht auf die gewünschten ext4-fs. Sie sollten erfolgreich sein, indem Sie das Loopback-Gerät mit einem Versatz zur gewünschten Partition erstellen.

Dieser Link kann Ihnen helfen.

andreas-hofmann
quelle
4

Sie müssen sicherstellen, dass Ihr aktuelles Benutzerverzeichnis Lese- und Schreibzugriff auf Ihre Operation hat

sudo mkdir -p /tmp/test && sudo mount -o loop,rw,sync image.img /tmp/test
evandrix
quelle
danke, aber ich habe den Fehler durch Eingabe Ihres Befehls erhalten
Sam
Ich habe den Beitrag aktualisiert. Bitte teilen Sie mir mit, ob Sie weitere Ideen haben.
Sam
0

Hier ist der vollständige Prozess, basierend auf der Antwort hier :

Ihre IMG-Datei ist kein Image einer Partition, sondern einer ganzen Festplatte. Das heißt, es beginnt mit einem Bootloader und einer Partitionstabelle. Sie müssen den Versatz der Partition erkennen und diese spezifisch einbinden. Sie müssen also rechnen, aber es ist einfach. Hier ist der Prozess:

fdisk -l raspberry_pi.img

Welches gibt die Ausgabe unten. Beachten Sie die Sektorgröße in Bytes (512 in diesem Fall) und den Startsektor der Partition (94208 in diesem Fall für die Linux-Partition).

Disk raspberry_pi.img: 7.3 GiB, 7826571264 bytes, 15286272 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xbeb1a7ff

Device          Boot Start      End  Sectors  Size Id Type
raspberry_pi.img1       8192    93813    85622 41.8M  c W95 FAT32 (LBA)
raspberry_pi.img2      94208 15069183 14974976  7.1G 83 Linux

Multiplizieren Sie nun manuell die Sektorgröße Startsektor *, um die für den mountBefehl erforderlichen Offset-Bytes zu erhalten . In diesem Fall ist 94208 * 512 = 48234496

sudo mkdir /media/sdcard
sudo mount -o loop,rw,sync,offset=48234496 printer_v5.img /media/sdcard

Jetzt wird die Linux-Partition des Images unter / media / sdcard gemountet und der Root-Benutzer kann seine Dateien bearbeiten.

Schließlich, wenn Sie fertig sind:

sudo umount /media/sdcard
Luke
quelle