|
From: | Andrei Borzenkov |
Subject: | Re: Debug grub scripts without rebooting into grub shell. |
Date: | Sun, 9 Jul 2023 09:49:13 +0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 |
On 09.07.2023 09:33, Hongyi Zhao wrote:
On Sun, Jul 9, 2023 at 1:13 PM Andrei Borzenkov <arvidjaar@gmail.com> wrote:On 09.07.2023 03:21, Hongyi Zhao wrote:On Sat, Jul 8, 2023 at 9:53 PM Andrei Borzenkov <arvidjaar@gmail.com> wrote:On 08.07.2023 14:58, Hongyi Zhao wrote:Hi here, Are there some convenient methods to debug grub scripts without rebooting into grub shell?You may try grub-emu which emulates grub.I tried, but it seems that grub-emu doesn't meet my requirement as described below. I want to debug the grubx64.efi created by the following command:If you want to debug grubx64.efi, then you of course need to load it either on real hardware or in VM. But you can debug scripts used by grubx64.efi using grub-emu by setting up suitable simulated environment. There are clear limitations (scripts cannot load and start any kernel).Then, how to access the real hard disk devices and partitions? I can only see the following devices via grub-emu:
You create device.map and give names hd0, hd1, ... to your devices.
grub> ls (proc) (host) Best, Zhao$ grub-mkstandalone -O x86_64-efi -o grubx64.efi --modules='lvm fat ntfs part_msdos part_gpt ext2 btrfs probe regexp search configfile' boot/grub/grub.cfg=./grub.cfg The content of the ./grub.cfg is as follows: $ egrep -v '^[ ]*(#|$)' grub.cfg regexp -s __cmdpath_efi '^\(([^,]+)' "$cmdpath" export __cmdpath_efi for file in ($__cmdpath_efi,*)/multibootusb.git/grub.cfg; do if regexp -s __root '^(\([^*]+\))' "$file"; then set __prefix=$__root/multibootusb.git export __root export __prefix configfile $__prefix/grub.cfg break fi done The files' layout is as follows: $ tree . . ├── grub.cfg ├── grub-mkstandalone.sh ├── grubx64.efi └── iso ├── deepin-desktop-community-23-Beta-amd64.iso ├── rescatux-0.74.iso ├── supergrub2-2.06s1-beta2-multiarch-CD.iso ├── systemrescue-10.01-amd64.iso ├── ubuntu-23.04-desktop-amd64.iso └── ubuntukylin-23.04-desktop-amd64.iso 1 directory, 9 files Regards, Zhao
[Prev in Thread] | Current Thread | [Next in Thread] |