编译 Linux 内核 - `make install` 要求 LILO。现在怎么办?

编译 Linux 内核 - `make install` 要求 LILO。现在怎么办?

因此,我按照本指南编译我的自定义内核 -http://library.linode.com/linode-platform/custom-instances/pv-grub-custom-compiled-kernel#sph_compile-and-install-the-kernel

到目前为止一切顺利,但我遇到了一点障碍make install

  AS      arch/x86/boot/header.o
  LD      arch/x86/boot/setup.elf
  OBJCOPY arch/x86/boot/setup.bin
  BUILD   arch/x86/boot/bzImage
Setup is 15328 bytes (padded to 15360 bytes).
System is 5097 kB
CRC c20c9369
Kernel: arch/x86/boot/bzImage is ready  (#2)
[root@li280-195 linux-3.3.3]# make -j3 modules
make[1]: Nothing to be done for `all'.
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
  CALL    scripts/checksyscalls.sh
  CC [M]  drivers/scsi/scsi_wait_scan.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      drivers/scsi/scsi_wait_scan.mod.o
  LD [M]  drivers/scsi/scsi_wait_scan.ko
[root@li280-195 linux-3.3.3]# make
make[1]: Nothing to be done for `all'.
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  CHK     kernel/config_data.h
Kernel: arch/x86/boot/bzImage is ready  (#2)
  Building modules, stage 2.
  MODPOST 1 modules
[root@li280-195 linux-3.3.3]# make install
sh /root/build/linux-3.3.3/arch/x86/boot/install.sh 3.3.3 arch/x86/boot/bzImage \
    System.map "/boot"
Cannot find LILO.

我知道make install默认情况下会查找LILO并且我知道LILO是引导加载程序。但我不想使用,LILO而我只关心使用grub

我现在该怎么做才能make install正确运行?

更新

在我的/root/build/linux-3.3.3/arch/x86/install.sh文件中,最后 10 行是:

if [ -x /sbin/lilo ]; then
       /sbin/lilo
elif [ -x /etc/lilo/install ]; then
       /etc/lilo/install
else
       sync
       echo "Cannot find LILO."
fi

因此,我需要编辑我的install.sh以改为使用grub。有什么建议吗?

答案1

/boot/vmlinuz对于使用 pv-grub 的 Linode,您可以忽略有关 LILO 的消息,因为 LILO 未在 Linode 上使用(也不能使用)。此时内核映像已复制到其中。

默认情况下,make install如果已安装 LILO,则更新其数据。这样做是为了方便,因为 LILO 不了解文件系统,必须依靠块号来定位内核映像。

答案2

显然,您的安装脚本有LILO要求。为什么不简单地make将输出复制到/boot并手动摆弄呢grub

答案3

出现此消息的原因是您在以下位置没有 installkernel 脚本/sbin/installkernel

if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi
if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi

您可以编写自己的脚本并将其放在/sbin/installkernel,或者使用其他人编写的脚本

相关内容