Kernel

編譯 linux 核心 - make install 需要 LILO。怎麼辦?

  • April 27, 2012

所以我按照本指南編譯我的自定義核心 - 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代替。有什麼建議麼?

對於帶有 pv-grub 的 Linode,您可以忽略有關 LILO 的消息,因為 Linode 沒有(也不能)使用 LILO。此時核心映像已被複製到其中/boot/vmlinuz

預設情況下,make install更新 LILO 數據(如果已安裝)。這樣做是為了方便,因為 LILO 不了解文件系統並且必須依靠塊號來定位核心映像。

顯然,您的安裝腳本有LILO一個要求。為什麼不簡單地make然後將輸出複製到/boot並手動擺弄grub

引用自:https://serverfault.com/questions/383286