Kernel auf QEMU ausführen


7

Ich stehe vor dieser Nachricht:

Failed to execute /initKernel panic - not syncing: no init found. 
Try passing init=option to kernel.

Ich benutze diese Kommandozeile:

qemu-system-x86_64 -hda disk.img -kernel /home/marssonubuntu/linux_qemu/linux-3.3.3/arch/x86/boot/bzImage -initrd my-initramfs.cpio -append "root=/dev/sda rdinit=/sbin/init"

Auf Qemu lautet die vollständige Nachricht:

Failed to execute /sbin/init Kernel panic - not syncing: No init found. 
Try passing init= option to kernel. see Linux Documentation/init.txt for guidance. 
Pid: 1, comm: swapper Not tainted 3.3.3 #1 
Call Trace: 
[<ffffffff811d78b4>] ? panic+0xa9/0x197
[<ffffffff811d6927>] ? init_post+0xb2/0xb2
[<ffffffff812aad96>] ? kernel_init+0xff/0xff
[<ffffffff811dcd44>] ? kernel_thread_helper+0x4/0x10
[<ffffffff812aac97>] ? do_one_initcall+0x121/0x121
[<ffffffff811dcd40>] ? gs_change+0xb/0xb

Ich habe ein neues Kernel-Image erstellt und es auf QEMU ausgeführt. Es wurde jedoch die folgende Fehlermeldung angezeigt: "Kernel-Panik" Ich habe den folgenden Befehl verwendet: ["/ linux_qemu $ qemu-system-x86_64 -hda disk.img -kernel bzImage -initrd my-initramfs .cpio "] Bitte helfen Sie. Vielen Dank
Ash

@Ash, bitte bearbeiten Sie Ihre Frage, um Informationen hinzuzufügen, die zur Lösung Ihres Problems führen könnten. Die Nachricht, die Sie uns senden, kann durch Tausende von Dingen verursacht werden. Wir werden sie nicht aufzählen, sodass Sie sie nacheinander überprüfen können.
Kiwy

Ich habe meine Frage mit den erforderlichen Details bearbeitet, bitte schauen Sie. Vielen Dank.
Ash

Ihr Kernel wurde mit initramfs-Unterstützung erstellt, oder?
Derobert

Kernel unterstützt initramfs .....
Ash

Antworten:


8

Ich benutzte:

qemu-system-x86_64 --enable-kvm -m 1024 -machine smm=off -cdrom mint.iso -boot order=d mint_hdd.img

Festlegen der RAM-Größe, dh

-m 1024

Dieses Problem wurde behoben und erfolgreich in Mint gebootet.


Vielen Dank, durch Erhöhen des Arbeitsspeichers wurde dieser Fehler mit benutzerdefiniertem Debian-Live behoben.
Markus Laire

2

Ich hatte dieses Problem und das Erhöhen des Arbeitsspeichers des Gastes hat es behoben. Versuchen Sie zu bestehen -m 1024.


Vielen Dank, durch Erhöhen des Arbeitsspeichers wurde dieser Fehler mit benutzerdefiniertem Debian-Live behoben.
Markus Laire

0

Ok, hier ist meine Qemu-Befehlszeile:

KERNEL=vmlinuz-2.6.32-5-686
INITRD=initrd.img-2.6.32-5-686
APPEND="root=/dev/sda2 ro "
IMG=qemu.img
qemu -kernel $KERNEL -initrd $INITRD -append "$APPEND"  -hda $IMG

$ file $IMG $INITRD $KERNEL
qemu.img: DOS/MBR boot sector
initrd.img-2.6.32-5-686: gzip compressed data
vmlinuz-2.6.32-5-686:    Linux kernel x86 boot executable bzImage

Vielen Dank, dass Sie die Befehlszeile freigegeben haben. Nun, ich habe immer noch das gleiche Problem. Ich benutze diese Befehlszeile: [qemu-system-x86_64 -hda disk.img -kernel /home/marssonubuntu/linux_qemu/linux-3.3.3/arch/x86/boot/bzImage -initrd my-initramfs.cpio -append " root = / dev / sda rdinit = / sbin / init "]. Die Meldung wird wie folgt angezeigt: Fehler beim Ausführen von / sbin / init Kernel-Panik - nicht synchronisiert: Kein Init gefunden. Versuchen Sie, die Option init = an den Kernel zu übergeben. Anleitungen finden Sie in der Linux-Dokumentation / init.txt. Pid: 1, comm: swapper Nicht verdorben 3.3.3 # 1 Call Trace: [<ffffffff811d78b4>]? Panik + 0xa9 / 0x197
Ash

0

Ich hatte das gleiche Problem und konnte Mini-Linux mit den folgenden Schritten erstellen.

Starten Sie den Mini Linux Test mit Qemu

Schritte zum Aufbau der Base Mini Linux Distro

  1. Kompilieren Sie den Kernel und sehen Sie das Ergebnis in Bezug auf die Größe der Kompilierung
  2. Erstellen Sie ein Rootfs-Image (Format beispielsweise ext2 mke2fs), das das Root-System und einige Basisprogramme enthält (verwendete Busybox).
  3. Hängen Sie rootfs ein und erstellen Sie grundlegende Verzeichnisse und Dateien
  4. Kompilieren Sie die Busybox und installieren Sie sie in den Rootfs
  5. Überprüfen Sie die Kernelgröße (mit oder ohne aktivierte Module) und das Ciar-Image (mit auf das Image- linux.imgBeispiel angewendeten mkdosfs ), die linux.img grub oder syslinux enthalten, und legen Sie den Startvorgang des Systems fest
  6. Kopieren Sie nach der Erstellung von rootfs und linux für syslinux.cfg linux.img, bzImage, in die Datei linux.img
  7. syncWendet den Befehl syslinux an, um das Bild linux.img fertigzustellen.
  8. Testen Sie es nach allen Einstellungen und Installationen qemubeispielsweise mit dem folgenden Befehlqemu linux.img
  9. Wenn alles in Ordnung ist, startet das System mit der Basis-Shell.

Aber die aktuellen Versuche können das Terminal (Shell) nicht betreten

Ich lasse diese Schritte hier, falls sie jemandem helfen können oder jemand mir helfen kann.


Es ist unglaublich schwierig herauszufinden, was Sie sagen wollen. Bitten Sie um weitere Hilfe zu diesem Thema? Wenn ja, sollten Sie dies nicht als Antwort, sondern als neue Frage veröffentlichen und auf die alte verweisen. Wenn Sie versuchen, eine Antwort zu geben, sollten Sie versuchen, Ihr Verfahren sinnvoll und lesbar zu gestalten.
HalosGhost

1
Für diejenigen, die Code der Prosa vorziehen, gibt es Minimal Linux Live :-)
Ciro Santilli 20 病毒 审查 六四 事件 20

Das ist mir wirklich unklar. Es fehlen einfach so viele Informationen.
Alex
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.