chạy kernel trên QEMU


7

Tôi đối mặt với tin nhắn này:

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

Tôi đang sử dụng dòng lệnh này:

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"

trên qemu, thông báo đầy đủ là:

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

Tôi đã tạo hình ảnh hạt nhân mới và chạy nó trên QEMU..nhưng hiển thị thông báo lỗi này: "Kernel panic" Tôi đã sử dụng lệnh này: ["/ linux_qemu $ qemu-system-x86_64 -hda đĩa.img -kernel bzImage -initrd my-initramfs .cpio "] Xin hãy giúp đỡ. Cảm ơn
Tro

@Ash vui lòng chỉnh sửa câu hỏi của bạn để thêm bất kỳ thông tin nào có thể dẫn đến giải quyết vấn đề của bạn, thông điệp bạn gửi cho chúng tôi có thể được gây ra bởi hàng ngàn thứ, chúng tôi sẽ không liệt kê để bạn có thể kiểm tra từng cái một.
Kiwy

Tôi đã chỉnh sửa câu hỏi của tôi với các chi tiết cần thiết, xin vui lòng xem xét. cảm ơn.
Tro

Nhân của bạn được xây dựng với sự hỗ trợ initramfs, phải không?
derobert

Kernel đang hỗ trợ initramfs .....
Ash

Câu trả lời:


8

Tôi đã sử dụng:

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

Chỉ định kích thước RAM tức là

-m 1024

đã khắc phục sự cố này và khởi động vào bạc hà thành công.


Cảm ơn bạn, tăng RAM đã sửa lỗi này với debian-live tùy chỉnh.
Markus Laire

2

Tôi gặp vấn đề này và việc tăng RAM khách đã khắc phục nó. Hãy thử đi qua -m 1024.


Cảm ơn bạn, tăng RAM đã sửa lỗi này với debian-live tùy chỉnh.
Markus Laire

0

Ok, đây là dòng lệnh Qemu của tôi:

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

Cảm ơn đã chia sẻ dòng lệnh. tốt, tôi vẫn đang gặp vấn đề tương tự Tôi sử dụng dòng lệnh này: [qemu-system-x86_64 -hda đĩa.img -kernel /home/marssonubfox/linux_qemu/linux-3.3.3/arch/x86/boot/bzImage -initrd my-initramfs.cpio root = / dev / sdardinit = / sbin / init "]. Thông báo hiển thị như thế này .... Không thể thực thi / sbin / init Kernel hoảng loạn - không đồng bộ hóa: Không tìm thấy init. Hãy thử chuyển init = tùy chọn vào kernel. xem Tài liệu Linux / init.txt để được hướng dẫn. Pid: 1, comm: hoán đổi Không bị nhiễm độc 3.3.3 # 1 Dấu vết cuộc gọi: [<ffffffff811d78b4>]? hoảng loạn + 0xa9 / 0x197
Tro

0

Tôi đã có cùng một vấn đề và tôi đã quản lý để xây dựng Linux nhỏ theo các bước dưới đây.

Khởi động thử nghiệm Mini Linux với Qemu

Các bước trong Xây dựng cơ sở Mini Linux Distro

  1. Biên dịch kernel và xem kết quả về kích thước của quá trình biên dịch
  2. Tạo hình ảnh rootfs (định dạng như ext2 mke2fs chẳng hạn) sẽ chứa hệ thống gốc và một số chương trình cơ bản (busybox đã sử dụng)
  3. Gắn rootfs và tạo các thư mục và tập tin cơ bản
  4. Biên dịch busybox và cài đặt nó bên trong rootfs
  5. Kiểm tra kích thước hạt nhân (có hoặc không có mô-đun được bật) và hình ảnh Ciar (với mkdosfs được áp dụng cho linux.imgví dụ hình ảnh ) có chứa linux.img grub hoặc syslinux thiết lập quy trình khởi động của hệ thống
  6. Sau khi rootfs được tạo và linux, sao chép cho syslinux.cfg linux.img, bzImage, vào linux.img
  7. Áp dụng lệnh syncsyslinux để hoàn thành hình ảnh linux.img;
  8. Sau khi tất cả các cài đặt và cài đặt kiểm tra nó qemu, ví dụ, lệnh sauqemu linux.img
  9. Nếu mọi thứ đều ổn, hệ thống sẽ khởi động vào lớp vỏ cơ bản.

Nhưng những nỗ lực hiện tại không thể vào thiết bị đầu cuối (shell)

Tôi để những bước này ở đây trong trường hợp họ có thể giúp ai đó hoặc ai đó có thể giúp tôi.


Thật khó để tìm ra những gì bạn đang cố gắng nói. Bạn đang yêu cầu giúp đỡ thêm về vấn đề này? Nếu vậy, bạn không nên đăng bài này như một câu trả lời, mà là một câu hỏi mới và tham khảo câu hỏi cũ. Nếu bạn đang cố gắng cung cấp một câu trả lời, bạn nên cố gắng làm cho thủ tục của bạn có ý nghĩa và có thể đọc được.
HalosGhost

1
Đối với những người thích mã để văn xuôi, có Minimal Linux Live :-)
Ciro Santilli 病毒 审查 事件

Điều này thực sự không rõ ràng với tôi. Có quá nhiều thông tin bị thiếu.
Alex
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.