引言

在 Nintendo Switch 上,Atmosphère 提供了两种创建虚拟系统的方法:隐藏分区和文件形式,但在实际使用中一般使用文件形式。

为什么选择文件形式?

文件形式的虚拟系统有几个显著的优势:

  • 方便备份和恢复:只需备份内存卡上的 eMMC 目录即可。
  • 更换内存卡简单:无需复杂操作,只需复制文件。

然而,文件形式的虚拟系统在读写速度上不如隐藏分区,导致游戏安装和加载时间较长。因此,建议将游戏安装到内存卡中,机身内存仅用于系统文件和游戏存档。

优化虚拟系统分区

虚拟系统是实体 eMMC 的完全镜像,占用大小为 29GB。如果仅用于游戏存档,会浪费大量空间。通过 NxNandManager,我们可以调整用户分区的大小,节省更多空间用于安装游戏。

NxNandManager 简介

NxNandManager 是一个开源工具,允许在电脑上对 Switch 的 NAND 进行各种操作,包括:

  1. 备份和恢复系统和虚拟的 NAND
  2. 解密备份的加密分区
  3. 调整 NAND 的用户分区
  4. 查看 NAND 的详细信息
  5. 高级复制功能
  6. 挂载虚拟磁盘
  7. 内置资源管理器,浏览和导出 NAND 各分区的文件内容

注意:NxNandManager 只能调整用户分区的大小。

缩减用户分区大小

  1. 将内存卡中的 “eMMC” 目录复制到电脑上(可选,但推荐,NxNandManager 在电脑上处理文件的速度比在内存卡上快得多)。
  2. 将内存卡上的 “eMMC” 文件夹重命名为 “eMMC_old”。
  3. 使用 NxNandManager 打开电脑或内存卡上的 eMMC\00 文件。
  4. 加载对应的 prod.keys(通过 Lockpick_RCM 获取)来解密文件系统。
  5. 确认 NxNandManager 正确识别了设备 ID,固件版本识别可能不对,可忽略。
  6. 进入 “Tools” -> “Resize NAND”。
  7. 输入需要的用户分区大小(单位为 MB)。1GB=1024MB,如果需要设置 2GB,输入 2048。
  8. 缩减的文件被命名为 RAWNAND.resized。如果文件大小不大于4GB,可以直接重命名为 00 并替换内存卡上的原文件,删除多余的 00-07 文件。
  9. 开机验证调整是否成功。

扩充用户分区大小

随着新游戏不断安装,游戏存档对用户分区的占用会持续增加,会导致无法新建游戏存档和启动游戏,需要扩充用户分区。但 NxNandManager 直接在 Resize NAND 选项中调大分区大小,会在生成 RAWNAND.resized 文件时出错,具体出现在复制数据进行到原始用户分区大小后,无法继续复制空数据到扩大后用户分区。

经过摸索,可以通过以下方式实现扩充。

  1. 备份所有游戏存档,例如使用 JKSV。
  2. 将内存卡中的 “eMMC” 目录复制到电脑上。
  3. 将内存卡上的 “eMMC” 文件夹重命名为 “eMMC_old”。
  4. 使用 NxNandManager 打开电脑或内存卡上的 eMMC\00 文件。
  5. 加载对应的 prod.keys(通过 Lockpick_RCM 获取)来解密文件系统。
  6. 确认 NxNandManager 正确识别了设备 ID。
  7. 选择用户分区并在右侧选择 “Mount”(可能需要安装 dokan 驱动程序)。
  8. 将所有用户数据从新挂载的磁盘复制到电脑上。
  9. 卸载用户分区。
  10. 进入 “Tools” -> “Resize NAND”。
  11. 勾选 “format user” 选项(必需,否则在复制到原始大小时出错)。
  12. 将用户分区调整到所需的新大小。
  13. 完成调整大小后,使用 NxNandManager 打开新生成的 RAWNAND.resized 文件。
  14. 选择用户分区并在右侧选择 “Mount”(取消勾选只读选项)。
  15. 将之前备份的所有用户数据复制到新挂载的磁盘上。
  16. 卸载用户分区。
  17. 使用 NxNandManager 重新打开修改后的 RAWNAND.resized 文件。
  18. 确认所有游戏存档已成功迁移。
  19. 进入 “Tools” -> “emuNAND Creation Tool”。
  20. 选择 SD File (AMS) 作为 emuNAND 类型。
  21. 选择内存卡作为目标磁盘并点击 “Create emuNAND”。
  22. 等待写入过程完成,然后将内存卡插回 Switch,检查所有游戏存档是否正常工作。
  23. 如果没有问题,删除 “eMMC_old”;如果有问题,使用 “eMMC_old” 恢复之前的状态。

使用 emuNAND Creation Tool 的原因是调整大小后的 “00” 文件肯定会大于 4GB,无法复制到格式化为 FAT32 的内存卡上。emuNAND Creation Tool 会将文件分割成 4GB 的单位。