将 Windows 8.1 升级到 10 后修复 grub2(奇怪的情况)

将 Windows 8.1 升级到 10 后修复 grub2(奇怪的情况)

我知道这是一个常见问题,但我认为我的笔记本遇到了不同的情况。它附带 Windows 8.1,我使用 ubuntu 14.04 磁盘进行安装。它以这种方式工作了几个月:在正常(efi)模式下使用 bios,它会自动启动 Windows。在传统模式下使用 bios,它启动 grub2,然后启动 ubuntu(grub2 菜单中有一个 Windows 8.1 选项,但它没有启动,Windows 抱怨 efi)。

本周我将 Windows 8.1 更新到 10,显然它弄乱了我的分区表,所以我的 linux ext4 分区从 sda8 更改为 sda7。

现在,当我以传统模式启动笔记本电脑时,它会显示 grub rescue。我使用 set 命令将这两行从 sda8 更改为 sda7,然后它就可以正常启动 ubuntu。但我无法永久更改它。

  • 尝试使用启动修复但是它抱怨了一些东西(抱歉,如果有必要我可以再次运行它);
  • 尝试使用 grub-install(从我的 HD 中运行的 ubuntu 系统和 live cd 中安装),但它给了我以下错误:

sudo grub-install --root-directory=/mnt /dev/sda 为 i386-pc 平台安装。grub-install:警告:此 GPT 分区标签不包含 BIOS 启动分区;无法嵌入。grub-install:警告:无法嵌入。GRUB 只能通过使用阻止列表安装在此设置中。但是,阻止列表不可靠,不鼓励使用。grub-install:错误:不会继续使用阻止列表。

抱歉,如果有错别字,我是手动复制的。Gparted 为我的硬盘提供了以下布局:

/dev/sda1 ntfs windows re tools 499MB hidden,diag
/dev/sda2 fat32 system 300MB boot
/dev/sda3 unknown  128MB msftres
/dev/sda4 ntfs  446GB msftdata
/dev/sda5 ntfs  852MB hidden,diag
/dev/sda6 linux-swap  3.8GB 
/dev/sda7 ext4  463GB
/dev/sda8 ntfs samsung_rec2 15GB hidden,diag
/dev/sda9 fat32 samsung_rec 673MB hidden,diag

===================== 这是 blkid 和我的 fstab 的输出(使用 live cd)

ubuntu@ubuntu:~$ blkid 
/dev/sr0: LABEL="Ubuntu 14.04 LTS i386" TYPE="iso9660" 
ubuntu@ubuntu:~$ sudo blkid
/dev/loop0: TYPE="squashfs" 
/dev/sda1: LABEL="Windows RE tools" UUID="CA8E20468E202CFF" TYPE="ntfs" 
/dev/sda2: LABEL="SYSTEM" UUID="0A23-2EAF" TYPE="vfat" 
/dev/sda4: UUID="CC0824CC0824B6FC" TYPE="ntfs" 
/dev/sda5: UUID="3282616E8261380D" TYPE="ntfs" 
/dev/sda6: UUID="35f64a04-1d06-43d9-8948-56266b1f00b3" TYPE="swap" 
/dev/sda7: UUID="ef284dc0-d070-460f-adc4-7ce3c8ba607a" TYPE="ext4" 
/dev/sda8: LABEL="SAMSUNG_REC2" UUID="02F4CB2EF4CB22B1" TYPE="ntfs" 
/dev/sda9: LABEL="SAMSUNG_REC" UUID="1028-2B57" TYPE="vfat" 
/dev/sr0: LABEL="Ubuntu 14.04 LTS i386" TYPE="iso9660" 
ubuntu@ubuntu:~$ cat /mnt/etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda8 during installation
/dev/sda7 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda7 during installation
/dev/sda6 none            swap    sw              0       0

答案1

从 Ubuntu 安装媒体启动 - 选择无需安装即可试用 Ubuntu。

当 Ubuntu 桌面出现时 - 打开终端并执行:

sudo blkid  

挂载系统分区-打开另一个终端并执行:

sudo mount /dev/sda7 /mnt  

编辑 fstab 文件-打开另一个终端并执行:

sudo gedit /mnt/etc/fstab

将 UUID 条目替换为 blkid 输出中的条目。

笔记 :

您应该考虑在 EFI 模式下安装推荐的 64 位版本的 Ubuntu,因为磁盘具有 GPT 分区表,然后您不必再在 BIOS 中从 EFI 模式切换到 Legacy 模式。GRUB 将安装到所有引导加载程序所在的 EFI 分区。

更新 :

重复该过程,按如下方式编辑 fstab 文件,然后不要忘记保存文件:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda7 during installation
UUID=ef284dc0-d070-460f-adc4-7ce3c8ba607a /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda6 during installation
UUID=35f64a04-1d06-43d9-8948-56266b1f00b3 none            swap    sw              0       0  

如果它不起作用,您必须忍受这种情况,直到安装 Ubuntu 64 位版本。

相关内容