此教程目前仍不完善
请根据您的折腾路线(安装侧载应用、刷Windows 10 Build 15035还是运行Linux系统)查找对应的教程。
目前本文章仅能介绍如何让你的Surface RT能在开机时出现一个菜单,让你选择启动内置存储(eMMC)的Windows RT 8.1还是MicroSD里的树莓派Linux系统。
一、准备工作和下载,下述没特殊标明的就是一个都不能少
- 另一台能够使用 Windows 和 Linux 的普通电脑
- 一个读卡器
- 一个至少 16GB 的 microSD 卡,建议 64GB 为宜
- 一个至少 16GB 的 U 盘(机械移动硬盘供电不够,不能用)
- 一个集线器
- 一个 USB 键盘,哪怕是只有三个键的键盘都行(集线器和键盘没有也不是不行,但是如果有就轻松很多)
- 下载 Jail Break
- 下载 特制的树莓派系统镜像,约 2.8GB
- 下载安装树莓派系统烧录器
- 下载 特制的 GNU GRUB 和我给的
grub.cfg
grub.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64insmod ext2
search --no-floppy --set=root --file /EFI/Microsoft/Boot/boutmgfw.efi
insmod font
set gfxmode=1366x768
set gfxpayload=keep
insmod efi_gop
insmod efi_uga
insmod gfxterm
terminal_output gfxterm
ls
echo "How about we explore the area ahead of us later?"
loadfont /unicode.pf2
echo "按音量键不会使GRUB2停止计时,你只有5秒钟。"
insmod png
# 这里就有一行注释掉的设置主题的指令,你取消注释直接用就行
# set theme=/theme/Manjaro/theme.txt
export theme
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
set timeout=5
set default=3
menuentry "Raspberry Pi(需mmcblk1p1)" {
set gfxpayload=keep
# linux /zImage root=/dev/mmcblk1p1 quiet rw rootwait console=tty0 cpuidle.off=1
linux /zImage root=/dev/mmcblk1p1 cpuidle.off=1
devicetree /tegra30-microsoft-surface-rt-efi.dtb
}
menuentry "Raspberry Pi(需mmcblk1p2)" {
set gfxpayload=keep
# linux /zImage root=/dev/mmcblk1p2 quiet rw rootwait console=tty0 cpuidle.off=1
linux /zImage root=/dev/mmcblk1p2 cpuidle.off=1
devicetree /tegra30-microsoft-surface-rt-efi.dtb
}
menuentry "Raspberry Pi(需mmcblk1p2,安静)" {
set gfxpayload=keep
linux /zImage root=/dev/mmcblk1p2 quiet rw rootwait console=tty0 cpuidle.off=1
# linux /zImage root=/dev/mmcblk1p2 cpuidle.off=1
devicetree /tegra30-microsoft-surface-rt-efi.dtb
}
menuentry "Windows RT 8.1" {
chainloader /EFI/Microsoft/Boot/boutmgfw.efi
}
menuentry "重新启动" {
echo "System rebooting..."
reboot
}
menuentry "关机" {
echo "System shutting down..."
halt
}
menuentry "从下一个卷启动" {
exit
} - 下载 Li_zip 为 RT 打包整理的 appx (可选的,如果不打算玩 RT 的应用就不要。通常要用这些软件,就要禁用 sppsvc,因为 sppsvc 会阻止运行侧载软件启动。而禁用 sppsvc 会导致 Windows 在此期间未激活,Office 也认为未激活。)具体方法可以看在2024年为Windows8.x系列成功侧载第三方metro应用 复活你的Surface RT!,注意视频中提到的
Product Policy Editor
一般需要先用上面的Jail Break
启用测试模式(Test Mode),然后再用下面说的SignTool
将Product Policy Editor
签名后才能运行,也可以用Jail Break
将测试模式(Test Mode)和UMCI Audit Mode这两个都启用,再运行Product Policy Editor
。
同时也要下载 Li_zip 提供的 Product Policy Editor 和 Windows App Boss - 下载 Signtool 和 RT Jail Break(可选的,与 Jail Break 不同,这个是一些桌面应用程序)
- 一个能访问 archive.org 的环境或代理(可选,如果不需要用Windows Media Builder额外下载 Windows 的开始屏幕等类似补丁,或者你的 Windows 系统当年已经安装这些更新,就不需要)
- Surface RT 的原厂镜像。访问 Surface 恢复映像下载然后按照提示选择型号,输入序列号,下载原厂镜像。
- 如果你发现你的 C 盘是带锁的,即启用了设备加密,那么请以管理员身份打开命令提示符,输入
manage-bde -off C:
此期间不会有进度条,如果想查看进度,可以输入manage-bde -status C:
注意这个加密百分比应该是从 100% 往 0% 递减的,因为你是在“反加密”。当已加密百分比是 0 的时候,就说明解密完毕了。
你如果暂时不打算将其解密,那就要导出恢复密钥,以防发生意外使得 TPM 自动解锁失效,导致你无法进入 Windows 系统。在资源管理器中右键C盘,选择管理 BitLocker,然后点击“备份恢复密钥”将其备份到U盘,将来如果进不去系统了就可以在恢复环境中输入密钥,然后用那里的命令提示符输入上述指令解密。
二、开始突破
- 在正常电脑上操作:将 Jail Break 文件夹的所有文件都放到U盘里,让
Jailbreak_USB_Menu.cmd
这个文件在 U 盘的根目录。 - 你可以这个时候把下载好的树莓派镜像写入到 microSD 卡里,在此期间继续以下步骤,统筹安排节省时间。
先将下载的 xz 文件解压,得到 img 文件。然后打开安装好的树莓派镜像烧录器 Raspberry Pi Imager,左边 Device 选 NO FILTERING,中间“系统”选择菜单最下面的 Use Custom,然后选择 img 镜像文件,右边“储存卡”选择你要存放树莓派系统的 microSD 卡。开始写入。
写入完毕后还会自动进行校验。当整篇文章完成后,你可以删除 bootfs 分区,用其他分区软件(例如 DiskGenius 或 KDE 分区管理器)在未划给 rootfs 分区(ext4 文件系统)的空间上新建一个 FAT32 分区,用来存放你个人的媒体和文档。 - 现在把集线器插到 RT 上,把实体键盘和U盘插到 RT 上。你的键盘必须有回车键。(RT 的自带键盘或者任何蓝牙键盘到时候都不能用)
- 在 RT 上,打开 U 盘,以管理员身份运行 Jail Break 的主菜单,等待出现界面后,输入
1
(Install Golden Keys),按 Enter。 - 等待返回主界面,再按下
5
(set boot menu timeout),然后输入一个靠谱的数值,比如10
,再按Enter。 - 现在USB口只留下U盘和键盘,别的都拔掉,重启 RT。在黑屏后立即按住音量减键。Surface 会从 U 盘启动。
- 看到出现 Windows Boot Manager 的黑白英文界面后,用键盘选择 install Golden Keys 。要求你同意协议,选 accept。(Golden Keys 的安装界面特殊适配,可以识别开始按钮,而启动菜单不行)注意,一旦正常进入 Windows 系统,那么 Golden Keys 很可能就会失效。对于此种情况(我就是),必须趁 Windows 没插手,立即再次长按音量减键,从 U 盘启动,然后用键盘选择 Install Yahallo,选了这个后 Surface 会出现一个满屏黑底白字的“难绷”界面,待看到
PLEASE RESET YOURDEVICE MANUALLY USING THE POWER BUTTON
时,便可长按电源键关机,然后再开机。如果不提示任何内容直接重启了,那么有可能是Golden Keys没有安装成功。这次我用的 RT 还有一个逆天问题,长按音量减键进入 U 盘的界面时,它会检测到我按的音量减,于是焦点往下移动一格,然后默认倒计时停止。而这个界面你只有按音量键可以代替上和下方向键,开始按钮和电源按钮都起不到回车进入的作用,逆天吧!必须借助外接键盘,就为了按那么一个回车。而RT又只有一个 USB 口,所以得有集线器。然后再次在按住音量减键且插着U盘的时候开机,看到 Windows Boot Manager 之后,用键盘选择 Uninstall Golden Keys,然后再长按电源键关机。
【如果没有键盘和集线器,那么你需要使用RT上的Jailbreak_USB_Menu
、命令提示符中的bcdedit
、另一台电脑上的 bootice 或 EasyBCD 任一工具,在安装完 Golden Keys 之后,让RT进入Windows系统,运行 Jailbreak_USB_Menu 或者找一个别的电脑运行 bootice、EasyBCD 等工具并打开U盘的\EFI\Microsoft\Boot\BCD
(不区分大小写),将 Install Yahallo 设为默认启动项,再在RT上安装 Yahallo ,完了再按照同样的方法将 Uninstall Golden Keys 设为默认,再在RT上卸载 Golden Keys。如果你和我一样遇到了长按音量减键却导致默认的选项焦点消失,必须借助键盘按回车键的情况,你却又没有键盘,那么可以在管理员权限的命令提示符中输入bcdedit /store D:\EFI\Microsoft\Boot\BCD /set {bootmgr} displaybootmenu no
然后按回车(假设U盘是D:,请自行替换为你的U盘实际的盘符)或者用bootice等工具将displaybootmenu
数值设为No,这样应该就会不显示菜单,直接进入默认的启动项目,也就不用担心在不该按下音量减键的时候没有及时松开了。当然你也可以试着卡点松开音量减键:在你按住了音量减键并开机,RT已经开始从U盘启动,而菜单还未显示的时候,立即松开音量减键,这样不用刚才说的指令,虽然还会显示菜单,但是你在重要的时机松开了音量减键,就不会失去焦点,还是能成功完成安装Golden Keys等操作。】 - 现在可以进入 Windows 系统了,运行
msinfo32
,看看“安全启动状态”是不是关闭了。 - 如果已经关闭了安全启动,那就进行正式开始的步骤!
如果还是开着的,那只能清空内置硬盘重装系统了。先格式化 U 盘(U 盘必须格成 FAT32 文件系统),然后将之前下载的原厂镜像文件全部复制到 U 盘。将 Surface 从 U 盘启动,进入“疑难解答→高级选项→命令提示符”,依次输入:(rem
开头的是注释,无需输入)现在 C 盘应该是未格式化的系统盘,试试输入1
2
3
4
5
6
7
8
9
10
11
12
13diskpaRT
list disk
rem (此时确认清楚哪个硬盘是内置硬盘,通常是0)
sel disk 0
clean
convert gpt
create par EFI size=500
rem (par和partition相同,sel和select相同)
rem (这里size的值应该不小于300)
create par primary
sel par 2
assign
exitc:
按回车,如果提示“不包含可识别的文件系统”,那就输入format c: /q /fs:ntfs
。如果输入c:
提示“系统找不到指定的驱动器。”就再试试别的盘符。
现在关掉命令提示符窗口,然后进入疑难解答,选择初始化电脑!
完了进 Windows RT 8.1 系统,设置完一切后,你需要从头开始再试一遍突破。
三、正式开始
- 现在回到正常电脑,按照网络上这篇文章的方法处理 bootfs 分区中的文件。
点开之后,直接下载usb-linux-boot.zip
,然后把解压出来的东西都替换进存放树莓派系统的存储卡/U盘 bootfs 分区里。bootfs分区里也会有一个usb-linux-boot.zip
,两个应该是完全一样的。
虽然其他文章会说是通过startup.nsh
启动,但我们最后要用 GRUB 启动,不需要在乎startup.nsh
。
你应该替换了下述文件:startup.nsh
zImage
acpiviewapp.efi
bootarm.efi
(不同的bootarm.efi
可指向不同的启动项目,如树莓派系统,微软恢复环境,Yahallo 等,参见此处)
- 打开 bootfs 分区,找到
\EFI\boot\bootarm.efi
,把它改名,例如bootarm_raspi.efi
。 - 把之前下载的
grub.efi
改名叫bootarm.efi
,放到上一步的\EFI\boot\bootarm.efi
位置。 - 把
unicode.pf2
和我给的grub.cfg
放到 bootfs 分区的根目录中。 - 如果你想个性化GRUB,可以先在bootfs新建一个叫
theme
的文件夹,然后去 Gnome-look
下载一个你喜欢的主题,将其解压,然后把包含theme.txt
的文件夹(注意是包含的文件夹)放到 bootfs 的/theme
目录里。然后用 VScode 等软件打开grub.cfg
,然后加一行(1
set theme=/theme/wonder/theme.txt
wonder
为示例,具体看你下的主题) - 现在把存储卡插到 RT 上,以管理员身份打开命令提示符。
- 再从这个命令提示符中输入
start
,这样另开一个管理员的命令提示符,后续更方便。 - 最好在这个命令提示符里输入以下指令重启资源管理器:
1
2taskkill /f /im explorer.exe
explorer - 右键开始按钮,打开磁盘管理,看一下 EFI 分区是哪一个分区,从 1 开始数。
- 再在这个命令提示符中输入:
1
2
3
4
5
6
7
8diskpart
sel disk 0
list par
sel par 1
rem (如果EFI分区是第二个就sel par 2)
assign
rem (与之相反的指令就是remove)
exit - 执行
notepad
。 - 然后点击“文件→打开”,在文件浏览窗口里看看 EFI ESP 分区是哪个盘符,比如F盘。
- 关掉记事本。
- 执行
ren F:\EFI\Boot\bootarm.efi bootarm_ms.efi
- 执行
ren F:\EFI\Microsoft\Boot\bootmgfw.efi boutmgfw.efi
(boutmgfw.efi
这个名称是我起的,并且在grub.cfg
中指定。如果不把这个文件重命名,那么 RT 开机就一定从这个文件启动,不加载我们要的GRUB) - 接下来最好不要断电或者重启!下一步没完成的期间你的 RT 不能从内置硬盘启动!
- 把 bootfs 里所有的文件都复制到 EFIESP 分区里。可以在资源管理器里复制,也可以用命令复制。命令示例(例如你的 bootfs 分区是 E 盘,EFI 分区是 F 盘)
- 大功告成!现在你的 RT 应该可以启动 GRUB,并且开机时出现启动菜单了!