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:
1 parent
6b2b24ccdf
commit
14e69f62f5
1 file changed
+5
-5
@@ -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:
|
||||
|
||||
Reference in new issue
Block a user