|  | 
| 本帖最后由 2011whp 于 2021-7-16 20:37 编辑 
 title 启动第一硬盘的 bootx64.efi
 !BAT
 command
 # 无害命令command 使菜单可选中
 set @extend 0x60200 1
 #  利用,定义扩展变量,清空 (md)0x301+1 扇区的内容
 find /efi/boot/bootx64.efi > (md)0x301+1
 set @extend 0x60000 1
 #  定义扩展变量
 write (md)0x300+1 hdaaaa
 #  强制写入 变量名 hdaaaa , 下面 开始 逐字符循环
 :forstar
 if "%%hdaaaa%%a"=="a" goto :end
 # 下面的 hd0 改为 hd1 即为启动 第二硬盘
 if "%%hdaaaa:~0,4%%"=="(hd0" chainloader %%hdaaaa:~0,7%%/efi/boot/bootx64.efi && boot
 set hdaaaa=%hdaaaa:~1%
 goto :forstar
 :end
 
 
 附加: 内存观察
 
 查看   0x60200  开始的 16字节
 cat  --hex (md,0x60200,0x200)0x0+1,16
 (详见:2015版帮助 4.1节   5.5节  6.14节  10章)
 
 字节输入方式:
 echo -e \x00\x65   管道至变量 或 内存 文件
 
 
 内存是 数值时  的提取(要计算一下), 同样适用 @retval 变量 存储  的是数值时
 set  /a  syz=*0x60000
 内存数值引用是 32位的小端序数值
 
 | 
 |