fix(vkernel): 不再 unmount 根文件系统,app 运行期才能读盘

- app 是 spawn 之后异步运行的,运行期仍要 fat32.open(load_so / 资产文件);原来在自动启动块后面立刻 fat32.unmount(),导致 app 第一次 LOAD_SO 就 "[so] failed to open file"

- 该 unmount 原本只为防“破坏性 FAT32 测试”改坏 disk.img,而那些测试已删除,留着只剩切断 app 文件访问的副作用

- 卸载能力保留给非根挂载点(U 盘/多分区),将来配挂载点表 + 引用计数
This commit is contained in:
TermiNexus committed 2026-10-14 18:42:24 +08:00
1 parent 6b2b24ccdf
commit 14e69f62f5
1 file changed
+5 -5
+5 -5
View File
@@ -314,11 +314,11 @@ class ViperKernel:
sched.Scheduler.enable()
# FAT32 destructive tests removed to prevent disk.img corruption
# (write/rename/delete/mkdir/rmdir permanently modify the disk image)
fat32.unmount()
serial.puts("[fat32] unmounted\n")
# 破坏性 FAT32 测试已删除(write/rename/delete/mkdir/rmdir 会永久改坏 disk.img)。
# **不 unmount 根文件系统**:app 是 spawn 之后异步运行的,运行期还要读盘
# (load_so / 资产文件等),一旦卸载根 FS,它们的 fat32.open 会直接失败
# (现场:app 第一次 LOAD_SO 得到 "[so] failed to open file")。
# 卸载只应服务于非根挂载点(U 盘/多分区),并配挂载点表 + 引用计数。
else:
serial.puts("[fat32] mount failed\n")
else: