You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
multibootusb/scripts/menus.py

104 lines
4.1 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Name: menus.py
# Purpose: Module contain custom menu entries for fewer distros
# Authors: Sundar
# Licence: This file is a part of multibootusb package. You can redistribute it or modify
# under the terms of GNU General Public License, v.2 or above
from . import iso
from . import config
from .gen import MemoryCheck
def pc_tool_config(syslinux=True, grub=False):
"""
Menu entry for PC Tool ISO
:param syslinux:
:param grub:
:return:
"""
if syslinux is True:
return """KERNEL /system/stage1
APPEND initrd=/system/stage2 root=/dev/ram0 rw rdinit=/linuxrc video=vesa:ywrap,mtrr vga=0x303 loglevel=0 splash boot=cdrom\n"""
elif grub is True:
return """menuentry """ + iso.iso_basename(config.image_path) + """ {
linux /system/stage1 root=/dev/ram0 rw rdinit=/linuxrc video=vesa:ywrap,mtrr vga=0x303 loglevel=0 splash boot=cdrom
initrd /system/stage2\n}"""
def grub2only():
return """MENU LABEL """ + iso.iso_basename(config.image_path) + """
LINUX /multibootusb/grub/lnxboot.img
INITRD /multibootusb/grub/core.img
TEXT HELP
Switch to GRUB2 to select boot options.
ENDTEXT\n"""
def rising(syslinux=True, grub=False):
"""
Menu entry for Raising Anti-virus. Only grub2 menu is required. Syslinux menu is automatically added
:param syslinux:
:param grub:
:return:
"""
if grub is True:
return """menuentry """ + iso.iso_basename(config.image_path) + """ {
linux /multibootusb/linux/boot/isolinux/vmlinuz lang=us ramdisk_size=100000 init=/etc/init apm=power-off pnpbios=off vga=0x314 nomce quiet BOOT_IMAGE=rising
initrd /multibootusb/linux/boot/isolinux/ravroot.gz\n}"""
def memdisk_iso_cfg(syslinux=True, grub=False):
"""
Menu entry for ISO using memdisk. Need to have more RAM to make it work with mendisk properly.
By default, memory size is set to system RAM size or 3GB. The 'vmalloc=3072M' can also be used as 'mem=3G'.
:param syslinux: Default is True
:param grub: Default is False
:return: Menu entry for syslinux and grub2
"""
M = MemoryCheck()
avl_mem = M.value
if not avl_mem:
avl_mem = int(3072)
if syslinux is True:
menu_entry = 'LINUX memdisk\n' \
'INITRD /multibootusb/' + iso.iso_basename(config.image_path) + '/' + iso.iso_name(config.image_path) + '\n' \
'APPEND iso vmalloc=' + str(avl_mem) + 'M\n'
elif grub is True:
menu_entry = ' search --set -f /multibootusb/' + iso.iso_basename(config.image_path) + '/' + iso.iso_name(config.image_path) + '\n' \
' menuentry ' + iso.iso_basename(config.image_path) + ' {\n' \
' linux16 /multibootusb/memdisk iso vmalloc=' + str(avl_mem) + 'M\n' \
' initrd16 /multibootusb/' + iso.iso_basename(config.image_path) + '/' + iso.iso_name(config.image_path) + '\n' \
'}\n'
return menu_entry
def memdisk_img_cfg(syslinux=True, grub=False):
"""
Menu entry for IMG files using memdisk. Need to have more RAM to make it work with mendisk properly.
By default, memory size is set to system RAM size or 3GB.
:param syslinux: Default is True
:param grub: Default is False
:return: Menu entry for syslinux and grub2
"""
M = MemoryCheck()
avl_mem = M.value
if not avl_mem:
avl_mem = int(3072)
if syslinux is True:
menu_entry = 'LINUX memdisk\n' \
'INITRD /multibootusb/' + iso.iso_basename(config.image_path) + '/' + iso.iso_name(config.image_path) + '\n' \
'APPEND raw vmalloc=' + str(avl_mem) + 'M\n'
elif grub is True:
menu_entry = ' search --set -f /multibootusb/' + iso.iso_basename(config.image_path) + '/' + iso.iso_name(config.image_path) + '\n' \
' menuentry ' + iso.iso_basename(config.image_path) + ' {\n' \
' linux16 /multibootusb/memdisk raw vmalloc=' + str(avl_mem) + 'M\n' \
' initrd16 /multibootusb/' + iso.iso_basename(config.image_path) + '/' + iso.iso_name(config.image_path) + '\n' \
'}\n'
return menu_entry