如何正确配置 LILO?

如何正确配置 LILO?

我想使用 LILO 而不是 GRUB,因此我有一些关于如何正确配置它的问题。这是我的lilo.conf

compact
lba32

boot = /dev/sda
map = /boot/map

image = /boot/vmlinuz-4.19.44-gentoo
    root = /dev/sda3
    read-only

该选项有什么lba32用?我需要它吗?我没有标记启动项,可以吗?

它真的能起作用吗?这是我的磁盘:

sda    931.5G disk 
├─sda1    12M part 
├─sda2   500M part /boot
├─sda3    64G part /
├─sda4   864G part /home
└─sda5     3G part [SWAP]

在实际安装之前会lilo清除 MBR 吗还是我应该自己做?


这是我的boot目录:

grub/
System.map-4.19.44-gentoo
System.map-4.19.44-gentoo.old
config-4.19.44-gentoo
config-4.19.44-gentoo.old
vmlinuz-4.19.44-gentoo
vmlinuz-4.19.44-gentoo.old

System.map*config*文件属于 GRUB吗?那么我可以安全地删除它们吗?

我可以lilo在软件包写入 MBR 后删除它吗?


为什么人们说启动分区最好有 512M 左右的空间,而我的内核映像只有 8M?他们只是在那里存储了大量 Linux 映像,还是有其他原因需要占用很大的启动分区?


注意:我正在为 IBM PC BIOS 系统而不是 UEFI 配置它。

答案1

注意:本文有一半内容纯粹基于 LILO 文档编写。

该选项有什么lba32用?我需要它吗?我没有标记启动项,可以吗?

它告诉 LILO 在读取磁盘扇区时使用 32 位“逻辑块寻址”(LBA 是现代系统使用的方法);这样,当磁盘提供 512 字节逻辑扇区时,它可以到达最多 2 GiB 的位置。

默认方法是使用柱面/磁头/扇区寻址,这是 MS-DOS 早期的产物,限制约为 8 GB。(而且现代磁盘只假装 CHS 编号与物理布局有关。)

我没有标记启动项可以吗(因为只有一个)?

根据 LILO 手册,该label字段是可选的 - 默认标签将从内核文件名中获取。

在实际安装之前会lilo清除 MBR 吗还是我应该自己做?

如果您选择将 LILO 安装到 MBR,它将在安装过程中写入自己的 MBR 引导代码。(这实际上是重点LILO 的安装过程。)

如果您选择只将 LILO 安装到分区中,则需要提供自己的 MBR。在此模式下,您需要编写一个通用 MBR,该 MBR 仅引导活动分区的 VBR – 手册中讨论了 MS-DOS MBR,但您也可以使用 Windows MBR ms-sys,甚至是 Syslinux MBR,因为它们的作用相同。

请注意,无论如何仅有的MBR 的“引导代码”区域(440 字节)被覆盖。“分区表”区域不是即使是在同一个扇区中。

System.map* 和 config* 文件属于 GRUB 安装吗?我可以删除它们吗?

不,它们属于内核本身。

  • System.map*主要用于调试(并且通过 CONFIG_KALLSYMS 变得冗余,它可以通过 /proc 提供相同的信息)。
  • config*只包含您使用的内核配置的副本(并且也通过 CONFIG_IKCONFIG 变得冗余,这使得信息可通过 /proc/config.gz 获得)。

因此从技术上来说删除它们不会有什么坏处。但是,下次升级内核时,无论如何都会安装新文件。

我猜我可以删除 lilo 包,然后它会将自己写入 MBR,对吗?

不 – 每次编辑配置文件时都需要重新运行lilo。原因是 LILO 不理解文件系统,所以它只记住确切的扇区号其配置文件位于何处。

一旦你编辑了文件,它可能会保存到新位置,这需要重新安装 LILO。(正如你所见,该文件使用版本化的文件名引用你的内核,它将要必须进行编辑,并且必须经常进行编辑。

为什么我的内核映像只有 8M,人们却说要有 500M 的启动分区?

我认为 500 MB 或 512 MB 这个数字可能来自 Microsoft 对 EFI 系统分区的建议。BIOS 系统上的专用 Linux /boot 分区保存的文件较少,因此它们肯定可以更小。但这是一个很好的整数,这意味着您永远不会用完其中的空间,并且如果您将系统转换为 UEFI 启动模式,则无需重新分区。

(实际上,即使在 UEFI 上,500 MB 可能也有点太多了,但 100 MB 通常很紧张,所以至少250 MB 绝对是个好主意。

在任何 Linux 系统上,分区通常包含一个或两个 initramfs 映像(每个约 20–40 MB),或者用户可能希望将所有驱动程序构建到 vmlinuz 映像本身中。有人可能希望拥有主线内核同时安装 LTS 内核 – 因此将所有内容乘以 2。您可能想要使用 GRUB2,其模块又占用约 15 MB。

具体来说,在 UEFI 上,人们可能希望使用 Windows(~30 MB)或其他操作系统进行双重启动甚至三重启动。一些制造商还使用 EFI 系统分区来放置固件更新文件,这可能会占用几兆字节。

相关内容