|
本帖最后由 不点 于 2016-10-25 14:45 编辑
一般来说,@retval 为 “0” 或 “非0”,表示成功或失败(究竟 0 代表成功还是失败,恐怕也是不统一的)。但究竟是怎样的情况,还要看所执行的命令是哪个。具体究竟是怎样,还要看源代码,或者问问 chenall。
128 可能是指 0x80,表示的是 BIOS 第一个硬盘的号码。
(md) 设备确实也有个 “最大扇区号” 或 “总扇区数”。但是,由于各种主板的内存布局很不统一,所以,这里很可能只计算了第一个连续内存块,其它内存块都没统计上。
cat 命令好像无法表示出 (md) 的全部扇区。
但是,可以用 (rd) 来解决。(rd)+1 永远表示 (rd) 上的全部字节(就是说,甚至可以精确到字节,即,能够考虑到不足一个扇区的那些 “零头”)。
cat --hex (rd)+1 就可以了。不过,你需要事先定义 (rd) 的起始地址和长度。map --rd-base=... 和 map --rd-size=... 可以用来定义 (rd) 的起始地址和长度。
关于主板 BIOS 的内存布局,你可以搜索 Internet 查阅相关信息,或搜索 “int15, E820”。
grub4dos 的 displaymem 命令,可以显示出主板 BIOS 的内存布局。由于内存布局的复杂性(因主板的不同而不同),因此无法直接获取内存的 “总扇区数”。
|
|