luck9806 发表于 2020-3-1 21:33:44

第一次使用UEFI shell,请求那位大侠帮忙写一下加载NVME驱动并引导M.2自动化命令

各位大侠:
      今天第一次了解UEFI shell,经过手动输入命令,测试可以在我的老主板上,加载NVME驱动,并引导M.2磁盘的系统,因为刚入门不会写脚本,请帮忙写一下自动化加载NVME驱动,并引导M.2磁盘的系统

liujun2000 发表于 2020-3-1 21:43:56

列出你输的命令

wyqd20200302 发表于 2020-3-2 16:42:07

load xxx.efi

luck9806 发表于 2020-3-3 13:26:15

liujun2000 发表于 2020-3-1 21:43
列出你输的命令

感谢!
使用命令如下:
load fs0:\efi\boot\nvmex64.efi
map -u
hd11b:\efi\boot\bootx64.efi

luck9806 发表于 2020-3-3 13:49:08

本帖最后由 luck9806 于 2020-3-3 13:56 编辑

我直接建立了startup. nsh文件测试失败,存在2个问题:1、加载nvmex64.efi驱动后,磁盘不分配盘符,需运行map -u,加入此命令运行出错显示:map:unknown flag -u,此Map -U手工输入运行无问题
2、插入U盘后盘符会变化,需判断正确盘符的方法。

282198284 发表于 2020-3-3 14:42:47

你把M.2磁盘里面的\efi\boot\bootx64.efi改成\efi\boot\nvmexbootx64.efi就可以用下面这人脚本

把脚本保存为startup. nsh

for %i in fs0 fs1 fs2 fs3 fs4 fs5 fs6 fs7 fs8 fs9 fsa fsb
if exist %i:\efi\boot\nvmex64.efi then
load %i:\efi\boot\nvmex64.efi
map -r
goto act1
endif
endfor
:act1
for %j in fs0 fs1 fs2 fs3 fs4 fs5 fs6 fs7 fs8 fs9 fsa fsb
if exist %j:\efi\boot\nvmexbootx64.efi then
%j:
goto act2
endif
endfor
:act2
\efi\boot\nvmexbootx64.efi

luck9806 发表于 2020-3-3 22:16:23

282198284 发表于 2020-3-3 14:42
你把M.2磁盘里面的\efi\boot\bootx64.efi改成\efi\boot\nvmexbootx64.efi就可以用下面这人脚本

把脚本保 ...

非常感谢!
学习了FOR使用方法,但脚本还不能使用,脚本在运行 map-r 后会出现shell: cannot read from file -no media错误,脚本将停止工作退出。使用map -u,又出现上述的问题 ,测式发现只有这2个参数可以显示加载了NVME驱动后的盘。

luck9806 发表于 2020-3-3 22:21:15

MAP 命令使用说明:
MAP [-d <sname>]
MAP [[-r | -u][-v][-c][-f][-t <type[,type...]>]]
MAP
    -d       - Delete a mapping
    -r       - Reset to default mappings
    -u       - Update mappings
    -v       - Display verbose mapping information
    sname    - User defined mapping name (wildcards are permitted)
    handle   - The number of handle, which is same as dumped from 'dh' command
    -c       - Display the consistent mapping name
    -f       - Display the normal mapping name(not consistent mapping)
    -t       - Display the device mapping name according to the device type:
               fp   - Floppy
               hd   - Hard Disk
               cd   - CD-ROM
               Types can be combined by putting a comma between two types.
               Spaces are not allowed between types.
    mapname- Mapped name for the device followed by a postfix ':'

Note:
    1.The consistent mapping is persistent across the mapping reset and the
      system reboot.
    2.Only characters and numbers are allowed inside of sname.
    3.Redirection is not allowed when running map because we do not know the
      file system before mapping is done.
    4.Output redirection is not supported for 'map -r' usage.
    5.Option '-u' will only add/delete the mappings for new/removed devices.
      The unchanged device mappings with user-defined mappings are unchanged.
      The current dir, if current device is not changed, will also be
      preserved.
在脚本内运行测试过如下都失败
MAP -r | -u
MAP -r
MAP-u

luck9806 发表于 2020-3-3 22:24:53

使用过connect-r 不能找到M.2硬盘文件。测试盘符:blk*,fs*,hd11*

282198284 发表于 2020-3-3 22:34:03

luck9806 发表于 2020-3-3 22:16
非常感谢!
学习了FOR使用方法,但脚本还不能使用,脚本在运行 map-r 后会出现shell: cannot read fro ...

这样的话,就没办法全自动了,只能手动运行一下第二步的脚本了

luck9806 发表于 2020-3-3 22:53:45

282198284 发表于 2020-3-3 22:34
这样的话,就没办法全自动了,只能手动运行一下第二步的脚本了

多谢指导,我现在使用的2.31版,请问在哪下载新版再试一试

luck9806 发表于 2020-3-3 22:55:39

Map -u 脚本运行错误提示,单独输入运行又可以很怪

282198284 发表于 2020-3-3 23:26:21

luck9806 发表于 2020-3-3 22:53
多谢指导,我现在使用的2.31版,请问在哪下载新版再试一试

版本是固件不是Shell

282198284 发表于 2020-3-3 23:31:30

luck9806 发表于 2020-3-3 22:55
Map -u 脚本运行错误提示,单独输入运行又可以很怪

也许你要加一个启动器才能全自动

282198284 发表于 2020-3-3 23:37:08

你可以试一下把微软的bootmgfw.efi也放在nvmex64.efi同一个盘中,加载驱动后启动bootmgfw.efi,让BCD指向nvme盘中的winload.efi,这样应该是可以的

