LG gram 双系统全指南
为了和同学联机玩帝国时代2,以及为了下学期的编程课,五年没用过 Windows 的我决定装 Ubuntu20.04 LTS / WIndows 10 双系统了。
我的 LG gram 型号为 15Z90N-V.AA77C 。
这台机器有两块 512G SSD ,我在其中一块上已经安装了 Ubuntu 20.04 LTS 。BIOS 是 UEFI 系统,两块盘的分区表都是 MBR 的。
理论上来说,在两块硬盘上分别安装系统应该是一件很容易的事情。按照我的设想,很可能可以绕过 GRUB 直接 BIOS 引导,从而避开双系统最难解决的引导问题。然而实际上并不是这样,这里写两句方便大家避雷。
Preparations
Step 1
首先准备一个 Win10 的启动盘。这里我从学校网站拿到了正版系统。
Ubuntu 下制作 Windows 启动盘现在是个不小的问题。能在网上找到的大多数教程都会使用 WoeUSB 。但是这个项目因为各种原因已经没法用了。一种解决办法是利用 GParted 手动进行操作,不过实在是很困难,很有实力的可以考虑操作一下。
这里,我找了机房的 Windows 电脑用 Utraliso 做了启动盘。网络上有一些教程说不可以使用 USB HDD+ 写入镜像文件,我试过了是假的。
Step 2
把预备要装系统的硬盘中的数据搬到移动硬盘里。(啊?我下过这么多动画片吗?
由于 Win10 只能安装在 GPT 分区表的 NTFS 硬盘里,这里我们先用 GParted 把硬盘做好。
以下是我犯蠢踩到的雷,或许你不会碰到
我以前是做过硬盘的开机自动挂载的。且我的副硬盘从前是 MBR 分区表的 ext4 ,修改之后自动挂载会出现问题。具体地,在开机启动时就会导致需要等待 1min 30s 的挂载失败才能启动。
我提早预见了这一点,于是在重启之前先修改了 /etc/fstab
,修改了硬盘的相关信息。
但是,我他妈的改成主硬盘了。
重启之后 Ubuntu 直接他妈的 Failed to Boot 了,我一按 F2 看文档:满屏幕的红色 Failed 。我惊出一身冷汗,仿佛回到了多年前因为显卡驱动搞丢整个硬盘数据的那个下午。
冷静分析了一下,我认为没动过系统盘却蹦出这么多红字是很异常的。而且刚刚改过 /etc/fstab
,而且系统开始等待 1min 30s 的命令超时了,基本已经确定刚刚是改成主硬盘了。于是再次重启,在 GRUB 中选择 Ubuntu 高级选项进入 Recovery Mode 。此时两条挂载命令都失效了,我等了足足三整分钟才进入 Recovery Mode。接着打开命令行:
sudo nano /etc/fstab
顺利修改之后发现竟然提示我文件是只读的,没法修改。可我明明加了 sudo
啊?
搜索发现原来 Rcovery Mode 下挂载硬盘是只读的,得重新挂载才行。且此时不能顺利执行 remount ,需要手动操作:
umount -v /dev/nvme0n1p1
mount -o rw /dev/nvme0n1p1 /
其中 nvme0n1p1
是我主硬盘的名字。
然后再修改 /etc/fstab
即可。
要是我像多年前那个下午把系统重装了,现在应该也就没心情写这篇文章了罢。从这种对比来看我还是成长了不少的(
重要提示:在修改类似 /etc/fstab
的关键文件时,务必要审慎。
Step 3 (Optional)
准备一个 Ubuntu 的启动盘。当然,如果你没有多余的空U盘的话,这一步可以稍后再做。具体有什么用我们暂且按下不表。
Install, and Update Windows
装 Win10 是一件非常简单的事情,只要一直按步骤操作即可。
安装完毕后尝试重启电脑,这时果然是绕开了 GRUB 的,可以发现 BIOS 启动项中有 Ubuntu 和 Windows Boot Manager ,修改启动顺序就可以进入不同的系统。……虽然这只是暂时的美景。
进入系统后你会发现缺少了许多驱动。比如 Fn 键无效啦,无线网卡没有驱动啊,触摸板用不了啊,蓝牙连不了鼠标啊一类的。Win10 自动更新是指望不上的,我们需要到 LG 官网上下载 LG Update Center 才能解决问题。值得注意的是,LG Update Center 对每个型号都有特制的版本,并非通用万金油。必须要选中本机对应的型号才可以正常进行更新。看来 LG 的软件部门其实不太行。
多次更新重启之后,你会发现 BIOS 中的 Ubuntu 启动项消失了,GRUB 也被杀掉了。没错,天杀的微软和 Win10 自动更新后会杀掉 GRUB 和 Ubuntu 启动项,没想到吧……
吊诡的是,要解决 Ubuntu 启动项消失的问题,你必须首先进入 Ubuntu 才行。
一种最快捷的方法是利用你准备好的 Ubuntu 启动盘,利用 Live CD 临时进入 Ubuntu。
另一种做法是在 Win10 下使用 bcdedit
(似乎只有专业版和企业版可以用?)
bcdedit /set {bootmgr} path EFIubuntushimx64.efi
如果这没用,可以尝试
bcdedit /set {bootmgr} path EFIubuntugrubx64.efi
然后重启两次,或许就能进入 Ubuntu 了。
这里我做过尝试,莫名奇妙地就正常启动 Ubuntu 了。且 BIOS 里虽然有 Windows Boot Manager ,但是 Win10 实际上无法引导,还需要进一步修复。
不管是用了哪种办法,现在你进入了 Ubuntu 的环境,打开终端,准备进行引导修复吧。
进行引导修复竟然是整个流程中最简单的事情。
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt install boot-repair
sudo boot-repair
进入 boot-repair
后选择推荐的修复即可,绝大多数的常见错误都可以修好。boot-repair
实在实在是太傻瓜式、太厉害、太方便了,免除了我一系列的巨大麻烦。
等待修复完成后重启,就可以熟悉的在 GRUB 界面中选择启动项了。进入 BIOS 也可以发现 Ubuntu 和 Windows Boot Manager 的引导项也被修复了,不过这时候也没必要调整启动顺序了,不如直接操作 GRUB 来得方便。
The End
实践发现,并不是 Win10 每次自动更新后都需要修复引导的,应该是只有刚装好的那次大更新会有这个问题。所以不必担心后续的麻烦。
此外,我出于本能关掉了 Win10 的快速启动,谁知道以后会不会出什么幺蛾子。
装好 LG 的各种驱动之后,我第一次体验到了这个本子的完整功能:指纹传感器能用了,可以通过 Thunderbolt 口充电了,Reader Mode 的效果和我之前理由 Ubuntu 夜灯实现的那个还是有点差距的……
联动: https://www.cnblogs.com/Shimarin/p/13735803.html
至此双系统安装成功,可喜可贺,可喜可贺。