启动期间出现“文件名必须是绝对路径名或阻止列表”错误

启动期间出现“文件名必须是绝对路径名或阻止列表”错误

我使用的是 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-VERSIONinitrd.img-VERSION版本指定安装的最新内核版本。根据配置,这些符号可能位于根目录中(但如果/boot位于单独的分区中则不起作用)。 Grub 可以读取符号链接(只要它们位于同一分区内),因此您可以使用它们来避免在引导加载程序配置中对内核版本号进行硬编码。

相关内容