hackerncoder / multibootusb

A collection of GRUB files and scripts that will allow you to create a pendrive capable of booting different ISO files
https://mbusb.aguslr.com
GNU General Public License v3.0
68 stars 21 forks source link

Black screen when booting from ISO #44

Open cmonty14 opened 4 years ago

cmonty14 commented 4 years ago

Hi, I'm facing an issue when booting from ISO: the screen remains black.

This issue is well described here and the following solution is provided: Add the following '????.modeset=0' parameter at the end of the long grub command line.

Now, where should I add this line in the multibootusb setup? Should I modifiy file boot/grub/mbusb.d/archlinux.d/generic64.cfg and enter it here: linux (loop)/arch/boot/x86_64/vmlinuz $bootoptions nouveau.modeset=0 Please advise.

THX

hackerncoder commented 4 years ago

I think it would be better if you added it in bootoptions=""

hackerncoder commented 4 years ago

I was thinking about whether adding a menu entry (or something else) that allowed you to boot any ISO with an extra boot option would be possible, anyone that knows, please advice.

petsam commented 3 years ago

I think it would be better if you added it in bootoptions=""

Before bootoptions="" is the proper place.

I was thinking about whether adding a menu entry (or something else) that allowed you to boot any ISO with an extra boot option would be possible, anyone that knows, please advice.

It is possible to create multiple entries in one config file, cloning one and editing to a separate combination of kernel parameters. For example: I created this config for Garuda Linux, with different options for each scenario of video/gpu options. I have not tested all of them, since I only have two PCs :smile: but I have booted successfully latest and month old Garuda ISOs.

for isofile in $isopath/garuda-*.iso; do
  if [ -e "$isofile" ]; then
    regexp --set=isoname "$isopath/(.*)" "$isofile"
    submenu "$isoname ->" "$isofile" {
      iso_path="$2"
      loopback loop "$iso_path"
      probe --label --set=cd_label (loop)
      menuentry "Start Garuda Linux" {
        bootoptions="img_dev=$imgdevpath img_loop=$iso_path earlymodules=loop misobasedir=garuda misolabel=$cd_label nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 logo.nologo overlay=free quiet  showopts"
        linux (loop)/boot/vmlinuz-* $bootoptions
        initrd (loop)/boot/initramfs-*.img
      }
      menuentry "Start Garuda Linux amdgpu not-radeon" {
        bootoptions="img_dev=$imgdevpath img_loop=$iso_path earlymodules=loop misobasedir=garuda misolabel=$cd_label nouveau.modeset=1 i915.modeset=1 radeon.modeset=0 amdgpu.modeset=1 logo.nologo overlay=free quiet  showopts"
        linux (loop)/boot/vmlinuz-* $bootoptions
        initrd (loop)/boot/initramfs-*.img
      }
      menuentry "Start (nvidia proprietary non-free drivers)" {
        bootoptions="img_dev=$imgdevpath img_loop=$iso_path earlymodules=loop misobasedir=garuda misolabel=$cd_label nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nonfree=yes logo.nologo overlay=nonfree quiet  showopts"
        linux (loop)/boot/vmlinuz-* $bootoptions
        initrd (loop)/boot/initramfs-*.img
      }
      menuentry "Start Garuda no nVidia" {
        bootoptions="img_dev=$imgdevpath img_loop=$iso_path earlymodules=loop misobasedir=garuda misolabel=$cd_label nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 logo.nologo overlay=free quiet  showopts"
        linux (loop)/boot/vmlinuz-* $bootoptions
        initrd (loop)/boot/initramfs-*.img
      }
    }
  fi
done

You could add this to your list of distros. /boot/grub/mbusb.d/garuda.d/generic.cfg