Shell中手动加载grub bootaa64.efi

2024.05.04

Shell> map
Mapping table
      FS1: Alias(s):HD1b:;BLK4:
          VenHw(100C2CFA-B586-4198-9B4C-1683D195B1DA)/HD(1,GPT,809A75D3-E97F-4F9
F-9E15-C4EB053E8AB3,0x800,0x32000)
      FS0: Alias(s):HD0b:;BLK1:
          PcieRoot(0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/NVMe(0x1,32-03-00-00-00-00-00-
00)/HD(1,GPT,9DD431F3-1E15-584E-987D-827DD40C2E49,0xF000,0x200000)
     BLK3: Alias(s):
          VenHw(100C2CFA-B586-4198-9B4C-1683D195B1DA)
     BLK5: Alias(s):
          VenHw(100C2CFA-B586-4198-9B4C-1683D195B1DA)/HD(2,GPT,836136C3-A854-4F1
2-8FCD-3F5BCE5C9F24,0x32800,0x8000)
     BLK6: Alias(s):
          VenHw(100C2CFA-B586-4198-9B4C-1683D195B1DA)/HD(3,GPT,8B6032D1-3641-44F
6-B489-C48D195AC17E,0x3A800,0xE543000)
     BLK7: Alias(s):
          VenHw(100C2CFA-B586-4198-9B4C-1683D195B1DA)/HD(4,GPT,96CA6224-A52D-464
1-A947-AA3CCBA8DC8C,0xE57D800,0xFA000)
     BLK0: Alias(s):
          PcieRoot(0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/NVMe(0x1,32-03-00-00-00-00-00-
00)
     BLK2: Alias(s):
          PcieRoot(0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/NVMe(0x1,32-03-00-00-00-00-00-
00)/HD(2,GPT,8DEE4DA3-BB01-D348-8C62-188B9C031AC1,0x20F000,0x389AB019)
Shell> fs0:
FSOpen: Open '\' Success
FS0:\> ls
GDDBG get base: FEAA0000
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FSOpen: Open '\grub' Success
FSOpen: Open '\Image' Success
FSOpen: Open '\System.map-5.10.110-rockchip-rk3588' Success
FSOpen: Open '\config-5.10.110-rockchip-rk3588' Success
FSOpen: Open '\initrd.img-5.10.110-rockchip-rk3588' Success
FSOpen: Open '\vmlinuz-5.10.110-rockchip-rk3588' Success
GDDBG get base: FEAA0000
Directory of: FS0:\
01/09/2024  02:45             209,823  config-5.10.110-rockchip-rk3588
GDDBG get base: FEAA0000
12/04/2023  07:24 <DIR>         4,096  EFI
GDDBG get base: FEAA0000
01/09/2024  03:10 <DIR>         4,096  grub
GDDBG get base: FEAA0000
01/09/2024  03:09          56,613,376  Image
GDDBG get base: FEAA0000
01/09/2024  03:12           9,159,168  initrd.img-5.10.110-rockchip-rk3588
GDDBG get base: FEAA0000
01/09/2024  02:45           8,108,572  System.map-5.10.110-rockchip-rk3588
GDDBG get base: FEAA0000
01/09/2024  02:45          21,284,899  vmlinuz-5.10.110-rockchip-rk3588
          5 File(s)  95,375,838 bytes
          2 Dir(s)
FSOpen: Open '\' Success
FS0:\> cd EFFSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
EFI
FSOpen: Open '\EFI' Success
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FS0:\EFI\> ls
GDDBG get base: FEAA0000
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FSOpen: Open '.' Success
FSOpen: Open '..' Success
FSOpen: Open '\EFI\' Success
FSOpen: Open '\' Success
FSOpen: Open '\EFI\BOOT' Success
GDDBG get base: FEAA0000
Directory of: FS0:\EFI\
01/09/2024  03:11 <DIR>         4,096  .
GDDBG get base: FEAA0000
01/09/2024  03:11 <DIR>             0  ..
GDDBG get base: FEAA0000
12/04/2023  07:24 <DIR>         4,096  BOOT
          0 File(s)           0 bytes
          3 Dir(s)
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FS0:\EFI\> cd BOOT
FSOpen: Open '\EFI\BOOT' Success
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FSOpen: Open '.' Success
FSOpen: Open '..' Success
FSOpen: Open '\EFI\BOOT' Success
FS0:\EFI\BOOT\> ls
GDDBG get base: FEAA0000
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FSOpen: Open '.' Success
FSOpen: Open '..' Success
FSOpen: Open '\EFI\BOOT' Success
FSOpen: Open '.' Success
FSOpen: Open '..' Success
FSOpen: Open '..' Success
FSOpen: Open '\EFI\BOOT\' Success
FSOpen: Open '\EFI\' Success
FSOpen: Open '\EFI\BOOT\bootaa64.efi' Success
GDDBG get base: FEAA0000
Directory of: FS0:\EFI\BOOT\
01/09/2024  03:11 <DIR>         4,096  .
GDDBG get base: FEAA0000
01/09/2024  03:11 <DIR>         4,096  ..
GDDBG get base: FEAA0000
01/09/2024  03:09             679,936  bootaa64.efi
          1 File(s)     679,936 bytes
          2 Dir(s)
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FSOpen: Open '.' Success
FSOpen: Open '..' Success
FSOpen: Open '\EFI\BOOT' Success
FS0:\EFI\BOOT\> cd ..
FSOpen: Open '\EFI\' Success
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FS0:\EFI\> cd ..
FSOpen: Open '\' Success
FSOpen: Open '\' Success
FS0:\> cd ..
FSOpen: Open '\' Success
FSOpen: Open '\' Success
FS0:\> tree .
'tree' is not recognized as an internal or external command, operable program, o
r script file.
FSOpen: Open '\' Success
FS0:\> help
acpiview      - Display ACPI Table information.
alias         - Displays, creates, or deletes UEFI Shell aliases.
attrib        - Displays or modifies the attributes of files or directories.
bcfg          - Manages the boot and driver options that are stored in NVRAM.
cd            - Displays or changes the current directory.
cls           - Clears the console output and optionally changes the background
and foreground color.
comp          - Compares the contents of two files on a byte-for-byte basis.
connect       - Binds a driver to a specific device and starts the driver.
cp            - Copies one or more files or directories to another location.
date          - Displays and sets the current date for the system.
dblk          - Displays one or more blocks from a block device.
devices       - Displays the list of devices managed by UEFI drivers.
devtree       - Displays the UEFI Driver Model compliant device tree.
dh            - Displays the device handles in the UEFI environment.
disconnect    - Disconnects one or more drivers from the specified devices.
dmem          - Displays the contents of system or device memory.
dmpstore      - Manages all UEFI variables.
drivers       - Displays the UEFI driver list.
drvcfg        - Invokes the driver configuration.
drvdiag       - Invokes the Driver Diagnostics Protocol.
echo          - Controls script file command echoing or displays a message.
edit          - Provides a full screen text editor for ASCII or UCS-2 files.
eficompress   - Compresses a file using UEFI Compression Algorithm.
efidecompress - Decompresses a file using UEFI Decompression Algorithm.
else          - Identifies the code executed when 'if' is FALSE.
endfor        - Ends a 'for' loop.
endif         - Ends the block of a script controlled by an 'if' statement.
exit          - Exits the UEFI Shell or the current script.
for           - Starts a loop based on 'for' syntax.
getmtc        - Gets the MTC from BootServices and displays it.
goto          - Moves around the point of execution in a script.
help          - Displays the UEFI Shell command list or verbose command help.
hexedit       - Provides a full screen hex editor for files, block devices, or m
emory.
i2cdemo       - Read/write data from/into I2cDemo Device memory
if            - Executes commands in specified conditions.
ifconfig      - Modifies the default IP address of the UEFI IPv4 Network Stack.
load          - Loads a UEFI driver into memory.
loadpcirom    - Loads a PCI Option ROM.
ls            - Lists the contents of a directory or file information.
map           - Displays or defines file system mappings.
memmap        - Displays the memory map maintained by the UEFI environment.
mkdir         - Creates one or more new directories.
mm            - Displays or modifies MEM/MMIO/IO/PCI/PCIE address space.
mode          - Displays or changes the console output device mode.
mv            - Moves one or more files to a destination within or between file
systems.
openinfo      - Displays the protocols and agents associated with a handle.
parse         - Retrieves a value from a standard format output file.
pause         - Pauses a script and waits for an operator to press a key.
pci           - Displays PCI device list or PCI function configuration space and
 PCIe extended
configuration space.
ping          - Ping the target host with an IPv4 stack.
reconnect     - Reconnects drivers to the specific device.
reset         - Resets the system.
rm            - Deletes one or more files or directories.
sermode       - Sets serial port attributes.
set           - Displays or modifies UEFI Shell environment variables.
setsize       - Adjusts the size of a file.
setvar        - Displays or modifies a UEFI variable.
sf            - Read/write data from/into SPI flash.
shift         - Shifts in-script parameter positions.
smbiosview    - Displays SMBIOS information.
stall         - Stalls the operation for a specified number of microseconds.
time          - Displays or sets the current time for the system.
timezone      - Displays or sets time zone information.
touch         - Updates the filename timestamp with the current system date and
time.
type          - Sends the contents of a file to the standard output device.
unload        - Unloads a driver image that was already loaded.
ver           - Displays UEFI Firmware version information.
vol           - Displays or modifies information about a disk volume.

Help usage:help [cmd|pattern|special] [-usage] [-verbose] [-section name][-b]
FSOpen: Open '\' Success
FS0:\> ls
GDDBG get base: FEAA0000
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FSOpen: Open '\grub' Success
FSOpen: Open '\Image' Success
FSOpen: Open '\System.map-5.10.110-rockchip-rk3588' Success
FSOpen: Open '\config-5.10.110-rockchip-rk3588' Success
FSOpen: Open '\initrd.img-5.10.110-rockchip-rk3588' Success
FSOpen: Open '\vmlinuz-5.10.110-rockchip-rk3588' Success
GDDBG get base: FEAA0000
Directory of: FS0:\
01/09/2024  02:45             209,823  config-5.10.110-rockchip-rk3588
GDDBG get base: FEAA0000
12/04/2023  07:24 <DIR>         4,096  EFI
GDDBG get base: FEAA0000
01/09/2024  03:10 <DIR>         4,096  grub
GDDBG get base: FEAA0000
01/09/2024  03:09          56,613,376  Image
GDDBG get base: FEAA0000
01/09/2024  03:12           9,159,168  initrd.img-5.10.110-rockchip-rk3588
GDDBG get base: FEAA0000
01/09/2024  02:45           8,108,572  System.map-5.10.110-rockchip-rk3588
GDDBG get base: FEAA0000
01/09/2024  02:45          21,284,899  vmlinuz-5.10.110-rockchip-rk3588
          5 File(s)  95,375,838 bytes
          2 Dir(s)
FSOpen: Open '\' Success
FS0:\> cd gruFSOpen: Open '.' Success
FSOpen: Open '\grub' Success
grub
FSOpen: Open '\grub' Success
FSOpen: Open '.' Success
FSOpen: Open '\grub' Success
FS0:\grub\> ls
GDDBG get base: FEAA0000
FSOpen: Open '.' Success
FSOpen: Open '\grub' Success
FSOpen: Open '.' Success
FSOpen: Open '..' Success
FSOpen: Open '\grub\' Success
FSOpen: Open '\' Success
FSOpen: Open '\grub\grub.cfg' Success
GDDBG get base: FEAA0000
Directory of: FS0:\grub\
01/09/2024  03:11 <DIR>         4,096  .
GDDBG get base: FEAA0000
01/09/2024  03:11 <DIR>             0  ..
GDDBG get base: FEAA0000
01/09/2024  03:10                 382  grub.cfg
          1 File(s)         382 bytes
          2 Dir(s)
FSOpen: Open '.' Success
FSOpen: Open '\grub' Success
FS0:\grub\> cat grub.cfg
FSOpen: Open '.' Success
FSOpen: Open '\grub' Success
FSOpen: Open '.' Success
FSOpen: Open '..' Success
FSOpen: Open '\grub\grub.cfg' Success
set debug="loader,mm"
set term="vt100"
set default="0"
set timeout="1"

search --set=root --fs-uuid 91F3-6896

menuentry 'Boot YourLand from NVME' {
        linux /Image resume=UUID=8550cf7b-fb7e-475d-b7ca-e0140b91284c root=PARTU
UID=8dee4da3-bb01-d348-8c62-188b9c031ac1 noresume psi=1 splash label=debug rootw
ait verbose debug nokaslr
.initrd /initrd.img-5.10.110-rockchip-rk3588
}

FSOpen: Open '.' Success
FSOpen: Open '\grub' Success
FS0:\grub\> cd ..
FSOpen: Open '\' Success
FSOpen: Open '\' Success
FS0:\> cd ..
FSOpen: Open '\' Success
FSOpen: Open '\' Success
FS0:\> ls
GDDBG get base: FEAA0000
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FSOpen: Open '\grub' Success
FSOpen: Open '\Image' Success
FSOpen: Open '\System.map-5.10.110-rockchip-rk3588' Success
FSOpen: Open '\config-5.10.110-rockchip-rk3588' Success
FSOpen: Open '\initrd.img-5.10.110-rockchip-rk3588' Success
FSOpen: Open '\vmlinuz-5.10.110-rockchip-rk3588' Success
GDDBG get base: FEAA0000
Directory of: FS0:\
01/09/2024  02:45             209,823  config-5.10.110-rockchip-rk3588
GDDBG get base: FEAA0000
12/04/2023  07:24 <DIR>         4,096  EFI
GDDBG get base: FEAA0000
01/09/2024  03:10 <DIR>         4,096  grub
GDDBG get base: FEAA0000
01/09/2024  03:09          56,613,376  Image
GDDBG get base: FEAA0000
01/09/2024  03:12           9,159,168  initrd.img-5.10.110-rockchip-rk3588
GDDBG get base: FEAA0000
01/09/2024  02:45           8,108,572  System.map-5.10.110-rockchip-rk3588
GDDBG get base: FEAA0000
01/09/2024  02:45          21,284,899  vmlinuz-5.10.110-rockchip-rk3588
          5 File(s)  95,375,838 bytes
          2 Dir(s)
FSOpen: Open '\' Success
FS0:\> cd EFFSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
EFI
FSOpen: Open '\EFI' Success
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FS0:\EFI\> LS
GDDBG get base: FEAA0000
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FSOpen: Open '.' Success
FSOpen: Open '..' Success
FSOpen: Open '\EFI\' Success
FSOpen: Open '\' Success
FSOpen: Open '\EFI\BOOT' Success
GDDBG get base: FEAA0000
Directory of: FS0:\EFI\
01/09/2024  03:11 <DIR>         4,096  .
GDDBG get base: FEAA0000
01/09/2024  03:11 <DIR>             0  ..
GDDBG get base: FEAA0000
12/04/2023  07:24 <DIR>         4,096  BOOT
          0 File(s)           0 bytes
          3 Dir(s)
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FS0:\EFI\> cd boot
FSOpen: Open '\EFI\boot' Success
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FSOpen: Open '.' Success
FSOpen: Open '..' Success
FSOpen: Open '\EFI\BOOT' Success
FS0:\EFI\boot\> ls
GDDBG get base: FEAA0000
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FSOpen: Open '.' Success
FSOpen: Open '..' Success
FSOpen: Open '\EFI\BOOT' Success
FSOpen: Open '.' Success
FSOpen: Open '..' Success
FSOpen: Open '..' Success
FSOpen: Open '\EFI\BOOT\' Success
FSOpen: Open '\EFI\' Success
FSOpen: Open '\EFI\BOOT\bootaa64.efi' Success
GDDBG get base: FEAA0000
Directory of: FS0:\EFI\boot\
01/09/2024  03:11 <DIR>         4,096  .
GDDBG get base: FEAA0000
01/09/2024  03:11 <DIR>         4,096  ..
GDDBG get base: FEAA0000
01/09/2024  03:09             679,936  bootaa64.efi
          1 File(s)     679,936 bytes
          2 Dir(s)
FSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FSOpen: Open '.' Success
FSOpen: Open '..' Success
FSOpen: Open '\EFI\BOOT' Success
FS0:\EFI\boot\> ./bootFSOpen: Open '.' Success
FSOpen: Open '\EFI' Success
FSOpen: Open '.' Success
FSOpen: Open '..' Success
FSOpen: Open '\EFI\BOOT' Success
FSOpen: Open '.' Success
FSOpen: Open '..' Success
FSOpen: Open '..' Success
bootaa64.efi
FSOpen: Open '\EFI\boot\bootaa64.efi' Success
FSOpen: Open '\EFI\boot\bootaa64.efi' Success
FSOpen: Open '\EFI\boot\bootaa64.efi' Success
FSOpen: Open '\EFI\boot\bootaa64.efi' Success
[Security] 3rd party image[0] can be loaded after EndOfDxe: PcieRoot(0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/NVMe(0x1,32-03-00-00-00-00-00-00)/HD(1,GPT,9DD431F3-1E15-584E-987D-827DD40C2E49,0xF000,0x200000)/\EFI\boot\bootaa64.efi.
Loading driver at 0x000E9DCE000 EntryPoint=0x000E9DCF000
Loading driver at 0x000E9DCE000 EntryPoint=0x000E9DCF000
Welcome to GRUB!



                             GNU GRUB  version 2.04

 /----------------------------------------------------------------------------\
 |*Boot YourLand from NVME                                                    |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 \----------------------------------------------------------------------------/

      Use the ^ and v keys to select which entry is highlighted.
      Press enter to boot the selected OS, `e' to edit the commands
      before booting or `c' for a command-line.



https://www.gnu.org/software/grub/manual/grub-dev/html_node/Debugging.html

GRUB2 can be difficult to debug because it runs on the bare-metal and thus does not have the debugging facilities normally provided by an operating system.

调试对GRUB2来说,已经是自然而然的事。
[Security] 3rd party image[0] can be loaded after EndOfDxe: PcieRoot(0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/NVMe(0x1,32-03-00-00-00-00-00-00)/HD(1,GPT,9DD431F3-1E15-584E-987D-827DD40C2E49,0xF000,0x200000)/\EFI\boot\bootaa64.efi.
Loading driver at 0x000E9DCE000 EntryPoint=0x000E9DCF000

因为GRUB2,对于UEFI来说,也就是个被加载的Module,NDB真的已经很赞,可以期待更美好。

作者:朱博渊  创建时间:2024-05-04 15:35
最后编辑:朱博渊  更新时间:2024-05-18 22:48