Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

verify boot menu options #10

Closed
mika opened this issue Jan 27, 2017 · 13 comments · Fixed by grml/grml-live#142
Closed

verify boot menu options #10

mika opened this issue Jan 27, 2017 · 13 comments · Fixed by grml/grml-live#142
Assignees
Labels

Comments

@mika
Copy link
Member

mika commented Jan 27, 2017

grml-live's templates for the boot menu inside isolinux + grub needs to be verified if everything still works as intended (esp. with our switch to systemd).

@mika mika added this to the Grml 2017 Q1 release milestone Jan 27, 2017
@mika mika added enhancement help-wanted Lack of resources, please contribute if it's important for you labels May 10, 2017
@jkirk
Copy link
Collaborator

jkirk commented May 31, 2017

Let's start simple. This is the isolinux boot menu:

  • grml-release (default)
  • Boot options for grml-release (submenu)
    • Back to main menu...
    • Debug Mode
    • Disable Framebuffer
    • Disable Kernel Mode-Setting
    • Enable SSH (with random password)
    • Forensic Mode
    • German Settings
    • Graphical Mode
    • Load to RAM
    • Persistency mode
    • Serial Console
  • Addons (submenu)
    • Back to main menu...
    • Bootloader Grub2
    • All-in-One-Image
    • iPXE
    • Netboot.xyz
    • FreeDos
    • Memtest86+
    • Hardware Detection Tool
  • Isolinux prompt
  • Boot from next boot device

@mika: is there an official documentation for each entry so I know what "works as intended" really means.. ;-)

@jkirk
Copy link
Collaborator

jkirk commented May 31, 2017

And this is the grub2 boot menu:

  • grml-release (default)
  • advanced options
    • enable persistency mode
    • copy Grml to RAM
    • copy whole medium to RAM
    • start X by default
    • disable framebuffer
    • disable Kernel Mode-Settin (*)
    • forensic mode
    • debug mode
    • serial mode
  • Addons (submenu)
    • Memory test (memtest86+)
    • iPXE
    • Netboot.xyz
    • GRUB - all in one image
    • FreeDos
    • MirOS bsd4grml (via loopback)
  • Boot from next boot device

(*) the entry is cut (at least on my VM).

@jkirk
Copy link
Collaborator

jkirk commented May 31, 2017

Any reason why the naming of the entries are different?

@mika mika modified the milestones: Grml 2017.05, Grml 2017.12 Nov 17, 2017
@jkirk jkirk self-assigned this Jun 3, 2018
@jkirk
Copy link
Collaborator

jkirk commented Dec 23, 2018

Boot option Debug Mode is unclear:

grml-cheatcodes.txt states:

debug                               Get shells during process of booting for debugging
[...]
grml debug                          Get shells during process of booting, using GNU screen, be verbose
grml debug=1                        Get shells during process of booting, using GNU screen, be verbose and
                                    display shell code being executed in initramfs.
grml debug=noscreen                 Get shells during process of booting, verbose, but without using GNU screen

and isolinux/f3 says:

debug [ break=live-bottom ]    get interactive shells during startup process

What is the expected behavior of each of these options? The boot process seems to be more verbose but not at the same level for each option. And what about the shells during process of booting? What is meant by that? And break=live-bottom does not to have any effect.

@jkirk
Copy link
Collaborator

jkirk commented Dec 23, 2018

@mika: And one more questions: Which order do you prefer? I would then work on a PR to bring the boot entries of Isolinux and Grub2 in line.

@mika
Copy link
Member Author

mika commented Dec 24, 2018

@jkirk IIRC we dropped the GNU screen sessions during bootup when we switched to systemd? The "debug" (without grml in its front) is relevant only for isolinux and not GRUB. The break=live-bottom should work, unsure why it doesn't. Maybe live-boot changed there something once again, this could be break=live-realpremount giving it a short look at the code. We'd have to verify this in more detail.
I'm not sure what you mean regarding the order. :)

