我在 上安装了 Lubuntu 11.10 /dev/sda3
,在 上安装了 Xubuntu 11.10 /dev/sda5
。前段时间,在使用 Lubuntu 时,我在创建 Live USB 时犯了一个错误:我错误地将 Live USB 引导加载程序安装到了 中/dev/sda3
。这当时并没有导致任何问题。
今天,我更新了内核。我不得不重启 Lubuntu。在 Grub 中,Lubuntu 突然不再出现,而我在 Xubuntu 中自动启动。我尝试运行update-grub
并尝试使用grub-customizer
让 Lubuntu 回到 Grub 中,但这没有用。我运行了os-prober
,但它没有显示 Lubuntu。
/etc/grub.d/
然后,我尝试在on /dev/sda5
called中添加一个新条目12_lubuntu
。它包含以下内容:
#!/bin/sh -e
echo "Lubuntu"
cat << EOF
menuentry "Lubuntu" {
set root=(hd0,3)
linux /boot/vmlinuz
initrd /boot/initrd.img
}
EOF
完成后,我运行update-grub
并使用grub-customizer
,将 Grub 配置写入 MBR,即:/dev/sda
。
突然,Lubuntu 出现在 Grub 中。我尝试启动它,但在执行此操作时,出现了以下消息:
Error: File not found
Error: You need to load the kernel first
ls -all
in的输出/dev/sda3
如下:
gijs@Gijs-PC:/media/9c715f68-f083-46ab-9d55-6139556f31d4$ ls -all
totaal 112
drwxr-xr-x 23 root root 4096 2011-11-25 23:35 .
drwxr-xr-x 5 root root 4096 2011-11-26 10:55 ..
drwxr-xr-x 2 root root 4096 2011-11-22 22:17 bin
drwxr-xr-x 4 root root 4096 2011-11-25 23:36 boot
drwxr-xr-x 2 root root 4096 2011-10-15 21:58 cdrom
drwxr-xr-x 5 root root 4096 2011-10-12 18:08 dev
drwxr-xr-x 146 root root 12288 2011-11-25 23:37 etc
drwxr-xr-x 3 root root 4096 2011-10-15 21:59 home
lrwxrwxrwx 1 root root 37 2011-11-25 23:35 initrd.img -> /boot/initrd.img-3.0.0-14-generic-pae
lrwxrwxrwx 1 root root 33 2011-11-25 23:35 initrd.img.old -> /boot/initrd.img-3.0.0-14-generic
drwxr-xr-x 19 root root 4096 2011-11-22 22:17 lib
drwx------ 2 root root 16384 2011-10-15 21:56 lost+found
drwxr-xr-x 5 root root 4096 2011-11-24 20:59 media
drwxr-xr-x 2 root root 4096 2011-10-09 09:29 mnt
drwxr-xr-x 4 root root 4096 2011-11-24 17:15 opt
drwxr-xr-x 2 root root 4096 2011-10-09 09:29 proc
drwx------ 13 root root 4096 2011-11-22 17:19 root
drwxr-xr-x 5 root root 4096 2011-10-15 22:01 run
drwxr-xr-x 2 root root 4096 2011-11-22 22:17 sbin
drwxr-xr-x 2 root root 4096 2011-06-21 20:43 selinux
drwxr-xr-x 2 root root 4096 2011-10-12 18:06 srv
drwxr-xr-x 2 root root 4096 2011-07-14 07:11 sys
drwxrwxrwt 8 root root 4096 2011-11-25 23:37 tmp
drwxr-xr-x 10 root root 4096 2011-10-12 18:06 usr
drwxr-xr-x 13 root root 4096 2011-11-25 23:37 var
lrwxrwxrwx 1 root root 33 2011-11-25 23:35 vmlinuz -> boot/vmlinuz-3.0.0-14-generic-pae
lrwxrwxrwx 1 root root 29 2011-11-25 23:35 vmlinuz.old -> boot/vmlinuz-3.0.0-14-generic
我还找到了旧的30_os-prober_proxy
,/dev/sda3/etc/grub.d
其中应该包含旧的引导内容。如下所示:
#!/bin/sh
#THIS IS A GRUB PROXY SCRIPT
'/etc/grub.d/proxifiedScripts/os-prober' | /etc/grub.d/bin/grubcfg_proxy "-*
-'Ubuntu, met Linux 3.0.0-12-generic-pae (on /dev/sda3)'
-'Ubuntu, met Linux 3.0.0-12-generic-pae (herstelmodus) (on /dev/sda3)'
+'Ubuntu, met Linux 3.0.0-12-generic (on /dev/sda3)' as 'Xubuntu'
-'Ubuntu, met Linux 3.0.0-12-generic (herstelmodus) (on /dev/sda3)'
+'Windows 7 (loader) (on /dev/sda2)' as 'Windows 7'
"
我怎样才能让 Grub 重新启动 Lubuntu?
答案1
启动修复
大多数 grub 启动问题可以通过使用启动修复- 作为这个社区维基解释说,您可以在 liveCD/USB 上或直接在正在运行的 ubuntu 安装中安装它,它将尝试查找所有 O/S 安装并修复整个 Grub MBR。
手动 Grub2 安装
如果启动修复无法发挥作用,那么传统的手动 grub2 安装方法如下:这个社区维基应该受到调查。
在该网页上搜索该部分复制 LiveCD 文件. 将示例/dev/sdxy
语句替换为您安装 lubuntu 的分区 - 例如/dev/sda3
如果你不确定安装了哪个分区,那么你可以运行位于SourceForge。
在结果中查找分区类型ext4
或ext3
- 这些是常见的 Ubuntu 文件系统,除非您之前选择使用类似btrfs
或reiserfs
等。
内核重新安装
如果问题是由于内核安装损坏,那么您可以研究从 Live CD 重新安装内核。这在这篇优秀的文章中有描述AskUbuntu 问答
通过正确安装内核,Grub 应该能够正确看到 Lubuntu 安装。
答案2
删除第二行(以 开头的行echo
)。您可能还需要向内核添加根参数,如下所示:
linux /boot/vmlinuz root=/dev/sda3
之后update-grub
再次运行。
答案3
您可以尝试使用 live cd 启动系统,然后使用这些命令 chroot 到 lubuntu 系统。
sudo mkdir /mnt/abc
sudo mount /dev/sda3 /mnt/abc
sudo mount ‐‐bind /dev /mnt/abc/dev
sudo mount ‐‐bind /proc /mnt/abc/proc
sudo mount ‐‐bind /sys /mnt/abc/sys
sudo chroot /mnt/abc
sudo grub-install /dev/sda
我认为这会解决您的问题,如果您不想在 MBR 中安装 lubuntu 加载程序,您可以在 /dev/sda3 中安装 grub,然后使用update-grub
xubuntu。这样就可以了。
答案4
一周前,我又遇到了同样的问题,但现在我自己解决了。结果发现,这个问题与 LiveUSB 安装无关。我所要做的是grub-customizer
从 Xubuntu 启动,单击File
,Select Partition
单击Next
,选择 Lubuntu 的分区,然后单击Mount the selected filesystem
。我可以选择子挂载点,但这不是必需的。我点击了Apply
。
现在,我必须选中所有可用的复选框,以确保我可以从 Grub 启动 Lubuntu。然后我单击了File
,Save
之后,我单击了File
,Install to MBR
。
我重新启动后,可以再次启动 Lubuntu,问题解决了。
如果这不能解决您的问题,我建议您使用 fossfreedom 在下面的另一个答案中提到的工具。