重装Win10并删除ESP分区后,修复Ubuntu16在UEFI的双系统引导

介绍

最近笔记本的win10一直无法升级到最新版本,查看原因后发现是ESP分区太小了,只有不到100M,而win10推荐的大小是至少500-700M的空间。为了扩大处于分区表开头位置的ESP分区,我删除了ESP以及在ESP之后的win10系统分区。现在硬盘上还存在于Ubuntu的两个分区,一个是挂载点 / ,一个是 /home

由于ESP分区直接被删除并且在Win10的重新安装中被彻底重置,原先Ubuntu的EFI启动文件已经被删除。经过多方查找资料。修复的方法如下。

首先,我们用一个Ubuntu的live cd(刻录的U盘也是可以的)启动系统。如果你想先启动你之前的Ubuntu系统内核,请遵循下面的步骤,如果想直接用live cd修复,请直接到修复部分。

启动原Ubuntu内核

在GURB页面按c进去命令行模式,接着输入 ls 命令。屏幕中会显示目前所有识别的硬盘以及分区。比如 (hd0,gpt1), (ht0,gpt2) 之类的。接下来,使用命令 ls (hd0,gpt1)/ 查看这些分区下面的文件夹,找到原先Ubuntu系统 / 挂载点所在的分区。用上面的命令尝试所有的分区(更改命令中的 gpt1 为对应的序号),找到含有 /boot 文件夹的分区。

找到之后(比如我们确定了是 gpt3 ),我们输入 set root=(hd0,gpt3)

然后,我们输入 set pager=1 来确保分屏显示。

然后,输入 cat /boot/grub/grub.cfg 来查看原grub的配置文件。找到第一个 menuentry 的启动项。

记录上面以 linux 开头这一行的命令,注意可能有折行,要一直抄到尾部,UUID不能错。

然后,稍微上面几行,记录以 initrd 开头这一行的命令。

然后,我们依次输入上面记录的两个命令,注意不要出错。最好拍照片拍下来,除了UUID,其他路径部分都是可以用tab补全的。

最后,我们输入 boot 命令,启动系统。

修复引导

如果你是使用live cd,请先输入下面的命令进入root用户

然后,我们添加 boot-repair 的ppa源并安装,我们需要使用这款软件进行修复。

然后,我们使用 sudo boot-repair 命令运行这个工具,然后选择第一个选项。然后按照该工具的提醒进行修复即可。最后这个工具会生成一个报告,可能会花一点时间,耐心等待就好。

显示下面这样的提示证明修复成功,可以重新启动系统进入BIOS调整UEFI的启动顺序为ubuntu即可。

博主在使用 boot-repair完成修复后,发现编辑 /etc/default/grub 的自定义设置不生效了,并且 boot-repair生成的启动菜单项目太多。如果你也遇到上面的问题,你可以在上面的所有操作完成后,进入到你的Ubuntu系统,运行下面的命令重装你的GRUB2

然后再重启系统即可。

解决WIN10系统 VIA HD驱动无法自动切换外置音响和耳机的问题

注意:现在这个方法可能已经不适用,请在设备管理器里将声卡更新最新版本WIN10驱动!

qq%e6%88%aa%e5%9b%be20161112132139


问题表述

不想看过程的可以直接看下面的问题解决部分!

笔者电脑:神州K650C-I7D4,

这几天新升级了WIN10,突然发现声音无法播放。查看 播放设备发现系统的默认设备变成了耳机(Headphone)类似下图

注意,因为笔者的问题已经解决。。所以只能找个WIN7里类似的图,实际上WIN10的UI肯定跟这个有区别

QQ截图20150803232119

当我们把默认设备改成扬声器后,喇叭即可出现声音。

但是问题又来了,在以前的系统WIN8.1或者WIN8,的时候,如果我们插入耳机,系统会自动把默认音频硬件切换到耳机。而在WIN10,可能是由于驱动原因,这一自动操作只能由手动完成。造成了非常严重的麻烦。

随后笔者发现,如果我们卸载VIA High Definition Audio驱动的话,也就是用微软默认的High Definition Audio。缺可以进行自动切换了。这不禁让我想起来在以前WIN7的时候也是因为VIA驱动太烂,笔者直接不装,系统默认就是High Definition Audio,如下图(也就是笔者现在正常的状态)

QQ截图20150803232537

 

但是在后面又发现,即使我们回退了驱动或者在当前系统卸载了VIA,一旦重新启动系统,这个倒霉的驱动又回来了,然并卵。包括当我们采取多种方式卸载驱动,这个VIA都十分的顽固,每次都重新出现在系统里。

QQ截图20150803232931

如上图,我在41分的时候删除了这个驱动然后马上重启,发现在开机的时候系统自动请求安装该驱动并且马上就装上了。。真是快啊。

所以,解决方法就是禁止系统安装这个VIA驱动

问题解决(改动系统请注意安全)

QQ截图20150803233128

查看事件的具体信息,我们找到了这个系统自动驱动会先加载到viahdb01.inf_amd64_33dd55a863d25a14这个文件夹里,然后通过viahdb01.inf进行安装。这个目录的实体是在C:\Windows\System32\DriverStore\FileRepository里面(如果你的这个文件夹跟我不一样,但是问题跟我类似,也可以尝试解决)

QQ截图20150803233333

笔者想到的方法是删除系统对该文件夹的一切权限,包括SYSTEM。来禁止开机的时候安装这个倒霉玩意。

首先由于这个文件夹权限比较高,我们需要把这个文件夹的所有者由SYSTEM改成我们自己。

注意,由于笔者已经修改过,下面这个图应该现在的所有者是SYSTEM,这只是一个之后的示意图

QQ截图20150803233720

这一步完成之后,找到上一个页面左下角的禁用继承,然后会弹出一个对话框,选择一个带有删除子样的选项,这样就删掉系统其他用户的继承权限。

QQ截图20150803233948

最后,别忘了点击添加,给我们自己添加“完全控制”权限

QQ截图20150803234334

现在,只有我们这个用户对这个文件夹拥有权限,所以我们可以把这个文件夹下面的文件全部删除,保持为空或者你也可以勾选只读之类的~

然后回到设备管理器,卸载VIA驱动,重启之后,系统就会为我们安装High Definition Audio,这样VIA驱动不能自动切换耳机和外放的问题也就解决了。

重启之后我们再看这个设备,发现系统重启之后为我们安装了hdaudio.inf,而不是viahdb01.inf了

QQ截图20150803234601