Bug fix to setup file and new distros:

1. Added Alpine (you can install one version only)
2. Fix for trinity boot issue
3. Modified setup file for including grub2 modules in correct place
pull/166/head
mbusb 7 years ago
parent 057fd1cdcf
commit c918aa4563

@ -12,7 +12,7 @@
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/local/bin/multibootusb</annotate>
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/multibootusb</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>

@ -140,9 +140,11 @@ def distro(iso_cfg_ext_dir, iso_link):
return 'rising-av'
elif re.search(r'Avira Rescue System', string, re.I):
return 'Avira-RS'
elif any("alpine-release" in s.lower() for s in iso_file_list):
return 'alpine'
distro = detect_iso_from_file_list(iso_link)
if distro:
return distro
# FIXME: See the below comments.

@ -52,7 +52,7 @@ def install_distro():
elif platform.system() == "Linux":
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'\
elif config.distro == "Windows" or config.distro == 'pc-unlocker'\
or config.distro == 'pc-tool' or config.distro == 'grub2only':
log("Extracting iso to " + usb_mount)
iso_extract_full(config.image_path, usb_mount)
@ -112,6 +112,11 @@ def install_distro():
if os.path.exists(os.path.join(usb_mount, 'system')):
shutil.rmtree(os.path.join(usb_mount, 'system'))
shutil.move(os.path.join(install_dir, 'system'), os.path.join(usb_mount))
elif config.distro == 'alpine':
iso_extract_full(config.image_path, install_dir)
if os.path.exists(os.path.join(usb_mount, 'apks')):
shutil.rmtree(os.path.join(usb_mount, 'apks'))
shutil.move(os.path.join(install_dir, 'apks'), os.path.join(usb_mount))
else:
iso.iso_extract_full(config.image_path, install_dir)

@ -125,7 +125,7 @@ def syslinux_distro_dir(usb_disk, iso_link, distro):
log('Distro uses really old isolinux. Installing version 3 instead of 2.')
config.syslinux_version = '3'
if distro in ["generic", "alpine"]:
if distro in ["generic"]:
install_dir = usb_mount
distro_syslinux_install_dir = os.path.join(usb_mount, iso_linux_bin_dir.strip("/")).replace(usb_mount, "")
distro_sys_install_bs = os.path.join(install_dir, iso_linux_bin_dir.strip("/"), distro + '.bs')

@ -49,7 +49,9 @@ def update_distro_cfg_files(iso_link, usb_disk, distro, persistence=0):
'boot=casper cdrom-detect/try-usb=true floppy.allowed_drive_mask=0 ignore_uuid '
'ignore_bootid root=UUID=' + usb_uuid + ' live-media-path=/multibootusb/'
+ iso_basename(iso_link) + '/casper', string)
string = re.sub(r'live-media=\S*', 'live-media=/dev/disk/by-uuid/' + usb_uuid , string)
# Point to correct .seed file
string = re.sub(r'/cdrom/preseed', '/preseed', string)
string = re.sub(r'live-media=\S*', 'live-media=/dev/disk/by-uuid/' + usb_uuid, string)
string = re.sub(r'ui gfxboot', '#ui gfxboot', string)
if persistence != 0:
string = re.sub(r'boot=casper', 'boot=casper persistent persistent-path=/multibootusb/' +
@ -220,6 +222,12 @@ def update_distro_cfg_files(iso_link, usb_disk, distro, persistence=0):
elif distro == 'fsecure':
string = re.sub(r'APPEND ramdisk_size', 'APPEND noprompt ' + 'knoppix_dir=/multibootusb/' + iso_basename(iso_link)
+ '/KNOPPIX ramdisk_size', string)
elif distro == 'alpine':
string = re.sub(r'modules', 'alpine_dev=usbdisk:vfat modules', string)
elif config.distro == 'trinity-rescue':
# USB disk must have volume label to work properly
string = re.sub(r'initrd=', 'vollabel=' + config.usb_label + ' initrd=', string)
string = re.sub(r'root=\S*', 'root=/dev/ram0', string, flags=re.I)
config_file = open(cfg_file, "w")
config_file.write(string)

@ -12,7 +12,15 @@ import os
from scripts.gen import mbusb_version
Version = mbusb_version()
def get_data(_dir):
"""
Get path to all files, including sub directories
:param _dir: Path to top level directory
:return: Path to files as list
"""
data = []
for dirpath, dirnames, filenames in os.walk(_dir):
for f in filenames:
@ -20,8 +28,21 @@ def get_data(_dir):
data.append(cfg_file)
return data
Version = mbusb_version()
print(Version)
def root_files(_dir):
"""
Get path to all files of root directories
:param _dir: Path to a directory
:return: Path to files as list
"""
data = []
for _file in os.listdir(_dir):
path = os.path.join(_dir, _file)
if not os.path.isdir(path):
data.append(path)
return data
setup(
name='multibootusb',
version=Version,
@ -55,6 +76,7 @@ setup(
('/usr/share/multibootusb/data/multibootusb', ["data/multibootusb/menu.lst"]),
('/usr/share/multibootusb/data/multibootusb', ["data/multibootusb/syslinux.cfg"]),
('/usr/share/multibootusb/data/multibootusb', ["data/multibootusb/vesamenu.c32"]),
('/usr/share/multibootusb/data/multibootusb/grub', get_data('data/multibootusb/grub')),
('/usr/share/multibootusb/data/multibootusb/grub', root_files('data/multibootusb/grub')),
('/usr/share/multibootusb/data/multibootusb/grub/i386-pc', get_data('data/multibootusb/grub')),
('/usr/share/multibootusb/data/tools/syslinux', get_data('data/tools/syslinux'))]
)

Loading…
Cancel
Save