我使用的是 FS 笔记本电脑,其中已经安装了 Lubuntu、Xubuntu 和 Puppy Linux。我正在使用 GRUB 引导加载程序,它可以按上述方式正常工作。
我想尝试一下Debian,所以我将它安装在HD的空闲分区中。由于我不想弄乱现有的 GRUB 配置,因此在安装过程中我没有安装 GRUB,而是想稍后手动安装。但是,我无法让它工作。我已将其添加到我的 menu.lst 中:
title Debian
uuid 5329c69c-c525-4e0e-8026-3418a0db8fb2
kernel vmlinuz root=/dev/sda6 ro
initrd initrd.img
“Debian”出现,但当我选择它时,出现“文件名必须是绝对路径名或阻止列表”错误。
有人可以告诉我 menu.lst 条目有什么问题吗?我已确保 uuid 代码正确(分区号也是如此)。
答案1
我正在回答我自己的问题,以防其他人试图解决这个问题。我发现了我的两个错误:a) 路径不正确 - 我应该使用kernel /boot/vmlinuz
b) 内核和 initrd 名称不正确。以下内容现在正在运行:
title Debian
uuid 5329c69c-c525-4e0e-8026-3418a0db8fb2
kernel /boot/vmlinuz-3.16.0-4-586 root=/dev/sda6 ro
initrd /boot/initrd.img-3.16.0-4-586
答案2
您需要指定绝对路径到内核文件。绝对路径从根目录开始,并以/
.如果/boot
在根分区上,则意味着
kernel /boot/vmlinuz
如果/boot
位于单独的分区上,则意味着
kernel /vmlinuz
也同样如此initrd.img
。
此外,您可能需要一条root
语句,将 Grub 指向这些文件所在的分区。在 Grub 传统中,这类似于root (hd0,5)
Linux 的说法/dev/sda6
(Grub 从 0 开始编号分区,Linux 从 1 开始编号分区)。uuid
如果您的 Grub 版本支持该指令,则该指令起着相同的作用。
在正常的 Debian 安装中,/boot/vmlinuz
和/boot/initrd.img
是指向名为(resp. ) 的文件的符号链接,其中vmlinuz-VERSION
initrd.img-VERSION
版本指定安装的最新内核版本。根据配置,这些符号可能位于根目录中(但如果/boot
位于单独的分区中则不起作用)。 Grub 可以读取符号链接(只要它们位于同一分区内),因此您可以使用它们来避免在引导加载程序配置中对内核版本号进行硬编码。