brent s. <bts@square-r00t.net> 于2019年11月6日周三 下午1:15写道:
On 11/6/19 12:01 AM, Hongyi Zhao via arch-general wrote:
menuentry --hotkey=g 'Graphical install' { set background_color=black linux (loop)/install.amd/vmlinux vga=788 findiso=$iso_path components --- quiet
IMO, this is the most difficult thing to figure out a workable menuentry, I mean, the follownig code inserted here:
findiso=$iso_path components
And from where can I find the full manual for this? I have inspected the following webpage:
https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt
And I cannot find out the parameters/arguments used here: `findiso' and `components'.
"findiso" and "components" are unique to Debian's initialization scripts. The ones at https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt are generic ones that the *kernel* uses, but others are used by the OS itself during initialization. They're both passed to /proc/cmdline (because it's the only reliable way of passing boot-time parameters to runtime kernel operations and the initrd/initramfs).
"findiso" is documented here: https://manpages.debian.org/testing/live-boot-doc/live-boot.7.en.html
As for "components", I have no idea what it does. You can extract the ISO's initrd and check the init system in there, though, to find out.
No, this is not the initial grub.cfg used by the iso when running in the efi mode which is the de-facto nowsdays. The first grub.cfg used by the iso is:
/EFI/debian/grub.cfg
This file will then source all of the other grub.cfg, including the one in /boot/grub/grub.cfg, which is the last grub.cfg in the chain.
All that does is call other cfgs and do insmods. Follow the "source" directives and you will find that, yes, the one I mentioned is the menu config (the one you actually want, because you want to create *menu entries*) that is used by the Debian ISO.
You *definitely* will not be able to use the "linking"/parent configs because they refer to paths inside the Debian ISO, not your USB drive.
Ok, again I promote the dd-based method here. If use the dd-based method, than just do the following: # changing the ($root)/EFI/debian/grub.cfg as follows to make it more robust: search --label --set=root 'Debian 10.1.0 amd64 1' set prefix=($root)/boot/grub source $prefix/x86_64-efi/grub.cfg Repack the iso with above changed file and then dd it to usb's arbitrary partition, and do the following: grub> set root=(root-of-dd-iso-on-usb-partition) grub> set prefix=($root)/boot/grub grub> chainloader /EFI/boot/grubx64.efi grub> boot This will let all of the grub.cfg's invoked in order and obtain a complete same effect with the one done by burning-on-dvd. But, this method is not so convenient due change and repack the iso.
-- brent saner https://square-r00t.net/ GPG info: https://square-r00t.net/gpg-info
-- Hongsheng Zhao <hongyi.zhao@gmail.com> Institute of Semiconductors, Chinese Academy of Sciences GnuPG DSA: 0xD108493