Added distro and few other improvements

1. Added vba32 rescue
2. Temproraily remove 'remove ANSI color codes from logs' patch as it crash under windows
pull/151/head
mbusb 7 years ago
parent 4ea4a6fe93
commit 2331f51c0b

@ -11,6 +11,7 @@ usb_disk = ""
usb_mount = ""
usb_uuid = ""
usb_label = ""
usb_details = ''
image_path = ""
persistence = 0
persistence_available = False

@ -135,6 +135,8 @@ def distro(iso_cfg_ext_dir, iso_link):
return "pc-unlocker"
elif re.search(r'/system/stage1', string, re.I):
return 'pc-tool'
elif re.search(r'vba32rescue', string, re.I):
return 'grub2only'
distro = detect_iso_from_file_list(iso_link)

@ -44,6 +44,7 @@ def log(message, info=True, error=False, debug=False):
level=logging.DEBUG)
print(message)
'''
# remove ANSI color codes from logs
message_clean = re.compile(r'\x1b[^m]*m').sub('', message)
@ -53,6 +54,7 @@ def log(message, info=True, error=False, debug=False):
logging.error(message_clean)
elif debug is not False:
logging.debug(message_clean)
'''
def resource_path(relativePath):

@ -52,8 +52,8 @@ def mbusb_update_grub_cfg():
syslinux_menu = iso_iso_cfg_path.replace('\\', '/')
efi_grub_cfg = get_grub_cfg(config.image_path)
loopback_cfg_path = iso.iso_file_path(config.image_path, 'loopback.cfg')
boot_grub_cfg = get_grub_cfg(config.image_path, efi=False)
loopback_cfg_path = iso.iso_file_path(config.image_path, 'loopback.cfg')
if loopback_cfg_path is not False:
grub_cfg_path = loopback_cfg_path.replace('\\', '/')
@ -72,8 +72,12 @@ def mbusb_update_grub_cfg():
with open(mbus_grub_cfg_path, 'a') as f:
f.write("#start " + iso.iso_basename(config.image_path) + "\n")
if grub_cfg_path is not None:
f.write(' menuentry ' + iso.iso_basename(config.image_path) + ' {configfile '
+ '/multibootusb/' + iso.iso_basename(config.image_path) + '/' + grub_cfg_path + '}' + "\n")
if config.distro == 'grub2only':
f.write(' menuentry ' + iso.iso_basename(config.image_path) + ' {configfile '
+ '/' + grub_cfg_path.replace('\\', '/') + '}' + "\n")
else:
f.write(' menuentry ' + iso.iso_basename(config.image_path) + ' {configfile '
+ '/multibootusb/' + iso.iso_basename(config.image_path) + '/' + grub_cfg_path + '}' + "\n")
elif config.distro == 'f4ubcd':
f.write(' menuentry ' + iso.iso_basename(config.image_path) +
' {linux /multibootusb/grub.exe --config-file=/multibootusb' +
@ -101,7 +105,6 @@ def mbusb_update_grub_cfg():
def write_custom_gurb_cfg():
from . import menus
print(os.path.join(config.usb_mount, 'multibootusb', iso.iso_basename(config.image_path), 'loopback.cfg'))
loopback_cfg_path = os.path.join(config.usb_mount, 'multibootusb', iso.iso_basename(config.image_path), 'loopback.cfg')
if config.distro == 'pc-tool':
menu = menus.pc_tool_config(syslinux=False, grub=True)
@ -142,7 +145,6 @@ def grub_custom_menu(mbus_grub_cfg_path, distro):
gen.log('size of the ISO is ' + str(iso_size_mb))
if distro == 'sgrubd2' or distro == 'raw_iso':
grub_raw_iso(mbus_grub_cfg_path)
elif distro == '':
'''
with open(mbus_grub_cfg_path, 'a') as f:

@ -54,7 +54,7 @@ def install_distro():
log("Copying " + config.image_path + " to " + usb_mount)
shutil.copy(config.image_path, usb_mount)
elif config.distro == "Windows" or config.distro == "alpine" or config.distro == 'pc-unlocker'\
or config.distro == 'pc-tool':
or config.distro == 'pc-tool' or config.distro == 'grub2only':
log("Extracting iso to " + usb_mount)
iso_extract_full(config.image_path, usb_mount)
elif config.distro == "trinity-rescue":

@ -182,6 +182,8 @@ def extract_cfg_file(iso_link):
# file_list = iso_file_list(iso_link)
for ext in _pattern:
_7zip.extract_iso(iso_link, _iso_cfg_ext_dir, pattern='*' + ext)
#_7zip.extract_iso(iso_link, _iso_cfg_ext_dir, pattern='isolinux.bin ISOLINUX.BIN')
#_7zip.extract_iso(iso_link, _iso_cfg_ext_dir, pattern='*.cfg *.CFG *.txt *.TXT *.lst')
def iso_extract_full(iso_link, dest_dir):

@ -8,6 +8,7 @@
from . import iso
from . import config
from . import grub
def pc_tool_config(syslinux=True, grub=False):
@ -25,3 +26,12 @@ APPEND initrd=/system/stage2 root=/dev/ram0 rw rdinit=/linuxrc video=vesa:ywrap,
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"""

@ -21,7 +21,7 @@ def install_distro_list():
List all distro names installed by previous install
:return: List of distro names as list
"""
usb_details = config.usb_details
usb_details = details(config.usb_disk)
config.usb_mount = usb_details['mount_point']
sys_cfg_file = os.path.join(config.usb_mount, "multibootusb", "syslinux.cfg")

@ -346,6 +346,8 @@ def update_mbusb_cfg_file(iso_link, usb_uuid, usb_mount, distro):
config_file.write("append initrd=../ntldr" + '\n')
elif distro == 'pc-tool':
config_file.write(menus.pc_tool_config(syslinux=True, grub=False))
elif distro == 'grub2only':
config_file.write(menus.grub2only())
else:
if isolinux_bin_exist(config.image_path) is True:
if distro == "generic":

Loading…
Cancel
Save