Skip to content

Instantly share code, notes, and snippets.

@rdbuf
Last active May 3, 2016 18:41
Show Gist options
  • Save rdbuf/f9393629ceec66364cf1 to your computer and use it in GitHub Desktop.
Save rdbuf/f9393629ceec66364cf1 to your computer and use it in GitHub Desktop.
multiboot usb
# grub.cfg
# it lets you boot linux from iso directly
# the files tree is at the end of file
# last modified: 2016-03-07
set timeout=30
set defaut=0
set fallback=1 # what's it?
set pager=1 # what's it?
# setting up the video
if loadfont /boot/grub/font.pf2 ; then
set gfxmode=auto
insmod efi_gop
insmod efi_uga
insmod gfxterm
insmod videotest
insmod videoinfo
terminal_output gfxterm
fi
# sysrescuecd release: 2016-01-18
submenu 'System Rescue CD 4.7.1' {
submenu '64bit' {
# NOTE
# It's either me stupid or grub doesn't keep environment
# variables when entering menu items. Thus, we need to set
# it up for the each item separately instead of globally
# setting directories, filenames, architecture, etc.
# Sad but truth
# P.S. please tell me if i'm missing something
menuentry 'SystemRescueCd (64bit, default boot options)' {
set gfxpayload=keep
set arch=64
set isodir='/iso/'
set isofile=$isodir'systemrescuecd-x86-4.7.1.iso'
loopback loop $isofile
linux (loop)/isolinux/rescue$arch isoloop=$isofile
initrd (loop)/isolinux/initram.igz
}
menuentry 'SystemRescueCd (64bit, cache all files in memory)' {
set gfxpayload=keep
set arch=64
set isodir='/iso/'
set isofile=$isodir'systemrescuecd-x86-4.7.1.iso'
loopback loop $isofile
linux (loop)/isolinux/rescue$arch docache isoloop=$isofile
initrd (loop)/isolinux/initram.igz
}
menuentry 'SystemRescueCd (64bit, alternative kernel with default options)' {
set gfxpayload=keep
set arch=64
set isodir='/iso/'
set isofile=$isodir'systemrescuecd-x86-4.7.1.iso'
loopback loop $isofile
linux (loop)/isolinux/altker$arch isoloop=$isofile
initrd (loop)/isolinux/initram.igz
}
menuentry 'SystemRescueCd (64bit, disable Kernel-Mode-Settings)' {
set gfxpayload=keep
set arch=64
set isodir='/iso/'
set isofile=$isodir'systemrescuecd-x86-4.7.1.iso'
loopback loop $isofile
linux (loop)/isolinux/rescue$arch nomodeset isoloop=$isofile
initrd (loop)/isolinux/initram.igz
}
menuentry 'SystemRescueCd (64bit, directly start the graphical environment)' {
set gfxpayload=keep
set arch=64
set isodir='/iso/'
set isofile=$isodir'systemrescuecd-x86-4.7.1.iso'
loopback loop $isofile
linux (loop)/isolinux/rescue$arch dostartx isoloop=$isofile
initrd (loop)/isolinux/initram.igz
}
menuentry 'Boot existing Linux OS installed on the disk (64bit kernel)' {
set gfxpayload=keep
set arch=64
set isodir='/iso/'
set isofile=$isodir'systemrescuecd-x86-4.7.1.iso'
loopback loop $isofile
linux (loop)/isolinux/rescue$arch root=auto isoloop=$isofile
initrd (loop)/isolinux/initram.igz
}
}
submenu '32bit' {
menuentry 'SystemRescueCd (32bit, default boot options)' {
set gfxpayload=keep
set arch=32
set isodir='/iso/'
set isofile=$isodir'systemrescuecd-x86-4.7.1.iso'
loopback loop $isofile
linux (loop)/isolinux/rescue$arch isoloop=$isofile
initrd (loop)/isolinux/initram.igz
}
menuentry 'SystemRescueCd (32bit, cache all files in memory)' {
set gfxpayload=keep
set arch=32
set isodir='/iso/'
set isofile=$isodir'systemrescuecd-x86-4.7.1.iso'
loopback loop $isofile
linux (loop)/isolinux/rescue$arch docache isoloop=$isofile
initrd (loop)/isolinux/initram.igz
}
menuentry 'SystemRescueCd (32bit, alternative kernel with default options)' {
set gfxpayload=keep
set arch=32
set isodir='/iso/'
set isofile=$isodir'systemrescuecd-x86-4.7.1.iso'
loopback loop $isofile
linux (loop)/isolinux/altker$arch isoloop=$isofile
initrd (loop)/isolinux/initram.igz
}
menuentry 'SystemRescueCd (32bit, disable Kernel-Mode-Settings)' {
set gfxpayload=keep
set arch=32
set isodir='/iso/'
set isofile=$isodir'systemrescuecd-x86-4.7.1.iso'
loopback loop $isofile
linux (loop)/isolinux/rescue$arch nomodeset isoloop=$isofile
initrd (loop)/isolinux/initram.igz
}
menuentry 'SystemRescueCd (32bit, directly start the graphical environment)' {
set gfxpayload=keep
set arch=32
set isodir='/iso/'
set isofile=$isodir'systemrescuecd-x86-4.7.1.iso'
loopback loop $isofile
linux (loop)/isolinux/rescue$arch dostartx isoloop=$isofile
initrd (loop)/isolinux/initram.igz
}
menuentry 'Boot existing Linux OS installed on the disk (32bit kernel)' {
set gfxpayload=keep
set arch=32
set isodir='/iso/'
set isofile=$isodir'systemrescuecd-x86-4.7.1.iso'
loopback loop $isofile
linux (loop)/isolinux/rescue$arch root=auto isoloop=$isofile
initrd (loop)/isolinux/initram.igz
}
}
}
# archlinux release: 2016-03-01
submenu 'Archlinux Installation Live' {
menuentry 'x86_64 archlinux-2016.03.01-dual.iso' {
set gfxpayload=keep
probe -s root_uuid -u $root
set arch=x86_64
set isodir='/iso/'
set isofile=$isodir'archlinux-2016.03.01-dual.iso'
loopback loop $isofile
linux (loop)/arch/boot/$arch/vmlinuz img_dev=/dev/disk/by-uuid/$root_uuid img_loop=$isofile earlymodules=loop
initrd (loop)/arch/boot/$arch/archiso.img
}
menuentry 'i686 archlinux-2016.03.01-dual.iso' {
set gfxpayload=keep
probe -s root_uuid -u $root
set arch=i686
set isodir='/iso/'
set isofile=$isodir'archlinux-2016.03.01-dual.iso'
loopback loop $isofile
linux (loop)/arch/boot/$arch/vmlinuz img_dev=/dev/disk/by-uuid/$root_uuid img_loop=$isofile earlymodules=loop
initrd (loop)/arch/boot/$arch/archiso.img
}
}
# memtest86+ release: 05-08-2015
menuentry 'memtest86+' {
set isodir='/iso/'
linux16 $isodir'memtest86+-5.01.bin'
}
# $ tree
# .
# ├── boot
# │   └── grub
# │   ├── fonts
# │   │   └── unicode.pf2
# │   ├── grub.cfg
# │   ├── grubenv
# │   ├── i386-pc
# │   │   ├── 915resolution.mod
# │   │   ├── acpi.mod
# │   │   ... blah blah blah ...
# │   │   ├── zfsinfo.mod
# │   │   └── zfs.mod
# │   ├── locale
# │   └── themes
# │   └── starfield
# │   ├── blob_w.png
# │   ├── boot_menu_c.png
# │   ├── ...blah blah blah...
# │   ├── terminal_box_w.png
# │   └── theme.txt
# ├── iso
# │   ├── archlinux-2016.03.01-dual.iso
# │   ├── memtest86+-5.01.bin
# │   ├── systemrescuecd-x86-4.7.1.iso
#
# 9 directories, 310 files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment