文章目录

  • 前言
  • 1.问题描述——发生甚么事了?
  • 2.系统启动过程
    • 2.1 bios
    • 2.2.磁盘的MBR和GPT分区格式 [参考1](https://www.bilibili.com/video/BV1YE411H7r6?t=461) [参考2](https://www.bwsl.wang/amp/81.html)
      • 2.2.1. MBR分区格式
      • 2.2.2. GPT分区格式
    • 2.3.Legacy启动
    • 2.4.UEFI启动
      • 1、选择从哪个设备启动
      • 2、选择用哪个文件启动项启动
    • 2.5. bios和legacy的关系
  • 3.windows的UEFI启动分析 [参考1](https://www.bilibili.com/video/BV1sE411H7qL?t=584) [参考2](https://www.cnblogs.com/fatt/p/4496587.html)
    • 3.1. UEFI设备启动项启动
    • 3.2. UEFI文件启动项启动
  • 4.Ubuntu的UEFI启动分析 [参考1](https://www.bilibili.com/video/BV1sE411H7qL?t=584) [参考2](https://www.cnblogs.com/fatt/p/4496587.html)
    • 4.1. UEFI设备启动项启动
    • 4.2. UEFI文件启动项启动
    • 4.3.ubuntu下几个文件的作用 ==**(???)**==
  • 5.Ubuntu和windows双系统启动项问题 [参考1](https://www.bilibili.com/video/av80143050) [参考2](https://www.bilibili.com/video/BV1yU4y1x7d5) [参考3](https://www.bwsl.wang/amp/81.html)
    • 5.1. `/EFI/Boot/bootx64.efi` ==**(???)**==
    • 5.2. 两个ESP分区
    • 5.3. 装删系统,如何调整启动项
      • 5.3.1. 如何调整启动项进入双系统
      • 5.3.2. 双系统变单系统如何调整启动项
      • 5.3.3. 如何增删bios中的启动项
    • 5.4. 验证
      • 5.4.1. 从设备启动
      • 5.4.2. 从EFI\boot\grubx64.efi启动
      • 5.4.3. 从EFI\ubuntu\grubx64.efi启动
      • 5.4.4. 从EFI\Mocrosoft\bootmgfw.efi启动
      • 5.4.5. 选择win10的默认Windows Boot Manager启动
  • 6.如何修复Ubuntu启动项
    • 6.1. windows下使用EasyBCD修复 [参考](https://blog.csdn.net/u010849674/article/details/48600667?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.not_use_machine_learn_pai&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.not_use_machine_learn_pai)
    • 6.2.从Ubuntu启动盘进入系统,利用boot-repair修复 [参考](https://blog.csdn.net/chekongfu/article/details/84872841?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.not_use_machine_learn_pai&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.not_use_machine_learn_pai)
  • 7.如何安装系统
    • 7.1. U盘安装win10 [参考](https://www.bilibili.com/video/BV1DJ411D79y?t=713)
    • 7.2. U盘安装ubuntu [参考](https://www.cnblogs.com/masbay/p/10745170.html)
    • 7.3. 硬盘安装系统[参考](https://zhuanlan.zhihu.com/p/31365115)
  • 8.杂谈
    • 8.1.一定要勤备份、常备份
    • 8.2.自己解决问题各有利弊
    • 8.3.回到问题本身
    • 8.4.觉知此事要躬行
    • 8.5. 图床不要选gitee [参考](https://blog.csdn.net/Happy_HZW/article/details/112194406)
    • 8.6. 记录Topyra的几个语法
      • 8.6.1. 锚点 [参考](https://blog.csdn.net/wait_for_eva/article/details/88374366)
        • 标题
      • 8.6.2. 目录

前言

​ 以下部分内容都来自网络,在相应的地方我会附上链接。其次还有我自己的理解,肯定会有不恰当和错误的地方。这只是为了记录我在这个过程中所获,所以仅供参考。在这过程中,我遇到自己不确定的地方会以==(???)==来标识。

1.问题描述——发生甚么事了?

  1. 我原本是win10单系统,后来安装了ubuntu16.04的双系统。win10全在C盘;ubuntu的系统主体在D盘,引导项在C盘(C盘和D盘是两个独立的物理磁盘,并非单磁盘双分区)。双系统一直相安无事。
  2. 在前几天,win10环境下, 插拔SD卡读卡器的时候,电脑蓝屏(
  3. 蓝屏自动修复完毕后电脑一直卡住不动,于是强制重启(
  4. 重启后电脑无法进入win10,此时还可以正常进入ubuntu
  5. 由于win10内含有大量的软件,所以我还是抱着尽量抢救的想法进行修复
  6. 虽然自己啥也不懂,但还是查找资料进行了一番操作,然后……ubuntu也进不去了,大惊失色
  7. 最后实在没招,只能重装win10,所有软件全部丢失。修复ubuntu引导项后正常进入Ubuntu,未受影响

2.系统启动过程

​ win10一直用的是买笔记本时附带的系统,所以自己从未安装过。装ubuntu时也是根据教程一步步来,也不懂什么原理。不懂原理就导致此次系统出问题非常被动,折腾了很久才搞好。那么下面就说一下开机启动过程,因为通常进不去系统的时候,除了是系统内核错误(我的win10出错代码0xc000001,如下图1,找人看说是内核错误只能重装),最常见的就是引导项损坏(一开始还只是0xc000001错误,后来直接找不着引导项了,如下图2)等错误。

​ 目前主要有两种系统启动的方式,即Legacy(bios)启动(对应硬盘MBR分区方式)和UEFI启动(对应硬盘GPT分区方式)。因为UEFI启动方式更快,并且相对来说更加灵活,所以目前很多电脑都是采用UEFI启动

2.1 bios

​ bios可以分为硬件和软件两部分。硬件上,bios是主板上一块很小的ROM芯片,里面存储了一段bios程序,开机之后首先执行的就是这个程序,而不是操作系统的程序,所以才有了启动方式的区别。软件上,bios程序会检测硬件是否正常,即POST(POWER ON SELF TEST,上电自检),然后会依次查找启动设备,找到之后就去读取这里面的主引导程序,后面的工作由主引导程序完成。此外bios有一个交互的界面,可以供用户来进行一些设置。

Tips

  1. 查找启动设备的顺序是什么?

    bios程序里存储有启动设备的顺序,而且这个顺序是可以通过bios界面的Boot Priority Order选项调整的,如下图:

    在这里面既有文件启动项,又有设备启动项(或者在Legacy模式下的设备启动顺序)。至于这俩是什么,见2.4节。启动时按照顺序查找启动。

  2. 其实本质上来说,bios应该是一个软件,因为bios程序只是存在了一个ROM芯片里,所以把这个芯片也称为bios芯片,就是为了方便叫。这就相当于一部手机如果分别装苹果、安卓和塞班系统,就叫它苹果、安卓、塞班手机,以和其他手机区分。不同之处是在内部软件,而非硬件。

  3. bios程序通常是主板出厂时厂家写好的,但是可以利用一定的方法自己更改,不过有风险。

2.2.磁盘的MBR和GPT分区格式 参考1 参考2

2.2.1. MBR分区格式

​ MBR分区类型的磁盘需要使用legacy方式启动,因为启动时需要查找MBR分区。MBR是主引导记录,也是一种磁盘的分区格式,注意是分区格式,而非文件格式。legacy启动方式对应磁盘的GPT分区格式,legacy只认设备,其他什么都不认。因为只认识设备,所以必须要事先约定好读取设备的哪个部分才能保证正常读取引导。因此这种启动方式,需要定义一个主引导记录,位于硬盘的柱面0 磁头0 扇区1。它的大小是512B,由3部分构成:主引导程序446B+DPT硬盘分区表64B+磁盘有效标志0x55 0xAA

也就是说,为了实现Legacy启动方式,磁盘需要是MBR分区格式。并且磁盘中必须且只能存在一个MBR分区,用于存储引导程序。使用Legacy启动时,bios就会依次查找磁盘中是否有MBR分区,如果有就加载MBR分区中的引导程序,进而由引导程序引导系统启动。

2.2.2. GPT分区格式

​ GPT分区的磁盘需要使用UEFI启动,因为启动时需要查找ESP分区下的*.efi启动项。注意EFI分区(ESP)必须是FAT32的文件格式,文件启动项放置在路径/EFI/厂商名下,比如 C:\EFI\boot\Microsoft或者C:\EFI\boot\Ubuntu

也就是说,为了实现UEFI启动方式,磁盘需要是GPT分区格式。在磁盘中必须有一个FAT32文件格式的ESP分区,用于存储*.efi启动文件。使用UEFI启动时,bios就会到这个ESP分区下去查找启动文件,找到了就加载启动文件中的程序,进而由启动文件引导系统启动。

2.3.Legacy启动

​ Legacy驱动方式只认识设备,其他东西全都不认识。启动时,Legacy按照bios里保存的设备启动顺序依次检索设备当中的前512字节,看前512字节的最后两个字节是不是55AA(是否是MBR分区),不是则跳过去读下一个启动设备;如果是,则表示可启动,转而去读主引导程序,剩下的工作就交给主引导程序去做了。

​ 正是因为读取的位置固定这个特性,使得一个设备只会出现一个引导程序,后加入的程序会覆盖先前的引导,就有点儿刻板了。

2.4.UEFI启动

​ UEFI启动方式不但认识设备,还认识分区,更认识文件。UEFI根据BIOS中同样保存的启动顺序依次查找启动项。至于启动项,UEFI又分成两个:文件启动项和设备启动项。

文件启动项:即一个指向明确文件存储位置的启动项。使用这个启动项,UEFI会直接去往这个位置来加载执行。

设备启动项:指向一个设备,注意是实际的物理设备,而非磁盘分区。对于这种启动项,UEFI定义了一个标准,即如果这个设备可以启动,那么这个设备的efi引导文件一定是ESP分区下的/efi/boot/bootx64.efi文件。对于一个设备启动项,EFI会直接执行这个路径下面的文件。如果可执行则继续,找不到则报失败。

Tips:如何指定一个EFI启动项?

​ 因为有两种启动项,所以启动自然分为两种情况:

1、选择从哪个设备启动

​ 在用户选择了启动磁盘后,UEFI会在这个磁盘中寻找EFI分区,然后找这个分区下 的/EFI/Boot/bootx64.efi(UEFI可以执行的二进制文件),由这个文件进行下一步操作(引导操作系统)。这个文件通常是在安装了操作系统之后,系统自动生成,从而让引导文件/EFI/Boot/bootx64.efi引导自己启动。[详见5.1节](###5.1. /EFI/Boot/bootx64.efi (???))

2、选择用哪个文件启动项启动

​ 这个启动项记录了引导文件(*.efi)所在的磁盘和分区以及文件名,比如 C:\EFI\boot\Microsoft\bootmgfw.efi或者C:\EFI\boot\Ubuntu\grubx64.efi,直接执行这个efi文件即可开始进行下一步操作(引导操作系统)。

2.5. bios和legacy的关系

​ 在搜资料的过程中,有人把legacy启动也叫成bios启动。我也不太清楚这些概念的具体分别。但我觉得可能是最初都是legacy启动方式,都用到了bios。但是想想又不对,因为Legacy启动全程只听了个名,在启动过程中也没见它啊,只看到了bios,所以叫成bios启动也有道理。但是如果叫成bios启动,那UEFI启动的时候也利用了bios中存储的启动顺序。并且在bios的界面中还可以选择是用Legacy启动还是UEFI启动(因为硬盘的分区格式是MBR还是GPT是可以更改的,所以启动方式也需要更改)。

​ 比较乱,但我觉得名称不重要,说出来名字知道是什么启动方式就够了。

3.windows的UEFI启动分析 参考1 参考2

​ 因为UEFI有两种启动项,即设备启动和文件启动。当使用单系统的时候,windows使用设备启动项和文件启动项的效果是相同的,因为就一个系统嘛。

​ 先看ESP分区:

​ 这是我ubuntu和win10双系统的ESP分区如果只有windows的话,下面的ubuntu文件夹应该没有。并且boot里的grubx64.efi文件也没有,因为grub是ubuntu用的启动程序。

3.1. UEFI设备启动项启动

​ 如前所述,如果使用设备启动项启动,首先需要在bios里把windows的ESP分区所在的硬盘调到最上面,即最先从这个设备启动。启动流程如下:

Tips:

  1. BCD文件:windows专用的引导程序,只能引导windows系统,且只能高版本系统引导低版本系统,比如win10的BCD可以引导win8 7 xp,反之不可。
  2. grub文件:linu使用的引导程序,可以引导linux,也可以引导windows。
  3. 由图可见EFI分区和windows分区可以不是一个磁盘分区,甚至可以不是一个磁盘。这意味着,有时候你的windows安装在D盘,但是bios里却要选择优先从C盘启动,因为可能C盘里存的是EFI分区。

3.2. UEFI文件启动项启动

如前所述,如果使用文件启动项启动,首先需要在bios里把windows的EFI文件启动项调到最上面,即最先从这个文件启动项。Windows Boot Manager就是一个文件启动项,它指向的内容是\EFI\Microsoft\Boot\bootmgfw.efi,如下图所示。Windows Boot Manager是在安装windows后系统自动生成并添加的启动项,他的名字随便改,指向的efi文件不变即可。而我记得安装ubuntu之后efi启动项并未自动添加,还需手动在bios里面添加启动项。(注意启动项的efi文件肯定是有的,只是没有添加到bios的boot manager选择界面里,所以还要手动添加。而winodows直接添加进了boot manager选择界面)

​ 使用Windows Boot Manager这一文件启动项进行启动的流程如下:

4.Ubuntu的UEFI启动分析 参考1 参考2

​ 了解了上面的知识之后,很自然的想起来在安装ubuntu的时候新建了一个分区作为EFI分区,用于Ubuntu系统的引导。在安装Ubunt的时候,在建立磁盘分区的时候有一项安装启动引导器的设备,就是在选择将ubuntu的EFI启动项安装在哪里。(注意倘若你安装好的ubuntu启动项丢失,你有U盘启动盘,是不能直接复制U盘启动盘中的EFI文件到你的系统安装的ESP分区的,因为它们指向的系统位置不对)

​ Ubuntu的启动分区文件结构:

​ 注意这里由于我现在已经是双系统,所以win10和ubuntu的EFI分区目录都是上面这样。

4.1. UEFI设备启动项启动

​ 如前所述,如果使用设备启动项启动,首先需要在bios里把Ubuntu的ESP分区所在的硬盘调到最上面,即最先从这个设备启动。

​ 在图中的情况下,如果从设备启动的话,先加载bootx64.efi,再加载同级目录下的grub4.efi的启动程序,最后引导系统启动。

4.2. UEFI文件启动项启动

​ 如前所述,如果使用文件启动项启动,首先需要在bios里添加ubuntu的文件启动项,指向\EFI\ubuntu\grubx64.efi,然后把这个EFI文件启动项调到最上面,即最先从这个文件启动项。

4.3.ubuntu下几个文件的作用 (???)

grub.cfg 启动配置文件,告诉启动器哪些系统,如何启动
grubx64.efi 启动项,引导系统启动,在bios中关闭Secure Boot时才能成功启动
mmx64.efi 启动项,引导系统启动,在bios中开启Secure Boot时也能成功启动
shimx64.efi 启动项,引导系统启动,在bios中开启Secure Boot时也能成功启动

​ 具体来看,三个efi文件主要功能是一样的,就是有没有安全启动(Secure Boot)功能的问题。Secure Boot在bios里可以设置。

5.Ubuntu和windows双系统启动项问题 参考1 参考2 参考3

5.1. /EFI/Boot/bootx64.efi (???)

​ 关于/EFI/Boot/bootx64.efi到底是怎么引导到系统的,我也不太清楚,尤其是在双系统的情况下。如果说安装了一个系统之后,该系统会把/EFI/Boot/bootx64.efi自动修改成引导自己的文件。那么如果选择从设备启动项启动,情况应该是:后装ubuntu,那么从设备启动项启动就是启动的grub引导项,可以选择进入ubuntu和win10;后装windows,那么从设备启动项启动就是启动的BCD引导项,只能进入windows,先装的Ubuntu进不去。

​ 在 这篇文章 中,详细写了这个bootx64.efi和其他efi文件的对比,跟我上面的猜想差不多,所以我上面的猜想应该是对的。

5.2. 两个ESP分区

​ 如果一个硬盘里含有两个ESP分区,分别是windows和ESP。选择设备启动项来启动,顺序如何?我猜应该是按照磁盘顺序来启动,前面的ESP分区引导的系统会被启动。

5.3. 装删系统,如何调整启动项

5.3.1. 如何调整启动项进入双系统

  • 如果选择从设备启动项启动,且5.1所讨论的成立的话,会出现进不去ubuntu系统的情况(此时应该是后装windows);

  • 如果选择从文件启动项启动,由于Ubuntu使用grub作为引导程序,还可以引导windows启动,也就是能进入双系统;而windows使用BCD作为引导程序,但是不能引导Linux启动,所以只能进入windows。

​ 所以要想能进入双系统,就需要在bios里将ubuntu的启动项调到最上面的位置,也就是最优先启动,这样就能通过grub引导进入双系统了。如下图所示:

5.3.2. 双系统变单系统如何调整启动项

​ 根据上面的解释,这个问题就很简单了。

  • Ubuntu+win10双系统 -> win10单系统

    ​ 在bios里把win10的启动项(Windows Boot Manager)移到最上面就行了。至于EFI分区中的ubuntu的启动项,删不删都无所谓。想删的话可以在ubuntu卸载之前,删除/boot/EFI/ubuntu目录。或者使用PE启动盘进入win10(因为win10下ESP是不可见的,但是也可以用命令行删除),用DiskGenius删除ESP中的ubuntu目录。

  • Ubuntu+win10双系统 -> Ubuntu单系统

    ​ 在bios里启动项顺序不用变。至于EFI分区中的windows的启动项,删不删都无所谓。想删的话可以在ubuntu系统里删除/boot/EFI/microsoft目录。

5.3.3. 如何增删bios中的启动项

  1. 通过bios界面添加

    通过bios界面只能添加启动项,不能删除启动项。添加步骤如下:

    如果像上面那样,添加UEFI文件不能选择的话,去Boot选项里把Secure Boot改成Enabled,然后再回来添加。一定记得添加完成后把Secure Boot再改成Disabled,否则使用grub引导时会出错(如果使用grubx64.efi作为引导的话)。

  2. ubuntu里通过efibootmgr添加和删除

  • 查看和删除启动项
efibootmgr                          #查看启动项
sudo efibootmgr -b  启动项号 -B     #删除启动项

  • 查看EFI分区位置

    sudo fdisk -l  #列出磁盘分区表
    

  • 添加EFI启动项

    #语法
    sudo efibootmgr -d EFI所在磁盘号 -p EFI所在分区号 -c -L 启动项名称 -l 启动项文件路径 #举例,这里添加的是boot文件夹下的启动项,并将其命名为bootx64,利用的是设备启动项启动时所调用的文件
    sudo efibootmgr -d /dev/sdb -p 3 -c -L bootx64 -l /EFI/Boot/bootx64.efi#命令解释
    #-d disk磁盘; -p partiton分区; -c create创建;
    #-L Label标签(名字); -l link 链接(到哪个efi文件)
    

  1. windows下通过EasyUEFI软件添加和删除

Tips:奇怪的是,不论是在windows下还是ubuntu下,我都只能增加启动项成功,而删除启动项失败。虽然明明删除了,但是开机还有,原因不明。我在EasyUEFI中看了一下,比如上面的test启动项是无效的,它分区编号是5;而其他有效启动项分区都是3。所以无法删除可能和这个原因有关。

5.4. 验证

​ 在我win10坏了且ubuntu启动项丢失的情况下,利用ubuntu启动盘进入系统修复了ubuntu的启动项。然后再次装好win10,然后进行启动项验证。两个系统的EFI引导在同一个分区。

5.4.1. 从设备启动

​ 进入grub引导程序,可选择进入Ubuntu和win10双系统。说明bootx64.efi指向的是EFI\ubuntu\grubx64.efi。比较奇怪,按理说后装了win10,那么bootx64.efi应该指向win10啊,但是还是指向ubunu。原因不明

5.4.2. 从EFI\boot\grubx64.efi启动

​ 进入grub引导程序,可选择进入Ubuntu和win10双系统,说明此文件和EFI\ubuntu\grubx64.efi一样,并且bootx64.efi也指向了这个文件。正常。

5.4.3. 从EFI\ubuntu\grubx64.efi启动

​ 进入grub引导程序,可选择进入Ubuntu和win10双系统。正常。

5.4.4. 从EFI\Mocrosoft\bootmgfw.efi启动

​ 进入BCD引导程序,直接进入win10系统。正常。

5.4.5. 选择win10的默认Windows Boot Manager启动

​ 进入BCD引导程序,直接进入win10系统,说明Windows Boot Manager就是指向EFI\Mocrosoft\bootmgfw.efi。正常。

6.如何修复Ubuntu启动项

6.1. windows下使用EasyBCD修复 参考

​ 实验表明只能操作windows的引导项,并不能操作linux引导项,不可行。原因:BIOS(MBR)升级到UEFI(GPT)后,微软就不支持那些legacy和非微软签名的内核的操作系统从BCD目录启动了。

6.2.从Ubuntu启动盘进入系统,利用boot-repair修复 参考

亲测可行

7.如何安装系统

7.1. U盘安装win10 参考

​ U盘安装win10适用于任何情况,无论之前你的电脑上有没有其他操作系统。参考已经讲得非常详细,分别是利用win10 官方ISO镜像直装和利用微PE辅助安装。当然这两种方式后者更好,主要有以下几个优点:

  • PE是存储在U盘里,独立于电脑之外的(拥有最高权限)迷你备用系统,可以做很多事情,比如:
    1.删掉c盘里奇怪的文件,让电脑能够正常开机
    2.利用傲梅分区助手在换新硬盘的时候无损迁移系统到新的硬盘
    3.利用NT工具破解忘记的系统密码
    4.利用DG工具在避免再次写入的情况下恢复误删的数据
    5.利用一些硬件检测工具判断是系统还是硬件原因引起的故障
    6.利用BOOTICE工具修复混乱的引导
    7.利用aida64查看系统真实的信息
    8.利用带网络的PE,让他人远程协助

  • 用PE安装win10,会把U盘分成EFI和普通盘两个分区,EFI里面就是PE系统不用动,而剩下的普通盘就可以当做一个普通U盘用了。但是win10 官方ISO镜像直装必须保证文件都在根目录下,限制了U 盘的使用。

  • 用PE里面可以放多个windows系统,只要存储有ISO镜像即可。但是不能利用PE来辅助安装ubuntu,因为PE是windows系统,而ubuntu是linux系统。

Tips:

​ 我在使用PE安装win10时,由于可以使用DiskGenius先对磁盘进行分区,再安装。但是先分区后,在选择windows的安装位置时,出现“我们无法创建新的分区,也找不到现有的分区”的错误。如果出现了这种错误,可以把原来DG分的分区删掉,成为未分配的状态,然后再次安装,在选择安装分区的时候手动新建并选择就可以了。

7.2. U盘安装ubuntu 参考

7.3. 硬盘安装系统参考

​ 这里的硬盘指电脑里的硬盘,而非移动硬盘(移动硬盘和U盘安装无区别)。硬盘安装要求电脑上有能用的操作系统,比如我电脑上有win10,我想装ubuntu,而我手头又没有移动存储设备(U盘之类),那么这种方法就可解燃眉之急。注意:前提是你的电脑是UEFI启动,因为只有这样才能选择不同启动项启动。

  1. 在电脑上开辟一块FAT32格式的分区:因为UEFI的ESP分区要求必须是FAT32的文件系统格式;

  2. 将ubuntu的安装盘ISO镜像文件解压进去;

    我这里测试了Ultroso软件不能对磁盘内置磁盘进行写入,好像只支持U盘。并且我查了一下好像很多工具都不支持写入电脑上的硬盘。因为我下载的ubuntu镜像文件只有1.6G,没有超过FAT32 文件最大4G的限制,所以可以自己解压复制进去。不知道这样和用工具写入有什么不同。我猜测工具写入会直接生成一个ESP分区,以便开机时选择从硬件启动(注意这里的硬件就是物理上独立的硬件,不是磁盘分区)。但是由于我们这里用文件启动项启动,倒也无所谓了。

  3. 添加文件启动项,以保证开机从这里引导进入系统

    • 不可行:EasyUEFI工具添加

      用EasyUEFI工具(管理员身份运行),把上面分区中的bootx64.efi文件添加为UEFI文件启动项。

      实测情况是由于我们是直接复制文件进去,不是工具写入,所以没有ESP分区。EasyUEFI必须找到ESP分区才能添加,而非任何一个EFI文件夹下的文件都能添加。Easy UEFI手动添加ESP分区也不可以,可以选择启动盘,但是无法选择系统盘(我们的都在一个Z盘里),所以没法添加启动项。

    • 可行:bios添加

      直接关机,开机时狂按F2(不同电脑不一样)进入bios,按照之前添加文件启动项的方式添加启动项。这时候你会发现这里面就可以手动寻找添加分区,添加完毕后记得关闭Secure Boot

      **Tips:**在bios添加完启动项之后,可能你会发现上面的界面中并没有新添加的启动项。实际上已经添加上了 ,只是此次不会显示,保存退出下次开机在进入bios或者boot manager都可以看见。我猜这是bios程序的原因,它只会在上电时读取一次EFI启动项,之后再操作它会保存你的修改到ROM中,但是本次不会重新加载,下次上电再重新加载。

  4. 关机,再次开机选择启动盘的引导程序启动

    ​ 关机后再次开机,狂按F12(不同电脑不同,台式机一般是Delete键),进入boot manager界面,选择从哪个引导项启动系统。

  • 选择刚刚添加的启动项启动

  • 这里我不安装,仅选择试用ubuntu,可以进行系统引导项修复

  • 进入系统
  1. 如果安装系统,操作同网上的教程;

  2. 安装完毕,关机后再次开机,狂按F2(不同电脑不一样)进入bios,将新安装好的系统的ubuntu启动项移到最上面,以保证再次开机时利用ubuntu的grub引导系统,可以进入双系统,设置好之后保存退出,电脑自动重启;

  3. 电脑重启后就会显示ubuntu的启动项引导界面了,也就是双系统重装成功了。

Tips:

  1. 安装完成后,可以把原来的ISO分区格式化了。也可以留着,倘若ubuntu出问题,还可以把它当成启动盘进入系统进行修复;

  2. 以上步骤就是将硬盘的某个分区当成了外部U盘来制作系统启动盘。与U盘不同的是,U盘安装系统是在bios里选择从U盘启动,也就是UEFI的设备启动项;而上面的操作由于我们的是硬盘分区,并不是设备,所以用的是UEFI的文件启动项

  3. 虽然Easy UEFI添加启动项没成功,但是在我用bios界面添加成功后,进入win10再次打开Easy UEFI添加,就可以识别到刚才我们的启动盘分区了,如下图。而之前是不能的(但是我这里猜测有没有可能我把文件放进启动磁盘分区后,重启电脑,再次打开Easy UEFI就能识别了?可能可以吧,当时忘了试一试)。

8.杂谈

​ 此次系统损坏,可谓损失惨重,win10下的软件全无,好在ubuntu还在。同时手边没有U盘,不能进PE也没法进一步修复。经过这一劫,总结如下:

8.1.一定要勤备份、常备份

​ 对于系统,装了一些软件后就创建还原点,或者利用PE做系统镜像;对于文件,不怕隐私问题的话可以上传云盘,否则移动硬盘随时拷贝,尤其在毕业设计阶段

8.2.自己解决问题各有利弊

​ 比如在我win10刚坏的时候,如果自己不瞎搞,选择重置系统,根本不会有这么多的麻烦(当然我就也不会去看上面那些知识了)。如果直接去找人修,可能也早就解决了(但是也未必,我找了好几个修电脑的连是启动项丢失的问题都不懂,对Ubuntu更不了解)。另外笔记本坏了可以去找卖笔记本的看看,他们往往也修笔记本,而且比专门修电脑的店(更多在搞台式机)更了解。但是自己解决问题更能符合你的要求,还能省钱。

8.3.回到问题本身

​ 首先插拔读卡器电脑蓝屏,应该是USB驱动问题,到底是啥问题我也不知道。在这之前几天我使用单片机的USB转串口时,出现了两次蓝屏但是都自动修复成功了,所以没在意。这次出问题后查了查,一般USB转串口出问题都是驱动的原因,比如PL2303和CH340,我就是用的CH340出现了两次蓝屏。解决方法很简单,换FT232的USB转串口,据说比较稳定,已下单购买。

​ 而此次蓝屏修复完毕后,电脑卡死不懂(估计蓝屏问题很严重?),我进行了强制重启,可能这导致问题雪上加霜。所以无论什么系统,千万不要强制重启(ubuntu比windows还严重,别问我怎么知道的),卡死了就别去动他,尽量多等一会。

8.4.觉知此事要躬行

在 [7.3.硬盘安装系统](###7.3. 硬盘安装系统参考) 这一小节中,我本打算只写理论操作,因为我觉得那是完全可行的。但是实际操作的时候就遇到了Easy UEFI无法添加启动项的问题。所以只有实际操作了才能验证理论分析的正确性。

8.5. 图床不要选gitee 参考

​ 本来这篇笔记已经写完了,按照参考资料的步骤上传图床然后把MarkDown的语法源码拷贝到CSDN即可实现多平台方便的发布。在我上传gitee图床后,发现有的图片显示,有的图片不显示。最后偶然查找到是因为gitee的图床对外部链接的图片有限制,最大900K。虽然我的文章中用的图片全部都是截屏,但有很多图片还是超过了900K,无奈全部进行了二次截屏压缩大小。

​ 真是惊喜,都最后了又出问题……

8.6. 记录Topyra的几个语法

8.6.1. 锚点 参考

##### 标题
[点此跳转到标题](#####标题)
标题

点此跳转到标题

需要注意的是MarkDown语法标题的#后面有空格,而锚点的链接#后面无空格

8.6.2. 目录

​ 段落->内容目录

ubuntu16.04+win10重装系统笔记相关推荐

  1. 联想Y7000安装Ubuntu16.04/Win10双系统,wifi问题,显卡驱动和CUDA10安装

    联想Y7000安装Ubuntu16.04/Win10双系统,wifi问题,显卡驱动和CUDA10安装 目录 Ubuntu16.04系统安装 安装NVIDIA-1050Ti显卡驱动 安装Cuda10 目 ...

  2. DELL XPS13-9360 安装ubuntu16.04+win10双系统

    来公司实习两天了,初步给分配的任务是跑一下demo.把所需要的工作环境安装好.幸好以前安装过双系统,不然的话就完了.第一天上班填了一上午表格,签了人生中第一份劳务协议,有点小激动,还给分配了一个100 ...

  3. 戴尔Inspiron14加【固态硬盘】更换【内存条】装【win10+ubuntu16.04】双系统

    我的笔记本型号是戴尔Inspiron14-3437,4G内存,500G的硬盘,上大学前的暑假买的,至今已有近5年了.之前一直装的win7旗舰版,每次360开机助手提示我开机速度打败全国1%的用户,速度 ...

  4. 笔记本安装Win10+Ubuntu16.04 LTS 双系统

    目标:安装Win10 + Ubuntu16.04 LTS 双系统 电脑:小米Air 13.3 高配版 工具: 硬件:U盘(2G就够,镜像包解压后文件大小为1.5G; FAT32格式, NTFS格式不识 ...

  5. 关于Ubuntu18.04+win10双系统开机引导错误的解决方法

    关于Ubuntu18.04+win10双系统开机引导错误的解决方法 文章目录 关于Ubuntu18.04+win10双系统开机引导错误的解决方法 前言 一.出现的错误 二.解决方法 1.查找电脑上所有 ...

  6. ubuntu16.04虚拟win7——经验笔记——问题:Kernel driver not installed (rc=1908) error.

    ubuntu16.04虚拟win7--经验笔记--问题:Kernel driver not installed (rc=1908) error. The VirtualBox Linux kernel ...

  7. 华硕服务器如何重装系统,华硕win10重装系统步骤

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 华硕win10重装系统步骤: 1.电脑插入制作好的u启动u盘启动盘,重启并快速按开机快捷启动按键引导u盘启动进入u启动主菜单界面, ...

  8. win10重装系统后连不上公司服务器,Win10重装系统后网络连接不了,重装win10系统后不能上网解决方法...

    为了让用户使用变的更高效与方便,微软经历了无数次的更新和无数次的测试,目前最受欢迎的操作系统是win10,在全新的win10 ui界面中,不仅可以看到新图标新功能,并且整个界面也得到了充分的升级,让人 ...

  9. surface pro win10 重装系统并解决屏幕亮度闪烁和降频的问题

    原文链接: surface pro win10 重装系统并解决屏幕亮度闪烁和降频的问题 上一篇: win10 全局快捷键设置启动程序 下一篇: LeetCode - Single Number II ...

最新文章

  1. 我在兰亭这三年之自动化框架升级
  2. WAIC 2021 | 百度量子计算段润尧:从理论到实践谈量子人工智能
  3. MySQL查询输入三个数的和_mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)...
  4. 第三周项目5-数组作数据成员
  5. React.js 入门与实战课程思维导图
  6. Java基础夺命连环16问
  7. 力扣114. 二叉树展开为链表(C++,解释一下别人的思路)
  8. qt访问mysql驱动64_64位 Qt5.12 MySql 连接问题
  9. SSL ×××和IPSec的主要区别
  10. 【工具推荐】光影魔术手
  11. MATLAB中load用法
  12. 太烧脑了,怪不得程序员会掉头发
  13. 解答,修正(JAVA+=运算程序诡异事件 )
  14. 过去式加ed的发音_关于动词过去式+ED的发音 动词过去式发音规则
  15. SpringBoot下DataSource连接配置
  16. 安卓手机如何把PDF文件转换为JPG图片
  17. Ubuntu LTS 18.04 双硬盘双系统安装以个人优化
  18. 【C语言】qsort函数使用(详解)
  19. android Web App开发
  20. 概率论计算圆周率(π)

热门文章

  1. 小程序学习(7)——电影页面设计制作及豆瓣API403解决
  2. 图片转文字微信小程序使用方法
  3. 用javaScript制作爱心特效
  4. 精准引流客源的方法 129种引流方法全方位操作
  5. 为了更好的实践与应用-机器人与ROS教学与培训
  6. 第十三课功能键之开根号——C#计算器编程教学
  7. 安装MySQL时cmake包的依赖问题
  8. 计算机用户被锁定如何解除,计算机被锁定怎样解除?用户受限又怎样解除?
  9. mysql memory 与redis_memory和redis
  10. kingcms php 搜索,KingCMS内容管理系统