UEFI 펌웨어와 함께 제공되는 Dell OptiPlex 9010 컴퓨터를 사용하고 있지만 PCI-Express NVMe 장치에서 부팅을 지원하지 않습니다.
DUET 을 사용하여 USB 스틱에 EFI 부팅 파티션을 생성하고로드 된 NVMe 드라이버가있는 OS의 EFI 부팅 프로그램을 실행 하여이 문제를 해결했습니다 .
이를 수행하는 명령은 현재 수동으로 입력되었습니다. 과정은 다음과 같습니다.
- 컴퓨터가 꺼져 있습니다.
- DUET USB 스틱을 USB 포트에 꽂습니다 (항상 항상 플러그를 꽂아 둡니다)
- 컴퓨터를 켜십시오
- (UEFI는 항상 해당 USB 스틱에서 먼저 부팅하고 내가 연결 한 다른 드라이브의 부팅 로더는 무시하도록 구성되어 있습니다)
- DUET USB 스틱은 EFI 셸을로드합니다 (
EFI Shell version 2.31 [4.653]
) - (이
map
명령은 DUET USB 스틱이 자동으로에 장착되어 있음을 나타냅니다fs0:
) - NVMe 드라이버를로드합니다 :
load fs0:\EFI\Drivers\NvmExpressDxe-64.efi
- 로 볼륨 매핑 새로 고침을 트리거하면
map -r
이 명령이 문제없이 성공적으로 완료됩니다. - (이제 때때로 NVMe 볼륨이 나열
fs1:
되지만 때때로fs0:
) - 다음을 실행하여 Windows로 부팅합니다.
fs1:\EFI\Boot\Bootx64.efi
- Windows 시작 화면이 나타나고 컴퓨터가 Windows 부팅을 재개합니다
명령을 startup.nsh
스크립트 (DOS의 EFI에 해당) 에 넣어서이를 자동화하려고했습니다 autoexec.bat
.
내 스크립트는 다음과 같습니다
echo Step 1
load fs0:\EFI\Drivers\NvmExpressDxe-64.efi
echo Step 2
map -r
echo Step 3
fs0:
echo Step 4
fs0:\EFI\Boot\Bootx64.efi
echo Step 5
(이 스크립트는 실행될 때 NVMe 드라이브가에 다시 매핑 되기 때문에 fs0:
대신에 사용 되지만 대신 대화식으로 명령을 실행할 때는에 매핑됩니다 . 왜 또는 어떻게 발생하는지 모르겠습니다).fs1:
startup.nsh
fs0:
fs1:
내가 부팅하고 쉘을 실행하게 startup.nsh
하면이 출력을 얻습니다.
startup.nsh> Step 1
startup.nsh> load fs0:\EFI\Drivers\NvmExpressDxe-64.efi
load: Image fs0:\EFI\Drivers\NvmExpressDxe-64.efi loaded at D7C3F000 - Success
startup.nsh> Step 2
startup.nsh> map -r
Device mapping table
fs0 :PciRoot(0x0)/Pci(0x1c,0x4)/...
fs1 :PciRoot(0x0)/Pci(0x1c,0x4)/...
blk0 :PciRoot(0x0)/Pci(0x1c,0x4)/...
...
Shell: Cannot read from file - No Media
Shell> _
따라서 map -r
내부에서 startup.nsh
실행되면 실행되지만 "파일에서 읽을 수 없음-미디어 없음"오류와 함께 실패하고 나머지 스크립트 실행 ( echo Step 3
출력 이 없으므로 ) 을 중단 하지만 수동으로 입력하면 fs0:\EFI\Boot\Bootx64.efi
그런 다음 Windows가 정상적으로로드됩니다.
EFI 셸 명령 설명서를 살펴 보았 try
거나 on error resume next
또는 같은 명령이 표시되지 않아 on error goto :label
스크립트가 실패 할 것입니다.