@jkirk jkirk removed this from the Grml 2018.11 milestone Mar 9, 2019
@jkirk jkirk added verify and removed enhancement help-wanted Lack of resources, please contribute if it's important for you labels Oct 23, 2019
@jkirk
Copy link
Collaborator

jkirk commented Jul 21, 2021

Regarding the order:

For Grub the grml64 - advanced options look like this:

❯ grep menuentry templates/boot/grub/%SHORT_NAME%_options.cfg
menuentry "%GRML_NAME% - enable Predictable Network Interface Names" {
menuentry "%GRML_NAME% - enable persistency mode" {
menuentry "%GRML_NAME% - copy Grml to RAM" {
menuentry "%GRML_NAME% - copy whole medium to RAM" {
menuentry "%GRML_NAME% - start X by default" {
menuentry "%GRML_NAME% - disable framebuffer" {
menuentry "%GRML_NAME% - disable Kernel Mode-Setting" {
menuentry "%GRML_NAME% - forensic mode" {
menuentry "%GRML_NAME% - debug mode" {
menuentry "%GRML_NAME% - serial mode" {

For isolinux the Boot options for grml64-full look like this:

❯ grep "menu label" templates/boot/isolinux/grml.cfg
  menu label %GRML_NAME% - ^Debug Mode
  menu label %GRML_NAME% - Enable Predictable ^Network Interface Names
  menu label %GRML_NAME% - Dis^able Framebuffer
  menu label %GRML_NAME% - Disable ^Kernel Mode-Setting
  menu label %GRML_NAME% - Enable ^SSH (with random password)
  menu label %GRML_NAME% - F^orensic Mode
  menu label %GRML_NAME% - ^German Settings
  menu label %GRML_NAME% - Graphical ^Mode
  menu label %GRML_NAME% - Load to ^RAM
  menu label %GRML_NAME% - ^Persistency mode
  menu label %GRML_NAME% - Serial ^Console

The sub-menu entry ( grml64 - advanced options vs Boot options for grml64-full) and their entries a labeled differently and are in different order. I'd like to harmonize the entries, review the kernel options, check if they still work as expected and check/update the documentation/cheat-sheet.

So which naming and order do we prefer? (Either choose one (isolinux vs Grub order) or come up with a new order?)

I will also check the hidden isolinux entries, but for now lets stick to the "visible" options.

@jkirk
Copy link
Collaborator

jkirk commented Jun 3, 2022

Checked the boot options 'Debug Mode' (once again, was way harder than expected) and the following need to be done:

  • move menu label %GRML_NAME% - ^Debug Mode above menu label %GRML_NAME% - Serial ^Console
  • change case of menuentry "%GRML_NAME% - debug mode" { (-> Debug Mode)
  • Get shells during process of booting for debugging in grml-cheatcodes.txt + isolinux/f3 is not true anymore (since: grml/grml-autoconfig@f9648a3663). Update the description.
  • http://git.grml.org/?p=live-initramfs-grml.git;a=blob_plain;f=manpages/live-initramfs.en.7.txt;hb=HEAD link in grml-cheatcodes.txt is obsolete, not? Remove / update the line.
  • What is difference between the Isolinux bootprompt options debug and grml debug? Clarify in grml-cheatcodes.txt.
  • Document kernel command line parameter break, see: initramfs-tools(5) and update isolinux/f3.
  • Document the used kernel options / command line parameters:

https://github.com/grml/grml-live/blob/master/templates/boot/grub/%25SHORT_NAME%25_options.cfg:

  apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0
  "${loopback}" ${kernelopts} initcall verbose debug=vc systemd.log_level=debug
  systemd.log_target=kmsg log_buf_len=1M

isolinux/grml.cfg:

  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/
  bootid=%BOOTID% apm=power-off vga=791 verbose debug=vc initcall nomce net.ifnames=0
  systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M

jkirk added a commit to jkirk/grml-live that referenced this issue Oct 7, 2022
@jkirk
Copy link
Collaborator

jkirk commented Jul 7, 2023

I propose the following order + naming for the "Advanced Options" of the Isolinux and Grub menu entries:

Advanced Options (submenu) [instead of Boot options for grml-release (submenu) / advanced options ] ->

  • Predictable Network Interface Names
  • Enable SSH (with random password) [missing in Grub menu]
  • Load Grml to RAM [instead "Load to RAM" / "copy Grml to RAM"]
  • Forensic Mode
  • Persistency Mode [instead "Persistence mode" / "enable persistency mode"]
  • German Keyboard Layout [instead "German Settings"] (*)
  • Graphical Mode (grml-x)
  • Disable Framebuffer
  • Disable Kernel Mode-Setting
  • Debug Mode
  • Serial Console

(*) I am not sure yet, what German Settings actually does? In my latest Grml the keyboard layout was changed to German.

@mika any objections?

@mika
Copy link
Member Author

mika commented Oct 19, 2023

@jkirk FTR, I'm totally for unify the boot menu, more than happy to look into this together with you :)

@jkirk
Copy link
Collaborator

jkirk commented Nov 17, 2023

jkirk added a commit to jkirk/grml-live that referenced this issue Nov 17, 2023
The boot order of the isolinux boot menu and Grub boot menu were not in
sync.

Tried to standardize the boot menu entries, according to the proposal in
grml/grml#10 (comment)

Closes: grml/grml#10
jkirk added a commit to jkirk/grml-live that referenced this issue Nov 17, 2023
The boot order and the naming of the isolinux boot menu and Grub boot
menu were not in sync. I tried to standardize the boot menu entries,
according to the proposal in
grml/grml#10 (comment)

Related: grml/grml#10
jkirk added a commit to jkirk/grml-live that referenced this issue Nov 17, 2023
The boot order and the naming of the isolinux boot menu and Grub boot
menu were not in sync. I tried to standardize the boot menu entries,
according to the proposal in
grml/grml#10 (comment)

Related: grml/grml#10
jkirk added a commit to jkirk/grml-live that referenced this issue Nov 17, 2023
The boot order and the naming of the isolinux boot menu and Grub boot
menu were not in sync. I tried to standardize the boot menu entries,
according to the proposal in
grml/grml#10 (comment)

Related: grml/grml#10
@jkirk
Copy link
Collaborator

jkirk commented Dec 7, 2023

Tested the isolinux boot options with the latest Grml daily (grml64-full_sid build4367, 2023-12-07):

  • grml-release (default)
  • Boot options for grml-release (submenu)
    • Back to main menu...
    • Enable Predictable Network Interface Names
    • Load Grml to RAM
    • Load whole medium to RAM --> Description too long
    • Forensic Mode
    • Persistency mode --> boots successfully, needs testing
    • German Settings --> loads German Keyboard Layout
    • Graphical Mode
    • Disable Framebuffer
    • Disable Kernel Mode-Setting --> Disable Kernel Mode Setting for various video drivers
    • Debug Mode
    • Enable SSH (with random password)
    • Serial Console --> boots successfully, needs testing
  • Addons (submenu)
    • Back to main menu...
    • Bootloader Grub2
    • All-in-One-Image
    • iPXE --> needs testing
    • Netboot.xyz --> needs testing
    • FreeDos
    • Memtest86+
    • Hardware Detection Tool
  • Isolinux prompt
  • Boot from next boot device

The boot options seem to work. The order has been unified.

Final tasks to close this issue:

  • remove the Grml release name from the boot options as it limits the title length.
  • change "Disable Kernel Mode-Setting" -> "Disable Kernel Mode Setting for various video drivers"
  • change "German Settings" -> "Load German Keyboard Layout"

@mika: We need to define an official documentation (location) for each boot option entry, so that the user (and I) know what the options are supposed to do and how to use them. We currently have:

They are good starting points but I think we should do better. Do you have a 'documentation project' in mind that we can borrow from?

@jkirk
Copy link
Collaborator

jkirk commented Dec 7, 2023

JFTR, "Disable Framebuffer" also disables Kernel Mode Setting and Graphical Mode (X11) does not work without KMS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants