|
本帖最后由 不点 于 2013-5-25 10:53 编辑
2011yaya2007 发表于 2013-5-25 09:28 
我感觉是 ud 分区的特殊性造成的。
ls (fd0)/ 与 ls (ud)/ 的结果相同,是隐藏分区的文件。
ls (fd0,0)/ ...
你的意思是说,fd0 上的 BPB 没有指向 FAT 文件系统,反而指向了 UD 自己的 fb 文件系统?这当然是不行的。
你搞错了,必须让 BPB 指向 FAT 文件系统,才能够让 DOS 认这个软盘。DOS 不可能知道 fb 文件系统,不可能支持 fb 文件系统。
BPB 中的保留扇区数(reserved sectors,2字节的 WORD),可以理解为 FAT 的 PBR 所占据的扇区数。PBR 之后紧接着就是 FAT 表。你需要修正保留扇区数,让 FAT 表之前的扇区(直到 MBR)都算在保留扇区数之内。
注意,不要更改 (fd0,0) 的 PBR 里面的信息。你需要更改的仅仅是 MBR 上的 BPB 中的保留扇区数。就是欺骗 DOS,让 DOS 认为这个软盘就是一个 FAT 文件系统,其 PBR 占据 N 个扇区(即 reserved sectors),而不是通常的 1 个扇区。MBR 同时也是这个软盘的 PBR,是其 PBR 的第一个扇区,PBR 总共有 N 个扇区。
否则的话,DOS 怎么可能知道 (fd0,0) 呢?DOS 认为,软盘就是软盘,没有分区表,只有 PBR。DOS 认为,只有硬盘才有分区表。
想让 DOS 直接识别软盘的分区表?进而再识别出分区 (fd0,0) 里面的 FAT 文件系统?没门。必须在 MBR 上安放 BPB 来欺骗 DOS 才行。
|
|