Hallo Leute,
Ich habe folgende, ganz gewöhnliche QEMU-Raw-Image-Datei:
$ qemu-img info armel.img
image: armel.img
file format: raw
virtual size: 20G (21474836480 bytes)
disk size: 1.3G
# fdisk -lu armel.img
Disk armel.img: 21.5 GB, 21474836480 bytes
255 Köpfe, 63 Sektoren/Spur, 2610 Zylinder, zusammen 41943040 Sektoren
Einheiten = sectors von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cd605
Gerät boot. Anfang Ende Blöcke Id System
armel.img1 * 2048 17577983 8787968 83 Linux
armel.img2 17577984 19531775 976896 82 Linux Swap / Solaris
armel.img3 19531776 41940991 11204608 83 Linux
Wie man unschwer erkennen kann, ist ein Armel-Debian drauf, aber das ist hier wohl irrelevant. Das Image enthält zwei ext3- und eine Swap-Partition, und ich versuche gerade verzweifelt, einfach mal die erste Partition ins Hostsystem einzuhängen (natürlich ohne, dass QEMU läuft;
die Zahl 1048576 ergibt sich dabei aus 2048 (Anfangssektor) * 512 (Sektorgröße), sollte also das Startbyte der Partition sein.):
# mount armel.img /mnt -o loop,offset=1048576 -t ext3
# echo $?
32
Ein Königreich für informative Fehlermeldungen. Eingehängt wird nichts, und mehr als diesen Rückgabewert habe ich nicht. Die mount-Manpage ist da auch nicht wirklich informativ:
32 mount failure
QEMU-Version: QEMU emulator version 1.0,1, Copyright (c) 2003-2008 Fabrice Bellard
Installiert ist das Paket
qemu, nicht
qemu-kvm:
Name : qemu
Version : 1.0.1-3
URL : http://wiki.qemu.org/Index.html
Lizenzen : GPL2 LGPL2.1
Gruppen : Nichts
Stellt bereit : Nichts
Hängt ab von : libjpeg libpng sdl alsa-lib nss glib2 gnutls>=2.4.1 bluez vde2 util-linux curl libsasl libgl libpulse seabios
Optionale Abhängigkeiten: Nichts
Benötigt von : aqemu
Konflikt mit : Nichts
Ersetzt : Nichts
Installationsgröße : 102860,00 KiB
Packer : Tobias Powalowski <tpowa@archlinux.org>
Architektur : x86_64
Erstellt am : Di 08 Mai 2012 12:26:07 CEST
Installiert am : Fr 01 Jun 2012 16:40:50 CEST
Installationsgrund : Ausdrücklich installiert
Installations-Skript : Ja
Beschreibung : A generic and open source processor emulator which achieves a good emulation speed by using dynamic translation.
Irgendwelche Ideen, wie ich den mount doch noch hinbekomme oder zumindest herausfinde, was denn
genau falschgelaufen ist (und nein, in den Logs findet sich auch nichts)? Ich vermute, dass Debian bei der Installation irgendwie Murks gemacht hat, weil ich auch nicht in der Lage bin, von der Platte zu booten; stattdessen bekomme ich beim QEMU-Start nur eine sofortige Kernel Panic, der ich entnehme, dass keine Festplatten gefunden wurden ("no filesystem could mount root, tried: " (sic)).
Valete,
Quintus
EDIT: Ich hab’s gerade mal mit einem anderen Image probiert, das mit ARM nichts zu tun hatte und das ein lauffähiges System beinhaltete. Schlägt genauso fehl. Daran liegt es also nicht.
EDIT2: Oh, wie blöd kann man sein... Ich hatte ein Systemupdate gemacht (mit Kernel-Upgrade) und danach noch nicht neugestartet. Als ich das loop-Kernel-Modul mit
modprobe loop geladen habe, ist das still und heimlich fehlgeschlagen (Exitstatus nicht überprüft) und ohne ist natürlich schlecht loopback mounten... Ein einfacher Neustart hat das Problem gelöst, jetzt passen die Module auch wieder zum Kernel.
...Trotzdem danke an alle, die sich die Mühe gemacht haben, das hier zu lesen :-)