virt-install Couldn’t find kernel for install tree
问题描述
当使用 --location
参数安装 ISO 文件时,报错 Couldn't find kernel for install tree
。
解决方案
两种方案,一种是使用 --cdrom
,但这导致有些参数没法使用,比如 --extra-args
。
下面讲第二种方案,依然使用 --location
,不过同时要指定 initrd 和 kernel 文件。
isoinfo -J -i file.iso -l | grep '(initrd|vmlinuz)'
找出对应的文件。
Distro Kernel path RAM disk path
Fedora /isolinux/vmlinuz /isolinux/initrd.img
RHEL5/CentOS5 /isolinux/vmlinuz /isolinux/initrd.img
openSUSE /boot/i386/loader/linux /boot/i386/loader/initrd
Mandriva /i586/isolinux/alt0/vmlinuz /i586/isolinux/alt0/all.rdz
Ubuntu /casper/vmlinuz /casper/initrd.gz
Debian /install.386/vmlinuz/ /isolinux/initrd.img
所以 virt-install 的 –location 参数应该这么填,
- 针对 Fedora 系统,
--location $iso,initrd=live/initrd.img,kernel=pxeboot/vmlinuz
- 针对 Debian 系统,
--location $iso,initrd=install/initrd.gz,kernel=install/vmlinuz
iso=/debian.iso
virt-install \
--disk path=$iso,device=cdrom \
--location $iso,initrd=install/initrd.gz,kernel=install/vmlinuz \
这些回答很有参考价值。