是什么阻止UEFI能够运行.NSH脚本?

时间:2017-01-21 01:48:36

标签: uefi

编辑:2年后我终于解决了这个问题。如果将来有人绊倒了这件事,如果你试图询问互联网或主板公司,我会把你从一堆废话中拯救出来。 UEFI启动分区在NTFS中格式化,它需要是FAT32。显然,美国大趋势UEFI并没有完全支持NTFS,所以你可以“直播”。和'键入'来自UEFI shell的文件,但您无法运行脚本或写入文件。解决方案是启动进入Windows,将所有文件复制到不同的驱动器,将分区格式化为FAT32,然后将文件复制回来。

原始问题:

长话短说,我需要从主板上的现有UEFI启动计算机(确切地说是MSI x99s游戏主板)。我需要从UEFI启动的原因是我有一个新的SSD而传统的BIOS并不能识别它,但那里有第三方驱动程序。

无论如何,我把驱动程序放在我的其他硬盘驱动器分区上,还有一个Startup.nsh脚本,上面写着:

  1. 加载驱动程序
  2. map -r
  3. 运行从现在可见的SSD分区启动Windows 10的.efi
  4. 我知道这一系列命令会启动到Windows 10,因为如果我从UEFI shell提示符输入它,它就可以工作。问题是,当我从UEFI shell运行任何.nsh文件时,包括startup.nsh,它会产生以下错误消息:

      

    Shell:无法从文件中读取 - 800000000000001f

    如果我使用'类型'命令我可以很好地看到.nsh文件的内容,所以我认为我的固件中只有一些可怕的错误,或者我需要设置一些属性。 .nsh个文件。任何人都知道它是否是第二个? (请?)

1 个答案:

答案 0 :(得分:1)

去过那里,试图在旧主板上使用NVMe

你不能使用map -r,它将停止startup.nsh读取流

echo Load NVMe Driver
load fs0:\NvmExpressDxe-64.efi

echo Remap drives
connect -r
set -v efishellmode 1.1.2
map -u

echo Boot from NVMe
fs1:\EFI\Boot\BOOTX64.EFI
echo Done!