Open avila opened 6 years ago
Ok...
After reading the content of /tmp/multibootusb.log
, I found the solution, that is, manually downloading
https://github.com/mbusb/multibootusb/blob/master/data/tools/gptmbr.bin
and saving in under
/usr/share/multibootusb/data/tools
now the process exits successfully (but I did not try yet to boot from usb)
I can confirm that this problem also happens with the RPM package for Fedora.
It still happens on Manjaro
Using python version 3.7.0 (default, Jul 15 2018, 10:44:58)
[GCC 8.1.1 20180531] on platform Linux-4.14.66-1-MANJARO-x86_64-with-arch-Manjaro-Linux
Could not find resource 'data/tools/gdisk/gdisk.exe'.
Running multibootusb version 9.2.0 from installed system...
Starting multibootusb GUI...
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
Cleaning old multibootusb directory...
Syslinux exist in multibootusb directory...
Using pyudev for detecting USB drives...
/dev/sdc
/dev/sdc1
Selected device /dev/sdc
Device /dev/sdc is a GPT disk...
USB disk is not mounted and can't update list widget...
Selected device /dev/sdc1
Device /dev/sdc1 is a GPT disk...
Installing default syslinux on /dev/sdc1
Using gptmbr.bin for mbr install.
Could not find resource 'data/tools/gptmbr.bin'.
Traceback (most recent call last):
File "/usr/lib/python3.7/site-packages/scripts/mbusb_gui.py", line 387, in onInstall_syslinuxClick
ret = syslinux_default(config.usb_disk)
File "/usr/lib/python3.7/site-packages/scripts/syslinux.py", line 107, in syslinux_default
mbr_install_cmd = 'dd bs=440 count=1 conv=notrunc if=' + mbr_bin + ' of=' + usb_disk[:-1]
TypeError: can only concatenate str (not "NoneType") to str
Aborted
Used @mr-avila comment and downloaded from github but distro is not visible.
Looks like the problem happens when you run multibootusb from a working directory other than the project root directory, because paths like "data/tools/gdisk/gdisk.exe" or "data/tools/gptmbr.bin" are relative.
A couple of possible ways to fix the issue:
make multibootusb
change the current working directory to its parent directory.
Using some os.path
tricks, we make these directories not relative, e.g.:
from os import path
mbr_bin = path.join(path.dirname(__file__), 'data', 'tools', 'gptmbr.bin')
There are probably more robust ways to solve this, but that's what comes to mind.
I confirm that @mr-avila 's solution works.
https://github.com/mbusb/multibootusb/blob/master/data/tools/gptmbr.bin
and saving in under
/usr/share/multibootusb/data/tools
On a variant of Ubuntu 18.10, this allowed the USB writing to continue, but the resulting multi-USB couldn't boot. I fixed the problem by getting rid of the GPT and just having an MBR partition table by using fdisk instead of gdisk to create the partition. When made a MBR partition table without GPT, gptmbr.bin wasn't needed. Also, I happened to be using ext4. I don't know what it would be like if I had used VFAT.
uname -a
Linux ws1 4.18.0-22-generic #23~18.04.1-Ubuntu SMP Thu Jun 6 08:37:25 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
lsb_release -a
No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.2 LTS Release: 18.04 Codename: bionic
sudo wget -P /usr/share/multibootusb/data/tools/gdisk https://github.com/mbusb/multibootusb/blob/master/data/tools/gdisk/gdisk.exe
sudo wget -P /usr/share/multibootusb/data/tools https://github.com/mbusb/multibootusb/blob/master/data/tools/gptmbr.bin
Traceback (most recent call last): File "/usr/lib/python3/dist-packages/scripts/mbusb_gui.py", line 352, in install_syslinux config.distro, config.persistence) File "/usr/lib/python3/dist-packages/scripts/update_cfg_file.py", line 402, in update_distro_cfg_files callback(dirpath, f) File "/usr/lib/python3/dist-packages/scripts/update_cfg_file.py", line 374, in fix_desktop_image_in_thema_callback for line in f.readlines(): File "/usr/lib/python3.6/codecs.py", line 321, in decode (result, consumed) = self._buffer_decode(data, self.errors, final) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa7 in position 3480: invalid start byte
As noted above, it's a path issue that can occur when installing from a .deb
package.
Here's a workaround:
sudo python3 ./multibootusb
I was able to to get this to work on a system with some heavily modified $PATH
and $PYTHONPATH
variables. As such, running sudo python3 ./multibootusb
did not work.
Here's what I did on Ubuntu 18.04:
.deb
package from http://multibootusb.org/page_download/sudo apt install ./python3-multibootusb_9.2.0-1_all.deb
/usr/share/multibootusb/data/tools
gptmbr.bin
file with sudo wget https://github.com/mbusb/multibootusb/blob/master/data/tools/gptmbr.bin
(Though, this appears to be the same file that is contained in /usr/lib/SYSLINUX/gptmbr.bin
based off MD5)multibootusb-pkexec
- It failed previously on the gptmbr.bin
but now succeeds.On Ubuntu 16.04 and invoking with sudo on command line, to see what is going on. Hangs with the following:
Using pyudev for detecting USB drives...
/dev/sdc
/dev/sdc1
Selected device /dev/sdc
Warning: The driver descriptor says the physical block size is 2048 bytes, but
Linux says it is 512 bytes.
This looks like it has been a problem for a while. Is anyone still maintaining the project?
I was able to to get this to work on a system with some heavily modified
$PATH
and$PYTHONPATH
variables. As such, runningsudo python3 ./multibootusb
did not work.Here's what I did on Ubuntu 18.04:
- Download the
.deb
package from http://multibootusb.org/page_download/- Install with:
sudo apt install ./python3-multibootusb_9.2.0-1_all.deb
- Navigate to
/usr/share/multibootusb/data/tools
- Download the
gptmbr.bin
file withsudo wget https://github.com/mbusb/multibootusb/blob/master/data/tools/gptmbr.bin
(Though, this appears to be the same file that is contained in/usr/lib/SYSLINUX/gptmbr.bin
based off MD5)- Re-run
multibootusb-pkexec
- It failed previously on thegptmbr.bin
but now succeeds.
Was that related to a permissions issue?
Can confirm this fixed the issue for me as well. Using version 9.2.0
on Ubuntu 18.04
... and why the file is not included in actual deb-package?
Best Regards :)
Attempting to install a few ISO images onto an usb and the whole process goes through and hangs forever on installing syslinux. If i anyway quit the process and reboot, the system can boot into the USB but it does not find any distro to boot. It only finds one entry saying "Load Syslinux Boot Loader", but clicking on it returns to the same screen after 3 to 5 seconds.
I tried formatting the USB in different ways, but at the moment is formatted as
that is, 2 partitions, with the second being for the live USB distros.
content from
/tmp/multibootusb.log