{"id":136,"date":"2011-03-30T15:24:36","date_gmt":"2011-03-30T13:24:36","guid":{"rendered":"http:\/\/blog.thomasius.net\/?p=136"},"modified":"2011-03-30T15:24:36","modified_gmt":"2011-03-30T13:24:36","slug":"linux-eine-partition-im-disk-image-mounten","status":"publish","type":"post","link":"https:\/\/blog.embedded-system-design.de\/index.php\/2011\/03\/30\/linux-eine-partition-im-disk-image-mounten\/","title":{"rendered":"Linux: Eine Partition im Disk-Image mounten"},"content":{"rendered":"<p>Neulich stand ich vor dem Problem, eine Partition innerhalb eines Disk-Images mounten zu m\u00fcssen. Das Image wurde mit <em>dd of=IMAGE-FILE if=\/dev\/sdb<\/em> erstellt, so dass alle Partitionen des urspr\u00fcnglichen Datentr\u00e4gers darin enthalten sind. Ein unparametriertes <em>mount<\/em> erwartet den Einstieg in das Dateisystem am Anfang der Image-Datei. Da sich dort jedoch die Partitionstabelle befindet, schl\u00e4gt das Mounten als Loop-Device zun\u00e4chst fehl. Hier folgt eine Anleitung, wie eine Partition in einem Disk-Image gemountet werden kann.<\/p>\n<p>Zun\u00e4chst werden wir das Offset bestimmen, an dem die gew\u00fcnschte Partition beginnt. Dazu werden wir das Disk-Image an ein Loop-Device binden. Den ben\u00f6tigten Namen des n\u00e4chsten freien Loop-Device erhalten wir mit dem Befehl<\/p>\n<p><code>$ sudo losetup -f<\/code><\/p>\n<p>Als Beispiel liefert dieser Befehl die Ausgabe <em>\/dev\/loop1<\/em>, das wir im folgenden verwenden. An diesen Ger\u00e4tenamen binden wir das Disk-Image:<\/p>\n<p><code>$ sudo losetup \/dev\/loop1 IMAGE-FILE<\/code><\/p>\n<p>Die im Disk-Image enthaltenen Partitionen und ihre Startpositionen erhalten wir mit:<\/p>\n<pre>$ sudo fdisk -lu \/dev\/loop1<\/pre>\n<pre>\nPlatte \/dev\/loop1: 8168 MByte, 8168931328 Byte\n255 K\u00f6pfe, 63 Sektoren\/Spur, 993 Zylinder, zusammen 15954944 Sektoren\nEinheiten = Sektoren von 1 \u00d7 512 = 512 Bytes\nSector size (logical\/physical): 512 bytes \/ 512 bytes\nI\/O size (minimum\/optimal): 512 bytes \/ 512 bytes\nDisk identifier: 0x00000000\n\nGer\u00e4t\u00a0 boot.\u00a0\u00a0\u00a0\u00a0 Anfang\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Ende\u00a0\u00a0\u00a0\u00a0 Bl\u00f6cke\u00a0\u00a0 Id\u00a0 System\n\/dev\/loop1p1\u00a0\u00a0 *\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 63\u00a0\u00a0\u00a0\u00a0\u00a0 144584\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 72261\u00a0\u00a0\u00a0 c\u00a0 W95 FAT32 (LBA)\n\/dev\/loop1p2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 144585\u00a0\u00a0\u00a0 15952544\u00a0\u00a0\u00a0\u00a0 7903980\u00a0\u00a0 83\u00a0 Linux\n<\/pre>\n<p><\/p>\n<p>Das Loop-Device kann jetzt wieder entbunden werden:<\/p>\n<p><code>$ sudo losetup -d \/dev\/loop1<\/code><\/p>\n<p>Anhand der obigen fdisk-Ausgabe kann der Offset berechnet werden, an dem die gew\u00fcnschte Partition innerhalb der Datei beginnt. Im Beispiel wollen wir die Partition 2 (Linux) mounten. Der Offset in Bytes ergibt sich hier durch die Multiplikation der Sektorengr\u00f6\u00dfe (512 Bytes) mit der Nummer des Tartsektors (144585): =74027520. Dieser Offset wird beim mount-Aufruf angegeben:<\/p>\n<p><code>$ sudo mount -o loop,offset=74027520 IMAGE-FILE MOUNT-POINT<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neulich stand ich vor dem Problem, eine Partition innerhalb eines Disk-Images mounten zu m\u00fcssen. Das Image wurde mit dd of=IMAGE-FILE if=\/dev\/sdb erstellt, so dass alle Partitionen des urspr\u00fcnglichen Datentr\u00e4gers darin enthalten sind. Ein unparametriertes mount erwartet den Einstieg in das Dateisystem am Anfang der Image-Datei. Da sich dort jedoch die Partitionstabelle befindet, schl\u00e4gt das Mounten &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/blog.embedded-system-design.de\/index.php\/2011\/03\/30\/linux-eine-partition-im-disk-image-mounten\/\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,8],"tags":[36],"_links":{"self":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts\/136"}],"collection":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/comments?post=136"}],"version-history":[{"count":0,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts\/136\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/media?parent=136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/categories?post=136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/tags?post=136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}