全新安装 x86 11.10 桌面。在不同的驱动器上以 Windows XP 和 Linux 进行双启动。
安装后 grub 无法启动 Windows,但通过更改启动驱动器可以正常启动。
当我去修复这个问题时,我发现http://bootinfoscript.sourceforge.net/以及链接至http://sourceforge.net/apps/mediawiki/bootinfoscript/index.php?title=Boot_Problems:search我的问题是,grub 启动错误屏幕上的消息:
error: no such device: 6⋯⋯⋯⋯⋯⋯⋯
因此我按照步骤2并比较输出:
sudo blkid
和
sudo nano /boot/grub/grub.cfg
两者的 UUID 都与 Windows 驱动器匹配,因此我按照步骤 4 中的修复方法“删除 /usr/lib/grub/grub-mkconfig_lib 中的搜索行...”,并像之前一样注释掉这三行⋯
# if fs_uuid="`${grub_probe} --device ${device} --target=fs_uuid 2> /dev/null`" ; then
# echo "search --no-floppy --fs-uuid --set ${fs_uuid}"
# fi
我运行sudo update-grub
并检查 /etc/default/grub.cfg 并发现它现在不是通过 UUID 来识别 Windows 分区,我想这是解决方法。
但是现在当我尝试启动 11.10 桌面时,我得到:
error: no such partition… …
当我尝试启动 Windows 时,出现以下信息:
error: invalid signature.
那么现在,我该如何解决这个问题呢?
启动问题并找到有效的解决方法?
答案1
好吧,由于这确实是一个由两部分组成的问题,我可以回答隐含的第一个问题,即如何让 grub2 至少启动 ubuntu。
具体如下:
从 LiveCD 启动(x86 11.10 桌面)
将 Ubuntu 10.10 的根目录挂载到 /mnt
更改根
删除对 /usr/lib/grub/grub-mkconfig_lib 的解决方法更改
运行更新-grub
重启
以上步骤来自Ubuntu 社区 Grub2 文档底部附近
⋯具体情况是by example
从 CD 启动并在终端运行后……
sudo -i
⋯ 我已经当了这么多年苏,但你应该使用“ sudo …
“在每个命令前面
ubuntu@ubuntu:~$ sudo -i
fdisk -l
⋯这是小写的 L⋯找到 11.10 安装分区,(其他磁盘在此处剪辑)
fdisk -l
⋯ ⋯ ⋯
Disk /dev/sde: 300.1 GB, 300089646592 bytes
255 heads, 63 sectors/track, 36483 cylinders, total 586112591 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc3f5ebeb
Device Boot Start End Blocks Id System
/dev/sde2 138464296 586110975 223823340 5 Extended
/dev/sde3 * 2048 138463231 69230592 83 Linux
/dev/sde5 138464298 313460279 87497991 7 HPFS/NTFS/exFAT
/dev/sde6 313460736 317650943 2095104 82 Linux swap / Solaris
/dev/sde7 317652992 581922815 132134912 83 Linux
/dev/sde8 581924864 586110975 2093056 82 Linux swap / Solaris
Partition table entries are not in disk order
mount /dev/sde3 /mnt
⋯我的根分区,sde7 是我的主分区
ls /mnt
⋯只是想看看我是否做对了
root@ubuntu:~# mount /dev/sde3 /mnt
root@ubuntu:~# ls /mnt
bin cdrom etc initrd.img lib media opt root sbin srv tmp var vmlinuz.old
boot dev home initrd.img.old lost+found mnt proc run selinux sys usr vmlinuz
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
⋯一行完成
chroot /mnt
⋯改变根
sudoedit /usr/lib/grub/grub-mkconfig_lib
⋯在这里我撤消了更改
update-grub
⋯现在更新 grub
root@ubuntu:~# for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
root@ubuntu:~# chroot /mnt
root@ubuntu:/# sudoedit /usr/lib/grub/grub-mkconfig_lib
root@ubuntu:/# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.0.0-13-generic
Found initrd image: /boot/initrd.img-3.0.0-13-generic
Found linux image: /boot/vmlinuz-3.0.0-12-generic
Found initrd image: /boot/initrd.img-3.0.0-12-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Microsoft Windows XP Professional on /dev/sdc1
done
sudoedit /etc/default/grub
⋯检查是否已更改(应与原始内容相同)
sudoedit /boot/grub/grub.cfg
⋯检查是否按照最初的方式通过 UUID 挂载
事实也确实如此。
现在提交启动失败的错误报告...
答案2
Grub 现在可以按预期运行,并且 WinXP 和 Ubuntu 11.10 现在都可以正确启动。
这是无法解释的,因为除了正常升级之外,Grub 没有做出任何改变。
答案3
这是无法解释的,因为除了正常升级之外,Grub 没有做出任何改变。
我是个菜鸟,刚刚安装了双启动 win10 和 Ubuntu Gnome 当前版本。配置双启动时,Grub 2 多次运行。grub 2 运行正常,我无需添加 apci 或 acpi 等。
在我启动成功后,我使用了 win10debloater https://github.com/Sycnex/Windows10Debloater
然后使用 Windows 更新升级 win10,我注意到系统 Bios 已经改变,因为我必须重新做 bios。
我也同意,Grub 没有改变;我猜测(对 ubuntu 一无所知)UUID 已经改变。
所以我猜测,如果 Win10 更新后 UUID 发生了变化,并且确认了与 UUID 的链接。
这种情况已经持续很长时间了,我相信是系统 BIOS 被 win10 改变了;因为如果 Ubuntu 曾经创建了一个简单的安装 windows 就知道一切都可能在一夜之间改变。
如果我有错误,请删除。