用centos7打了一个livecd,详细过程就不说了,在mbr机器上安装没有问题,但在efi设备上安装时会报告:
file /isolinux/vmlinuz0 not found
进grub2命令行调试:
>ls
后只能找到 efi 目录,找不到cdrom下的其他目录。
这种情况应该是root目录设置有问题,解压开cdrom中的efiboot.img,看 grub.cfg
set default="0"
function load_video {
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod all_video
}
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set timeout=30
menuentry 'Install or Upgrade MCOS-cServer-host-x86-4.4.0-201608150617' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /isolinux/vmlinuz0 crashkernel=256M root=live:CDLABEL=massclouds-node-iso rootfstype=auto ro liveimg rootflags=ro elevator=deadline install rhgb rd_NO_MULTIPATH rd.luks=0 rd.md=0 rd.dm=0 kvm-intel.nested=1
initrdefi /isolinux/initrd0.img
}
menuentry 'Install or Upgrade with serial console MCOS-cServer-host-x86-4.4.0-201608150617' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /isolinux/vmlinuz0 crashkernel=256M root=live:CDLABEL=massclouds-node-iso rootfstype=auto ro liveimg rootflags=ro elevator=deadline install rhgb rd_NO_MULTIPATH rd.luks=0 rd.md=0 rd.dm=0 console=ttyS0,115200n8 kvm-intel.nested=1
initrdefi /isolinux/initrd0.img
}
menuentry 'Reinstall MCOS-cServer-host-x86-4.4.0-201608150617' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /isolinux/vmlinuz0 crashkernel=256M root=live:CDLABEL=massclouds-node-iso rootfstype=auto ro liveimg rootflags=ro elevator=deadline install rhgb rd_NO_MULTIPATH rd.luks=0 rd.md=0 rd.dm=0 reinstall kvm-intel.nested=1
initrdefi /isolinux/initrd0.img
}
menuentry 'Reinstall with serial console MCOS-cServer-host-x86-4.4.0-201608150617' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /isolinux/vmlinuz0 crashkernel=256M root=live:CDLABEL=massclouds-node-iso rootfstype=auto ro liveimg rootflags=ro elevator=deadline install rhgb rd_NO_MULTIPATH rd.luks=0 rd.md=0 rd.dm=0 reinstall console=ttyS0,115200n8 kvm-intel.nested=1
initrdefi /isolinux/initrd0.img
}
menuentry 'Uninstall' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /isolinux/vmlinuz0 crashkernel=256M root=live:CDLABEL=massclouds-node-iso rootfstype=auto ro liveimg rootflags=ro elevator=deadline install rhgb rd_NO_MULTIPATH rd.luks=0 rd.md=0 rd.dm=0 uninstall kvm-intel.nested=1
initrdefi /isolinux/initrd0.img
}
对比centos的efiboot.img中的grub.cfg
set default="1"
function load_video {
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod all_video
}
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set timeout=60
### END /etc/grub.d/00_header ###
search --no-floppy --set=root -l 'CentOS 7 x86_64'
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Install CentOS Linux 7' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
initrdefi /images/pxeboot/initrd.img
}
menuentry 'Test this media & install CentOS Linux 7' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
initrdefi /images/pxeboot/initrd.img
}
submenu 'Troubleshooting -->' {
menuentry 'Install CentOS Linux 7 in basic graphics mode' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 xdriver=vesa nomodeset quiet
initrdefi /images/pxeboot/initrd.img
}
menuentry 'Rescue a CentOS Linux system' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rescue quiet
initrdefi /images/pxeboot/initrd.img
}
}
缺少了一行:
search --no-floppy --set=root -l 'massclouds-node-iso'
将这一行添加到livecd中efiboot.img中的grub.cfg中打包测试。