Surface设备完美安装Linux/Archlinux双系统教程
一、 前言
博主是计院学生,因为要经常背着电脑到处跑,考虑到自己并不那么健壮,就入手了surface laptop。然后学习过程中会经常用到Linux,用虚拟机久了也不太方便,所以就尝试装双系统,折腾了很久,走了不少弯路,最终也算是挺完美的弄好了,所以就记录一下方便后来人。
注意
标题的完美安装指的是可以在Secureboot模式下正常引导双系统,也即对Windows不造成任何影响,此外Linux设备可以正常驱动。
Secureboot是仅允许受信任的系统在Surface上启动,安装非windows系统会无法直接启动,关闭Secureboot会导致Windows hello无法使用,本文后面会讲到如何在开启Secureboot模式下,正常引导双系统。
二、准备工作
外接设备
- 一个U盘(不低于8G)
- 一个外接键盘(建议有线,有的系统一开始用不了蓝牙)
需要外接键盘是因为linux安装过程中因为驱动问题,其自带键盘无法使用,需要使用外接键盘进行设置
下载镜像(iso)
本文以UBUNTUDDE REMIX 20.10为例(博主是颜控),这些系统的安装步骤大同小异
镜像下载大家可以去对应系统的官网下载,也可以去镜像站,这里给大家推荐清华大学镜像站
点击箭头所指的获取链接,即可选择对应的版本下载。
制作U盘启动盘
- 下载制作工具:Rufus(点我前往官网下载),下载后无需安装
- 打开下载Rufus,看到以下界面,插入提前准备好的U盘
- 点击选择按钮,找到提前下好的镜像,也就是iso文件,点击打开
- 完成后,保持默认选项不用更改,点击开始开始按钮,如果出现弹窗则保持默认选择,一直下一步即可,知道开始写入。
- 写入过程大概会持续几分钟,耐心等待哦~
至此,启动盘制作完成!
给 Linux/Archlinux 分配硬盘空间
这一步建议大家提前做好,避免出现各种问题~
- 鼠标右键开始图标(也就是底下的Windows图标),点击磁盘管理
- 可以进入以下界面
- 找到你想安装ubuntu的目标磁盘,选择后右键,选择压缩卷,输入你想分配的空间大小,建议不低于50GB
- 压缩完成后可以得到一个未分配空间,这里因为我提前分配好了,所以可以看步骤2中的图
三、安装 Linux/Archlinux
关闭Secureboot
前面提到了secureboot的作用,Fedora和Debian / Ubuntu都支持Secureboot,而Arch不支持。
但是由于后面我们需要更换linux内核,会导致无法安全启动,所以此处我们都先关闭Secureboot。
- 选择重启电脑,等待关机后,长按音量加,也即F5
- 等待电脑进入UEFI,即下图界面
- 选择security,可以看到Secure boot,点击下方的change configuration,在展开项中选择none,然后OK
- 然后点击boot configuration,可以看到第一个是Windows的启动项,用手将USB configuration拖到第一项
- 完成后点击exit,点击reboot即可
正式安装
Surface上Linux/Archlinux的安装与其他设备并无二异,此处以ubuntu为例简要介绍,大家也可以参考其他更详细的教程,跳过本教程这一步
- 上一步重启后会进入以下界面,可以保持默认选项,等待进入即可
- 等待系统进行磁盘检查,完成后会进入引导界面
- 点击运行安装程序即可,按照提示
- 到了分区这一步后,如果你想安装双系统,一定要选手动分区,具体分区可以参考其他帖子,此处给出一个例子(分区参考)
- 设置完用户名和密码后,选择重启电脑,按提示拔掉U盘
至此,linux已经安装到了你的surface设备上了~
四、安装Surface驱动
ubuntu自带的驱动不能兼容Surface的硬件,所以很多硬件无法使用,比如键盘,触屏等,我们现在安装第三方内核
关于各Surface设备可用硬件详情,可以查阅此处,基本上就相机用不了
由于Linux和Achlinux存在差异,下面分别介绍不同版本上驱动的安装过程
Debian / Ubuntu驱动
- 首先,导入用于签名软件包的密钥
wget -qO - https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc \
| gpg --dearmor | sudo dd of=/etc/apt/trusted.gpg.d/linux-surface.gpg
- 然后,添加存储库配置并更新APT
echo "deb [arch=amd64] https://pkg.surfacelinux.com/debian release main" \
| sudo tee /etc/apt/sources.list.d/linux-surface.list
sudo apt update
- 现在,可以安装linux-surface内核及其依赖项,还可以启用iptsd服务以使用触摸屏
sudo apt install linux-image-surface linux-headers-surface iptsd libwacom-surface
sudo systemctl enable iptsd
- 执行完上述步骤后,可以重启系统,完成后你会发现键盘,电源,屏幕触摸等等都可以使用了
Arch驱动
- 首先,导入用于签名软件包的密钥
wget -qO - https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc \
| sudo pacman-key --add -
- 然后,检查并验证密钥的指纹,然后在本地对其进行签名
sudo pacman-key --finger 56C464BAAC421453
sudo pacman-key --lsign-key 56C464BAAC421453
- 现在,可以通过在 /etc/pacman.conf末尾添加以下内容来添加存储库
[linux-surface]
Server = https://pkg.surfacelinux.com/arch/
比如可以使用gedit来修改:
gedit /etc/pacman.conf
- 现在,更新存储库数据,以安装linux-surface内核及其依赖项,还可以启用iptsd服务以使用触摸屏
sudo pacman -Sy
sudo pacman -S linux-surface linux-surface-headers iptsd
sudo systemctl enable iptsd
- 执行完上述步骤后,可以重启系统,完成后你会发现键盘,电源,屏幕触摸等等都可以使用了
五、签名内核
由于我们更换了Linux内核,会导致secure boot在开启状态下无法直接引导系统,所以我们需要将内核进行签名,将Linux-Surface内核的密钥导入到引导加载程序中,以便内核可以引导而不禁用secureboot。
安装签名工具
Linux和Archlinux可以分别通过以下方式安装:
Debian / Ubuntu
sudo apt install linux-surface-secureboot-mok
Arch
sudo pacman -S linux-surface-secureboot-mok
下载签名公钥
所用公钥:linux-surface/linux-surface/keys/MOK.cer
导入公钥
在下载公钥的文件夹打开终端,或将终端定位到对应文件夹
sudo mokutil --import surface.cer
此过程会让你摄制一个密码,务必记住,后面要用
看到以下提示即成功:
SKIP: surface.cer is already enrolled
成功后重启电脑
选择公钥
重启以后会进入以下界面,比较复古,回车就好
回车后会进入以下界面,选择第二个,应该是import mok,由于我此处导入了,是delete mok,明白即可
进入下一个界面后,选择continue,按照提示输入你导入公钥时设置的密码,然后回车即可
完成后即可进入UEFI,在secure boot中将boot configuration改为Microsoft & 3rd party CA,然后你就会发现开机时没有红色提示了,同时系统可以正常引导双系统
六、最后
至此,linux/archlinux已经完美的安装到你的Surface设备上了,后续工作,比如换源等等,可以参考其他资料,此处也不再赘述了。
码字不易,感谢大家的阅读,不当之处也欢迎大家指出,有问题欢迎留言,谢谢!
本文所用仓库地址为:源仓库地址,在此感谢
未经作者允许,禁止转载!