init
This commit is contained in:
commit
dd948692c8
|
@ -0,0 +1,26 @@
|
||||||
|
# GRUB for USB
|
||||||
|
|
||||||
|
```sh
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
disk="${1}"
|
||||||
|
|
||||||
|
parted ${disk} -s mklabel gpt
|
||||||
|
parted ${disk} -s -- mkpart primary 2048s 2099199s
|
||||||
|
parted ${disk} -s -- mkpart primary 2099200s 40G
|
||||||
|
parted ${disk} -s -- mkpart primary 40G 100%
|
||||||
|
|
||||||
|
parted ${disk} -s set 1 boot on
|
||||||
|
|
||||||
|
mkfs.fat -F32 ${disk}1
|
||||||
|
mkfs.ext4 -F ${disk}2
|
||||||
|
|
||||||
|
mount -v -o umask=000 ${disk}1 /mnt
|
||||||
|
|
||||||
|
grub-install --removable --boot-directory=/mnt/boot --efi-directory=/mnt --target=x86_64-efi ${disk}
|
||||||
|
grub-install --removable --boot-directory=/mnt/boot --efi-directory=/mnt --target=i386-efi ${disk}
|
||||||
|
|
||||||
|
touch /mnt/boot/grub/grub.cfg
|
||||||
|
|
||||||
|
umount -v ${disk}1
|
||||||
|
```
|
|
@ -0,0 +1,238 @@
|
||||||
|
if [ -s $prefix/grubenv ]; then
|
||||||
|
set have_grubenv=true
|
||||||
|
load_env
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${next_entry}" ] ; then
|
||||||
|
set default="${next_entry}"
|
||||||
|
set next_entry=
|
||||||
|
save_env next_entry
|
||||||
|
set boot_once=true
|
||||||
|
else
|
||||||
|
set default="0"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ x"${feature_menuentry_id}" = xy ]; then
|
||||||
|
menuentry_id_option="--id"
|
||||||
|
else
|
||||||
|
menuentry_id_option=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
export menuentry_id_option
|
||||||
|
|
||||||
|
if [ "${prev_saved_entry}" ]; then
|
||||||
|
set saved_entry="${prev_saved_entry}"
|
||||||
|
save_env saved_entry
|
||||||
|
set prev_saved_entry=
|
||||||
|
save_env prev_saved_entry
|
||||||
|
set boot_once=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
function savedefault {
|
||||||
|
if [ -z "${boot_once}" ]; then
|
||||||
|
saved_entry="${chosen}"
|
||||||
|
save_env saved_entry
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function recordfail {
|
||||||
|
set recordfail=1
|
||||||
|
if [ -n "${have_grubenv}" ]; then
|
||||||
|
if [ -z "${boot_once}" ]; then
|
||||||
|
save_env recordfail
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function load_video {
|
||||||
|
if [ x$feature_all_video_module = xy ]; then
|
||||||
|
insmod all_video
|
||||||
|
else
|
||||||
|
insmod efi_gop
|
||||||
|
insmod efi_uga
|
||||||
|
insmod ieee1275_fb
|
||||||
|
insmod vbe
|
||||||
|
insmod vga
|
||||||
|
insmod video_bochs
|
||||||
|
insmod video_cirrus
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ x$feature_default_font_path = xy ] ; then
|
||||||
|
font=unicode
|
||||||
|
else
|
||||||
|
insmod part_msdos
|
||||||
|
insmod ext2
|
||||||
|
set root='hd0,msdos1'
|
||||||
|
if [ x$feature_platform_search_hint = xy ]; then
|
||||||
|
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 YOUR_UUID
|
||||||
|
else
|
||||||
|
search --no-floppy --fs-uuid --set=root YOUR_UUID
|
||||||
|
fi
|
||||||
|
font="/usr/share/grub/unicode.pf2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if loadfont $font ; then
|
||||||
|
set gfxmode=auto
|
||||||
|
load_video
|
||||||
|
insmod gfxterm
|
||||||
|
set locale_dir=$prefix/locale
|
||||||
|
set lang=en_IN
|
||||||
|
insmod gettext
|
||||||
|
fi
|
||||||
|
|
||||||
|
terminal_output gfxterm
|
||||||
|
insmod part_msdos
|
||||||
|
insmod ext2
|
||||||
|
|
||||||
|
insmod gfxmenu
|
||||||
|
|
||||||
|
loadfont ($root)/boot/grub/themes/Stylish/dejavu_32.pf2
|
||||||
|
loadfont ($root)/boot/grub/themes/Stylish/dejavu_sans_12.pf2
|
||||||
|
loadfont ($root)/boot/grub/themes/Stylish/dejavu_sans_14.pf2
|
||||||
|
loadfont ($root)/boot/grub/themes/Stylish/dejavu_sans_16.pf2
|
||||||
|
loadfont ($root)/boot/grub/themes/Stylish/dejavu_sans_24.pf2
|
||||||
|
loadfont ($root)/boot/grub/themes/Stylish/dejavu_sans_48.pf2
|
||||||
|
loadfont ($root)/boot/grub/themes/Stylish/terminus-12.pf2
|
||||||
|
loadfont ($root)/boot/grub/themes/Stylish/terminus-14.pf2
|
||||||
|
loadfont ($root)/boot/grub/themes/Stylish/terminus-16.pf2
|
||||||
|
loadfont ($root)/boot/grub/themes/Stylish/terminus-18.pf2
|
||||||
|
|
||||||
|
insmod jpeg
|
||||||
|
insmod png
|
||||||
|
|
||||||
|
set theme=($root)/boot/grub/themes/Stylish/theme.txt
|
||||||
|
export theme
|
||||||
|
|
||||||
|
if [ "${recordfail}" = 1 ] ; then
|
||||||
|
set timeout=30
|
||||||
|
else
|
||||||
|
if [ x$feature_timeout_style = xy ] ; then
|
||||||
|
set timeout_style=menu
|
||||||
|
set timeout=10
|
||||||
|
# Fallback normal timeout code in case the timeout_style feature is
|
||||||
|
# unavailable.
|
||||||
|
else
|
||||||
|
set timeout=10
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#== BEGIN Menu Colors =========================#
|
||||||
|
set menu_color_normal=white/black
|
||||||
|
set menu_color_highlight=black/light-gray
|
||||||
|
#== END Menu Colors ===========================#
|
||||||
|
|
||||||
|
if [ "${grub_platform}" = "efi" ]; then rmmod tpm; fi
|
||||||
|
|
||||||
|
submenu "Linux" --class linux {
|
||||||
|
|
||||||
|
regexp -s rootdevice '(.*),' $root
|
||||||
|
set root="(${rootdevice},2)"
|
||||||
|
|
||||||
|
submenu "Solus" --class solus {
|
||||||
|
|
||||||
|
menuentry "Solus 4.5 XFCE" --class solus {
|
||||||
|
set iso_path=/Solus-4.5-XFCE-Beta.iso
|
||||||
|
search --no-floppy --file ${iso_path} --set
|
||||||
|
|
||||||
|
live_args="for-dracut --> iso-scan/filename=${iso_path}"
|
||||||
|
iso_args="initrd=/boot/initrd.img root=live:CDLABEL=SolusLiveXFCEBeta ro rd.luks=0 rd.md=0 rd.live.overlay.overlayfs=1 quiet splash --"
|
||||||
|
|
||||||
|
loopback loop ${iso_path}
|
||||||
|
|
||||||
|
linux (loop)/boot/kernel ${live_args} ${iso_args}
|
||||||
|
initrd (loop)/boot/initrd.img
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
submenu "Arch Linux" --class arch {
|
||||||
|
|
||||||
|
menuentry "Arch Linux 011024" --class arch {
|
||||||
|
set isofile="/archlinux-2024.10.01-x86_64.iso"
|
||||||
|
set dri="free"
|
||||||
|
search --no-floppy -f --set=root $isofile
|
||||||
|
probe -u $root --set=uuid
|
||||||
|
loopback loop $isofile
|
||||||
|
linux (loop)/arch/boot/x86_64/vmlinuz-linux img_dev=/dev/disk/by-uuid/$uuid img_loop=$isofile quiet splash
|
||||||
|
initrd (loop)/arch/boot/x86_64/initramfs-linux.img
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
submenu "Debian" --class debian {
|
||||||
|
|
||||||
|
menuentry "Debian 12.7 Install GTK" --class debian {
|
||||||
|
set isofile="/debian-12.7.iso"
|
||||||
|
loopback loop $isofile
|
||||||
|
linux (loop)/install.amd/vmlinuz vga=788 --- quiet splash
|
||||||
|
initrd (loop)/install.amd/gtk/initrd.gz
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "Debian 12.7 Install Terminal" --class debian {
|
||||||
|
set isofile="/debian-12.7.iso"
|
||||||
|
loopback loop $isofile
|
||||||
|
linux (loop)/install.amd/vmlinuz vga=788 --- quiet splash
|
||||||
|
initrd (loop)/install.amd/initrd.gz
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
submenu "Astra" --class astra {
|
||||||
|
|
||||||
|
menuentry "Astra 1.7 Install GTK" --class astra {
|
||||||
|
set isofile="/astra_1.7.iso"
|
||||||
|
loopback loop $isofile
|
||||||
|
linux (loop)/install.amd/gtk/vmlinuz modprobe.blacklist=evbug astra_install=1 debian-installer/locale=ru debian-installer/language=ru keyboard-configuration/xkb-keymap=ru console-keymaps-at quiet splash
|
||||||
|
initrd (loop)/install.amd/gtk/initrd.gz
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "Astra 1.7 Install Terminal" --class astra {
|
||||||
|
set isofile="/astra_1.7.iso"
|
||||||
|
loopback loop $isofile
|
||||||
|
linux (loop)/install.amd/vmlinuz modprobe.blacklist=evbug astra_install=1 debian-installer/locale=ru debian-installer/language=ru keyboard-configuration/xkb-keymap=ru console-keymaps-at quiet splash
|
||||||
|
initrd (loop)/install.amd/initrd.gz
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "Astra 1.8" --class astra {
|
||||||
|
set isofile="/astra_1.8.iso"
|
||||||
|
loopback loop $isofile
|
||||||
|
linux (loop)/vmlinuz boot=live findiso=$isofile toram=filesystem.squashfs quiet splash
|
||||||
|
initrd (loop)/initrd
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
submenu "Windows" --class windows {
|
||||||
|
|
||||||
|
regexp -s rootdevice '(.*),' $root
|
||||||
|
|
||||||
|
menuentry "Windows 10" --class windows {
|
||||||
|
set root="(${rootdevice},5)"
|
||||||
|
insmod part_gpt
|
||||||
|
insmod ntfs
|
||||||
|
insmod chain
|
||||||
|
chainloader /efi/boot/bootx64.efi
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "Windows 10 Lite (8 в 1)" --class windows {
|
||||||
|
set root="(${rootdevice},3)"
|
||||||
|
insmod part_gpt
|
||||||
|
insmod ntfs
|
||||||
|
insmod chain
|
||||||
|
chainloader /EFI/boot/bootx64.efi
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "Windows 11" --class windows {
|
||||||
|
set root="(${rootdevice},4)"
|
||||||
|
insmod part_gpt
|
||||||
|
insmod ntfs
|
||||||
|
insmod chain
|
||||||
|
chainloader /efi/boot/bootx64.efi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry 'Перезагрузить компьютер' --class restart {
|
||||||
|
reboot
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry 'Выключить компьютер' --class shutdown {
|
||||||
|
halt
|
||||||
|
}
|
Loading…
Reference in New Issue