无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 13533|回复: 29
打印 上一主题 下一主题

[分享] 用UltraISO做BIOS与EFI双启光盘

    [复制链接]
跳转到指定楼层
1#
发表于 2021-5-7 10:49:17 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hhh333 于 2021-9-2 06:05 编辑

经过查阅资料,UltraISO从9.71版本以后,可以通过按Ctrl+alt+I来插入EFI启动文件,又经过咨询,这个功能不支持命令行添加。可不可以通过界面操作来达成呢?经测试是可行的,现共享给大家。
  1. @echo off
  2. rem 本程序使用isodir来定义打包的目录,可以拖放打包目录进行打包
  3. rem 如果未指定打包目录,则使用本文件所在位置的上两级作打包目录
  4. rem 打包目录本身及路径均不能带空格,否则可能出现不可预计的结果
  5. rem 生成的ISO与该文件夹位于同一目录下,文件名为打包目录的目录名
  6. rem 启动文件位置的定义约定使用相对于打包目录的相对路径。
  7. set r=-preparer http://bbs.wuyou.net -publisher H3
  8. For /F "tokens=1" %%i In ('DATE /T') do SET d=%%i
  9. color 3f
  10. PUSHD %~dp0
  11. if not "%1"=="" goto Get_isodir
  12. SET TP=%cd%
  13. cd ..\..
  14. set isodir=%cd%
  15. cd %TP%
  16. call :Get_isoname %isodir%
  17. goto start
  18. :Get_isodir
  19. set isodir=%1
  20. set isoname=%~n1%

  21. :start
  22. set biosfile=BOOT\ISOLINUX.BIN
  23. set efifile=EFI\efisys.bin
  24. ultraiso.exe -jlong -l -imax -optimize %r% -boot %isodir%\%biosfile% -volu %isoname% -out %isodir%\..\%isoname%.ISO
  25. cls
  26. color 4f
  27. echo 注意:
  28. Echo.
  29. echo 下面进行UltraIso的界面按键操作,请保持程序为当前窗口并等待窗口关闭……
  30. Echo.
  31. start ultraiso.exe %isodir%\..\%isoname%.ISO
  32. nircmd.exe clipboard set %isodir%\%efifile%
  33. echo 开始添加EFI启动文件……
  34. nircmd.exe wait 1000
  35. nircmd.exe sendkeypress ctrl+alt+i
  36. nircmd.exe wait 1000
  37. nircmd.exe sendkeypress ctrl+v enter
  38. echo 开始保存ISO文件……
  39. nircmd.exe wait 1000
  40. nircmd.exe sendkeypress ctrl+s
  41. echo 退出UltraISO操作界面……
  42. nircmd.exe wait 1500
  43. nircmd.exe closeprocess ultraiso.exe
  44. echo 开始打包,请稍候……
  45. ultraiso -in %isodir%\..\%isoname%.ISO -d "%isodir%"
  46. goto end

  47. :Get_isoname
  48. set isoname=%~n1%
  49. goto :eof

  50. :END
  51. echo 操作全部完成!请按任意键退出……
  52. pause>nul
复制代码
其关键是用了一个小工具nircmd.exe来达成按键的目的。大致的逻辑是:
1、定义格式,加上BIOS启动,用ultraiso命令行产生一个小的模板ISO;
2、启动ultraiso图形界面打开模板ISO,通过nircmd.exe发送按键操作UI,加上EFI启动信息,再关闭图形界面;
3、再用命令行把要打包的文件加入进去。


注:经过与开发者沟通,最新版9.7.6.3829已经支持命令行加-secondboot来直接添加EFI启动项,因此以上可以直接加,不必再启动界面:
ultraiso.exe -jlong -l -imax -optimize %r% -boot %isodir%\%biosfile% -secondboot %isodir%\%efifile% -volu %isoname% -out %isodir%\..\%isoname%.ISO -d "%isodir%"


评分

参与人数 5无忧币 +21 收起 理由
2012chenyuwen + 5 很给力!
一二三四五六 + 1
天地一心 + 5 赞一个!
新空气 + 5
wuxin9712 + 5

查看全部评分

2#
 楼主| 发表于 2021-5-11 16:51:47 | 显示全部楼层
2012chenyuwen 发表于 2021-5-11 16:32
H大,麻烦问一下,小工具nircmd.exe从何处来?谢谢!

http://www.nirsoft.net/utils/index.html

点评

谢谢H大!  详情 回复 发表于 2021-5-17 07:46
回复

使用道具 举报

3#
 楼主| 发表于 2021-9-2 06:06:55 | 显示全部楼层
新版已经直接支持命令行了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-4 07:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表