Advertisement
bobdodds

Linux Boot /boot/iso/File.ISO by grub Custom.cfg

May 2nd, 2022
1,837
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.65 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # ~/bin/40_mk_custom_cfg, copy to /etc/grub.d/40_mk_custom_cfg for booting iso's
  4.  
  5. emit_ubuntu_iso_menuentry() {
  6. cat << EOF | tr -d '\' 2>/dev/null
  7. menuentry \'${1/.iso/} $2\'\{
  8.  insmod part_msdos part_gpt fat iso9660 ext2 gzio lzopio loopback
  9.  insmod search_fs_uuid search_fs_file search_label
  10.  search -u $2 -s root
  11.  set isofile=$1
  12.  loopback loop \$\{isofile\}
  13.  set root=loop
  14.  linux /casper/vmlinuz.efi boot=casper iso-scan/filename=\$\{isofile\} initrd=/casper/initrd.lz
  15.  initrd /casper/initrd.lz
  16. \}
  17. EOF
  18. }
  19.  
  20. emit_kali_iso_menuentry() {
  21. cat << EOF | tr -d '\' 2>/dev/null
  22. menuentry \'${1/.iso/} $2\' \{
  23.  insmod part_msdos part_gpt fat iso9660 ext2 gzio lzopio loopback
  24.  insmod search_fs_uuid search_fs_file search_label
  25.  search -u $2 -s root
  26.  set isofile=$1
  27.  loopback loop \$\{isofile\}
  28.  set root=loop
  29.  linux (loop)/live/vmlinuz boot=live findiso=\$\{isofile\} noconfig=sudo username=root hostname=kali
  30.  initrd (loop)/live/initrd.img
  31. \}
  32. EOF
  33. }
  34.  
  35. for d in `mount -t ext2,ext3,ext4 | cut -d' ' -f1,3 | tr ' ' '='`
  36.  do b="${d/*=/}"
  37.  b=${b}/boot
  38.  b=${b//\/\///} ; d=${d/=*/}
  39.  u=`lsblk -P -o UUID $d`
  40.  u=${u/UUID=/}
  41.  u=${u//\"/}
  42.  if [ -d $b ]
  43.   then sudo rm /tmp/stub 2>/dev/null
  44.   for iso in $b/iso/*.iso
  45.    do if [ -f $iso ]
  46.     then #echo drive $d uuid $u bootdir $b iso $iso
  47.     if [[ $iso =~ kali ]]
  48.      then emit_kali_iso_menuentry $iso $u >> /tmp/stub
  49.     elif [[ $iso =~ amd64 ]] || [[ $iso =~ rippa ]]
  50.      then emit_ubuntu_iso_menuentry $iso $u >> /tmp/stub
  51.     fi
  52.    fi
  53.   done
  54.   if [ -s /tmp/stub ]
  55.    then sudo mkdir -p $b/grub
  56.    sudo mv /tmp/stub $b/grub/custom.cfg
  57.    sudo rm /tmp/stub 2>/dev/null
  58.   fi
  59.  fi
  60. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement