Đã sử dụng Xen và được pygrub
một thời gian, giờ tôi đang cố gắng làm điều gì đó tương tự với KVM / qemu.
Về cơ bản, tôi có một khối logic LVM (mặc dù đó cũng có thể là một tệp) có chứa hệ thống tệp gốc của bản phân phối Linux (không phân vùng, chỉ có FS trực tiếp trên đĩa) cũng chứa /boot/grub/grub.cfg, và tôi muốn có thể khởi động nó.
Tôi có ấn tượng rằng gói grub-firmware-qemu trên Debian / Ubuntu được dành cho điều đó, nhưng tôi đã không quản lý để làm cho nó hoạt động. AFAICT, hình ảnh grub.bin chứa một memdisk được mã hóa cứng với tệp grub.cfg với một vài tùy chọn menu (như tìm kiếm multiboot.img hoặc tìm kiếm grub.cfg), nhưng tất cả những gì tôi nhận được khi chạy kvm -bios grub.bin
là "giấy phép không tương thích " thông báo lỗi. Và tôi không chắc chắn làm thế nào để tạo ra một sự khác biệt grub.bin
với một grub.cfg khác (một điều sẽ chỉ làm configfile (hd0)/boot/grub/grub.cfg
).
Tất nhiên, tôi có thể tạo một hình ảnh đĩa mềm hoặc cdrom hoặc đĩa với cấu hình grub tối thiểu chỉ có vậy nhưng tôi có cảm giác rằng nên có một cách sạch hơn / chính tắc để làm điều đó và nghiên cứu của tôi đã mang lại rất ít xa.
Tôi cho rằng người ta cũng có thể sử dụng -kernel
tùy chọn của qemu , nhưng một lần nữa, tôi không biết cách tạo ra một thứ grub.img
cho nó. (sử dụng grub.img được tạo với grub-mkimage -O i386-pc -o grub.img -c =(echo 'configfile (hd0)/boot/grub/grub.cfg') /usr/lib/grub/i386-pc/*.mod
thông báo lỗi "giấy phép không tương thích" một lần nữa).
Đó là trên debian với phiên bản 1.99-23 của gói grub và 1.1.2 + dfsg-2 của kvm / qemu.
Vì vậy, trong ngắn hạn, tôi nên tạo một grub.bin (sẽ được sử dụng với kvm -bios
) hoặc grub.img (được sử dụng với kvm -kernel
) để có kvm khởi động một hình ảnh grub có thể phân tích cú pháp / boot / grub /grub.cfg trên đĩa ảo?