Asus Rog Ally 默认使用 Windows 11 Home,但同时它也是一个普通的 PC,因此可以运行 Linux。该简易教程将会描述一个在内部 NVME 驱动器上实现双引导的方法。该教程的目标是实现 ChimeraOS 与 Windows 系统的双引导。
Contents
准备工作
- USB Hub,或者扩展坞,推荐使用支持 PD 充电的扩展坞
- 两个 USB 驱动器
- 有线网络(推荐)
- 有线键盘鼠标
准备镜像
- ChimeraOS 镜像,目前是 Unstable 版本
- 一个 Linux Live CD,需要较新的内核,建议使用 Ubuntu 23.04 Desktop
Step 1
由于 ChimeraOS 的安装器并不支持同一个驱动器的双引导,因此需要先将它安装到一个独立设备中,随后复制到内部驱动器,一旦完成,该系统可以被正常的引导和更新。
该步骤需要使用两个驱动器,其中一个写入安装镜像,另一个作为安装目标。可以使用 etcher 或者 rufus 的 dd 模式写入安装镜像。
将写入安装镜像的 USB 驱动器,和目标 USB 驱动器同时接入扩展坞的 USB 接口,按住音量 -
和开机按钮打开 Rog Ally 的电源并进入 BIOS 设置界面。在 Boot Menu 中选择镜像所在的 USB 驱动器。镜像启动后将会进入安装界面。如果此时你的扩展坞有有线网络连接并且被安装镜像识别,则会直接进入安装步骤。否则需要设置无线网络用来下载系统镜像。
如果由于 MT7922e 驱动的问题,网卡没有正常启动,则可以通过长按电源按钮(大约10秒)直到电池指示灯熄灭,完成一次电源循环,重复上述步骤则可进入 WIFI 设置。连接完成后选择 Quit
则会回到安装界面。
目前 unstable 的镜像中需要选择 Advanced Install Install ChimeraOS with advanced options.
并在菜单中启用 Use Firmware Overrides DSDT/EDID
(使用空格标记该选项)。接着等待系统安装完成。
安装完成后可以启动到该系统以检查安装是否正常。确认无误后可以关闭系统电源。
Step 2
在这个步骤,我们将需要把安装好的系统转移到内置的 NVME 驱动器中。因此该步骤使用一个 Linux Live CD 新建引导分区和数据分区,并复制所有的文件。
首先在安装镜像的 USB 驱动器中使用相同方法写入一个 Linux Live CD 的镜像。将该 USB 驱动器与安装好 ChimeraOS 的 USB 驱动器同时接入扩展坞的 USB 接口,按住音量 -
和开机按钮打开 Rog Ally 的电源并进入 BIOS 设置界面。在 Boot Menu 中选择 Live CD 所在的 USB 驱动器。以 Ubuntu 23.04 Desktop 为例,选择 Try Ubuntu 进入桌面。启动命令行。
首先查看当前分区表,可以从输出中找到头部分区结束的位置,Number 则代表分区号。假设安装 Windows 已分配的分区为 1-5,则新建的分区应该为引导分区6和数据分区7。请根据实际数据计算/替换数值。
sudo parted /dev/nvme0n1 print
下面的内容假设你的 NVME 驱动器的分区尾部有空余空间,头部已使用 8761MB
空间,那么我们可以通过如下指令新建一个 512MB
的 ESP 分区,并将后续空间分配为数据存储空间。
sudo parted /dev/nvme0n1 mkpart ESP fat32 8761MB 9298MB name 6 frzr_efi sudo parted /dev/nvme0n1 set 6 boot on sudo parted /dev/nvme0n1 mkpart primary btrfs 9298MB 100% name 7 frzr_root
接着新建两个挂载点
sudo mkdir /mnt/{source,target}
首先复制引导分区的内容
sudo mount /dev/sda1 /mnt/source sudo mount /dev/nvme0n1p6 /mnt/target sudo rsync -avP /mnt/source/* /mnt/target sudo umount /mnt/source sudo umount /mnt/target
然后复制数据分区的内容
挂载分区
sudo mount /dev/sda2 /mnt/source sudo mount /dev/nvme0n1p7 /mnt/target
为数据盘创建 btrfs 快照用于转移数据. 注意: 镜像路径 chimeraos-43_7787158 取决于安装时的版本,可能会发生变化可以通过 ls /mnt/source/deployments/
获取正确名称。
sudo btrfs subvolume snapshot /mnt/source/var /mnt/source/var.snapshot sudo btrfs subvolume snapshot /mnt/source/home /mnt/source/home.snapshot sudo btrfs subvolume snapshot /mnt/source/deployments/chimeraos-43_7787158 /mnt/source/chimeraos-43_7787158.snapshot sudo btrfs subvolume snapshot /mnt/source/var/lib/portables /mnt/source/var-portables.snapshot sudo btrfs subvolume snapshot /mnt/source/var/lib/machines /mnt/source/var-machines.snapshot sudo btrfs subvolume snapshot /mnt/source/var/tmp /mnt/source/var-tmp.snapshot</code> sudo btrfs subvolume snapshot -r /mnt/source/var.snapshot /mnt/source/var.readonly sudo btrfs subvolume snapshot -r /mnt/source/home.snapshot /mnt/source/home.readonly sudo btrfs subvolume snapshot -r /mnt/source/chimeraos-43_7787158.snapshot /mnt/source/chimeraos-43_7787158.readonly sudo btrfs subvolume snapshot -r /mnt/source/var-portables.snapshot /mnt/source/var-portables.readonly sudo btrfs subvolume snapshot -r /mnt/source/var-machines.snapshot /mnt/source/var-machines.readonly sudo btrfs subvolume snapshot -r /mnt/source/var-tmp.snapshot /mnt/source/var-tmp.readonly
转移数据
sudo btrfs send /mnt/source/var.readonly | sudo btrfs receive /mnt/target/ sudo btrfs send /mnt/source/home.readonly | sudo btrfs receive /mnt/target/ sudo btrfs send /mnt/source/chimeraos-43_7787158.readonly | sudo btrfs receive /mnt/target/ sudo btrfs send /mnt/source/var-portables.readonly | sudo btrfs receive /mnt/target/ sudo btrfs send /mnt/source/var-machines.readonly | sudo btrfs receive /mnt/target/ sudo btrfs send /mnt/source/var-tmp.readonly | sudo btrfs receive /mnt/target/</code> mkdir /mnt/target/deployments sudo btrfs subvolume snapshot /mnt/target/var.readonly /mnt/target/var sudo btrfs subvolume snapshot /mnt/target/home.readonly /mnt/target/home sudo btrfs subvolume snapshot -r /mnt/target/chimeraos-43_7787158.readonly /mnt/target/deployments/chimeraos-43_430a76b sudo btrfs subvolume snapshot /mnt/target/var-portables.readonly /mnt/target/var/lib/portables sudo btrfs subvolume snapshot /mnt/target/var-machines.readonly /mnt/target/var/lib/machines sudo btrfs subvolume snapshot /mnt/target/var-tmp.readonly /mnt/target/var/tmp cp -r /mnt/source/{boot,etc,.etc,source} /mnt/target
删除快照
sudo btrfs subvolume delete /mnt/target/var.readonly sudo btrfs subvolume delete /mnt/target/home.readonly sudo btrfs subvolume delete /mnt/target/chimeraos-43_7787158.readonly sudo btrfs subvolume delete /mnt/target/var-portables.readonly sudo btrfs subvolume delete /mnt/target/var-machines.readonly sudo btrfs subvolume delete /mnt/target/var-tmp.readonly</code> sudo btrfs subvolume delete /mnt/source/var.readonly sudo btrfs subvolume delete /mnt/source/home.readonly sudo btrfs subvolume delete /mnt/source/chimeraos-43_7787158.readonly sudo btrfs subvolume delete /mnt/source/var-portables.readonly sudo btrfs subvolume delete /mnt/source/var-machines.readonly sudo btrfs subvolume delete /mnt/source/var-tmp.readonly
卸除挂载
sudo umount /mnt/source sudo umount /mnt/target
关闭 Live CD,并拔除 USB 驱动器。按住音量 -
和开机按钮打开 Rog Ally 的电源并进入 BIOS 设置界面。在 Boot Menu 中选择 Linux。不出意外的话,你将会进入ChimeraOS。
至此使用内置 NVME 驱动器实现的双引导已经实现。
Step 3
这一步将会使用 rEFInd 替代 ChimeraOS 的引导,实现在 rEFInd 界面选择引导的系统。目前 Rog Ally 的 BIOS 还不支持 rEFInd 界面下直接使用手柄控制,但如果后续完成了与 Steamdeck 相同的功能,则可以在 rEFInd 界面不借助键鼠选择引导的系统。
安装 rEFInd
sudo frzr-unlock sudo pacman -S refind sudo refind-install
重启系统后,就可以在 BIOS 设置中找到 rEFInd 启动项,将它设为首选启动项。之后就可以不通过 BIOS 切换所需启动的系统。
总结
上述内容简单描述了如何在内置的 NVME 驱动器中实现 Windows 和 ChimeraOS 的双引导。并通过 rEFInd 增强了双引导的可用性。
ChimeraOS 使用 frzr
引导,并使用 Label 识别系统分区,因此系统所在 btrfs 分区必须使用 Label frzr_root
而引导分区则使用 frzr_efi
作为 Label。只要在磁盘不出现第二个相同 Label 的分区,即可正常工作。
注意:ChimeraOS 正式发布支持 Rog Ally 的版本时,我将修改本教程并相应地包含一些屏幕截图。
2条评论. Leave new
rog ally 安裝refind並且可以正確引導 但不支持ally本身的手把控制refind選單 這方面問題是否有解呢
我给 ASUS 支持部门发过邮件,他们回复是要求已经提交给 BIOS 团队,但是没法告诉我什么时候有这个功能。目前实际上还是要键鼠,或者进一次 BIOS 界面,然后就可以用 Gamepad 了,没有特别完美的方案。参考 Steam Deck 应该是 BIOS 方面的问题。