2017-08-03 58 views
-2

我使用下面的命令建立一個多重isohybrid圖像FAT32文件系統:Grub能不能識別isohybrid圖像

xorriso -as mkisofs -iso-level 3 -full-iso9660-filenames -volid "MULTIBOOT" -eltorito-boot boot/isolinux/isolinux.bin -eltorito-catalog boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -isohybrid-mbr ${isodir}boot/isolinux/isohdpfx.bin -eltorito-alt-boot -e boot/isolinux/efiboot.img -no-emul-boot -isohybrid-gpt-basdat -output ~/output.iso ${isodir} 

此負載ISOLINUX引導程序在BIOS模式下啓動時預期,但我想用grub,我鏈式加載它使用這個配置文件:

Default Grub2 
LABEL Grub2 
SAY Switching to Grub2... 
Linux /boot/grub/lnxboot.img 
INITRD /boot/grub/core.img 

Grub的負荷,但不是顯示主菜單,它下降到救援控制檯聲稱它無法識別的文件系統。有趣的是,如果我從CD加載ISO,會發生這種情況,但如果我將它刻錄到USB驅動器,則會發生這種情況。在這種情況下,Grub發現文件系統並按預期工作。

這裏是我當前的grub.cfg開始(沒有的菜單項):

insmod iso9660 
insmod gfxmenu 
insmod png 
insmod part_msdos 
insmod part_gpt 
insmod fat 
insmod ntfs 
insmod ext2 
insmod efi_gop 
insmod efi_uga 
if [ "${grub_platform}" != "efi" ]; then 
    insmod vbe 
    insmod vga 
fi 
insmod gfxterm 
terminal_output gfxterm 

set gfxmode=800x600 
search --file --no-floppy --set=root /multiboot/menu/main_menu.cfg 
#set root='hd0,msdos1' 
set timeout=30 
set theme="/boot/grub/themes/multiboot/theme.txt" 

loadfont /boot/grub/fonts/unifont-bold-16.pf2 
loadfont /boot/grub/fonts/unifont-regular-16.pf2 
loadfont /boot/grub/fonts/unifont-regular-14.pf2 
loadfont /boot/grub/fonts/unifont-regular-32.pf2 

set default=1 

我的猜測是,我的core.img缺少一些模塊,使事情從光盤啓動時的作品,但我已經專門在我的core.img包括le iso9660模塊whiout

回答

0

經過一段時間的睡眠和修補後,我來到了解決方案。我不得不使用下面的命令來創建一個core.img:

grub-mkimage -O i386-pc -c common.cfg -p /boot/grub biosdisk part_msdos part_gpt fat ntfs exfat iso9660 search -o core.img 

包含這個common.cfg文件:

search --file --no-floppy --set=root /multiboot/menu/main_menu.cfg 
set cmdpath=($root) 
set prefix=($root)/boot/grub