一般来说,制作双系统pc时,在linux pc上安装windows是一种不明智的行为。但是,有些时候迫于无奈,我们也会遇到这种情况,~~真是糟糕~~。本文记载我遇到的两种不同启动系统时的解决方式。

BIOS Systems

  1. 为win10腾出空间
  2. 安装win10
  3. 挂载/boot目录或分区
  4. 安装引导程序(GRUB)

Step One – 为win10腾出空间

打开GParted,并且确保你有至少20G的大小给win10,其中包括你能删除的分区大小与未分区的空间大小。在保证不会破坏你的linux系统的情况下,删除那些无用分区。

记下 "boot" 分区的设备号。如果没有/boot分区,就记下 "" 分区的设备号。设备号是指 “sdaX", 其中X为数字。

Step Two – 安装win10

将win10安装到你分配的空间中。

Step Three – 挂载/boot目录或分区

用你的linux启动u盘启动电脑(如果是安装盘则进入尝试模式),打开命令行。

如果你没有 ”/boot" 分区:

sudo mount /dev/DEVICENAME_FROM_STEP_ONE /mnt
sudo rm -rf /boot # 小心,请确保你删除的是启动盘的/boot
sudo ln -s /mnt/boot /boot

如果你有 “/boot" 分区:

sudo mount /dev/DEVICENAME_FROM_STEP_ONE /boot

Step Four – 安装引导程序(GRUB)

然后运行一下命令:

sudo apt-get update
sudo apt-get install grub-pc
sudo grub-install /dev/sda # NOTE THAT THERE IS NO DIGIT
sudo umount /boot

重启。它已经可以用grub启动这两个系统了。

UEFI Systems

1.为win10腾出空间 2.安装win10 3.修复grub菜单

前两步骤与 BIOS System 一样。

Step Three - 修复grub菜单

在win10中打开cmd,然后复制一下命令:

bcdedit /set {bootmgr} path \EFI\YOUR_LINUX\grubx64.efi

不要忘记把 ”YOURLINUX" 替换成正确的值。

如果有secure boot, 你需要额外步骤去关闭 secure boot。详见Secure Boot