luck9806 发表于 2020-3-4 10:04:19

282198284 发表于 2020-3-3 23:37
你可以试一下把微软的bootmgfw.efi也放在nvmex64.efi同一个盘中,加载驱动后启动bootmgfw.efi,让BCD指向nvm ...

感谢指导,昨天我也想到把M.2盘的EFl引导文件全部拷贝到机械硬盘中,不执行map命令,利用BCD跳转,今天晚上试试。
还想咨询一下,Shell读取脚本的等待时间可以取消吗
另你说的其它方法定制EFⅠ是怎么做呢

282198284 发表于 2020-3-4 10:32:25

本帖最后由 282198284 于 2020-3-4 10:33 编辑

luck9806 发表于 2020-3-4 10:04
感谢指导,昨天我也想到把M.2盘的EFl引导文件全部拷贝到机械硬盘中,不执行map命令,利用BCD跳转,今天晚 ...
取消是要在运行时加参数才能取消,启动器就多了,比如微微自带的也是一个启动器,也可以是自己写的

luck9806 发表于 2020-3-4 20:52:35

282198284 发表于 2020-3-4 10:32
取消是要在运行时加参数才能取消,启动器就多了,比如微微自带的也是一个启动器,也可以是自己写的

经过测试已可以加载启动了,谢谢指导!
最后还是想取消计时,运行加参数要怎么做呢,谢谢!

luck9806 发表于 2020-3-4 21:59:40

本帖最后由 luck9806 于 2020-3-4 22:13 编辑

运行参数在网上已找到,但未使用成功,请大家指导。
-delay[:n] 指定等待 startup.nsh 启动的时间。默认是5秒,-delay:0 表示立即执行
我加载shell.efi方法如下:加载不成功{:1_189:}
\efi\boot\bootx64.efi -delay:0

282198284 发表于 2020-3-4 22:47:06

luck9806 发表于 2020-3-4 21:59
运行参数在网上已找到,但未使用成功,请大家指导。
-delay[:n] 指定等待 startup.nsh 启动的时间。默认是 ...

你可以用xor试一下,应该是可以的

luck9806 发表于 2020-3-5 20:21:13

282198284 发表于 2020-3-4 22:47
你可以用xor试一下,应该是可以的

测试了还是一样失败,怎么改参数都一样,无法取消5秒的等待,唉
有没有其它的方式加载M.2盘驱动后才启动系统呢,后台自动化完成。

282198284 发表于 2020-3-5 21:07:57

luck9806 发表于 2020-3-5 20:21
测试了还是一样失败,怎么改参数都一样,无法取消5秒的等待,唉
有没有其它的方式加载M.2盘驱动后才启动 ...

刷主板BIOS

luck9806 发表于 2020-3-5 21:13:48

282198284 发表于 2020-3-5 21:07
刷主板BIOS

最初的想法是改BIOS的,联想的主板,BIOS找不到下载点,备份的也不用,好像这主板有三个BIOS文件,所以无法下手,

luck9806 发表于 2020-3-5 21:16:31

了解使用CLOVER也建立一个菜单,硬盘变化时菜单会变,安装硬盘不便

282198284 发表于 2020-3-5 21:29:13

luck9806 发表于 2020-3-5 21:13
最初的想法是改BIOS的,联想的主板,BIOS找不到下载点,备份的也不用,好像这主板有三个BIOS文件,所以无 ...

那只能找大神给你改一个Shell不等5秒的才行了

luck9806 发表于 2020-3-5 21:36:22

282198284 发表于 2020-3-5 21:29
那只能找大神给你改一个Shell不等5秒的才行了

网上找到的参数表,为何都无法使用,很怪呀

Shell 启动参数:
shell.efi ]

-nostartup 进入 Shell 时不执行脚本 startup.nsh
-noconsoleout Shell 标准输出不显示
-noconsolein Shell 无标准输入
-delay[:n] 指定等待 startup.nsh 启动的时间。默认是5秒,-delay:0 表示立即执行
-nointerrupt 不支持 <Ctrl+C> 的终止程序功能
-nomap 启动后不显示块设备的 map 信息
-noversion 启动后不显示 version
-startup 进入 Shell 是执行脚本 startup.nsh

当 ShellOpt-optitions 和 options 中均不包含 -startup 时,可以使用 file-name 指定 Shell 启动后要执行的文件。如果启动参数中既有 -startup 又有 file-name ,则 file-name 被忽略。

luck9806 发表于 2020-3-5 21:38:03

难道这个参数是某个启动工具的,那这个启动工具又是什么呢

282198284 发表于 2020-3-5 21:40:58

本帖最后由 282198284 于 2020-3-5 21:46 编辑

luck9806 发表于 2020-3-5 21:38
难道这个参数是某个启动工具的,那这个启动工具又是什么呢
xor不行我就不知道了,好像没有了

luck9806 发表于 2020-3-5 22:41:29

本帖最后由 luck9806 于 2020-3-5 22:53 编辑

282198284 发表于 2020-3-5 21:40
xor不行我就不知道了,好像没有了
我没建菜单直接改的启动项

282198284 发表于 2020-3-5 22:59:45

本帖最后由 282198284 于 2020-3-5 23:02 编辑

luck9806 发表于 2020-3-5 22:41
我没建菜单直接改的启动项
你这样和xor有半毛钱关系?
我的意思是,用xor启动Shell. efi加参数的,应该是可以去掉5秒等待时间
页: [1] 2
查看完整版本: 第一次使用UEFI shell,请求那位大侠帮忙写一下加载NVME驱动并引导M.2自动化命令