通过Windows 10引导Linux

先装了Ubuntu,想装个Windows 10,但众所周知,Windows的脑残安装程序必定覆盖mbr,完全不会保留Linux的grub引导,所以安装Windows前先做好mbr的备份。本教程仅适用mbr引导并且grub已安装在mbr的系统,Windows 7/8/10等系统都适用,通过uefi引导的不适用。
先在Linux中打开终端,备份mbr。

sudo su
dd if=/dev/sda of=grub.mbr bs=512 count=1

把grub.mbr这个文件备份,等Windows安装完毕之后拷贝到C盘根目录。
进入Windows,以管理员身份运行cmd,执行以下命令。

bcdedit /create /d "Linux" /application bootsector

上述命令中的“Linux”为你想显示在Windows启动菜单中的名称,可自定义修改,这步执行完会得到一个id,把id复制下来,继续执行下面命令,我得到的id是77724b54-5a67-11e6-93b0-e4d3533c3e94,请务必替换成自己的id。

bcdedit /set {77724b54-5a67-11e6-93b0-e4d3533c3e94} device partition=c:
bcdedit /set {77724b54-5a67-11e6-93b0-e4d3533c3e94} path \grub.mbr
bcdedit /displayorder {77724b54-5a67-11e6-93b0-e4d3533c3e94} /addlast
bcdedit /timeout 10

这样就完成了,重启系统,就可以在Windows启动菜单中找到Linux的启动项。
如果希望默认直接进入Linux,可再执行一条。

bcdedit /default {77724b54-5a67-11e6-93b0-e4d3533c3e94}

所有操作完成。