-
Notifications
You must be signed in to change notification settings - Fork 106
util/build-img.sh: use system syslinux binaries #1076
Conversation
Guestfish uses the extlinux command installed on the system and the version of syslinux install on the system may be different from the one that comes with Harvey. If we mix syslinux versions, boot can fail. For example, I was getting this when booting from an image created on an ArchLinux system: ``` Undef symbol FAIL: x86_init_fpu Failed to load libcom32.c32 Failed to load COM32 file vesamenu.c32 ``` Help Harvey-OS#1072 Signed-off-by: Fazlul Shahriar <fshahriar@gmail.com>
# Syslinux should already be installed on the system since it's a | ||
# dependency of guestfish. We want to use the system syslinux binaries | ||
# which match the extlinux command below. | ||
SRC_SYSLINUX=/usr/lib/syslinux/bios |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd rather we bring the file into harvey. The reason is that this path is not at at all standard across distros. Would that be ok with you? These files change rarely if ever.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm ok with that. Any idea where the existing syslinux files were obtained from? I need the extlinux
binary that matches mbr
and other syslinux files already in harvey. Otherwise, I could just updated all syslinux files to the latest version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might as well update all with the latest
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought guestfish searches for extlinux
in $PATH
. I was wrong. It creates a VM image from the host system and runs everything from within qemu. So, modifying $PATH
to include harvey's extlinux
will not prevent guestfish from picking up the system extlinux
. I don't see any easy workaround for this.
We can run extlinux
externally after mounting the filesystem using qemu-nbd
but that'd require root access and kind of defeats the purpose of using guestfish. Maybe we can just check for some common places linux distros keep the syslinux *.c32
files?
Ultimately we want to provide downloadable boot images to users who want to try out harvey, so this script will be run by only few people.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if you're still good with this let's go. I did not mean to slow it down.
At least the CI builds the image now. I'll go with this for now and improve it as things come up. |
Guestfish uses the extlinux command installed on the system and the
version of syslinux install on the system may be different from the one
that comes with Harvey. If we mix syslinux versions, boot can fail. For
example, I was getting this when booting from an image created on an
ArchLinux system:
Help #1072
Signed-off-by: Fazlul Shahriar fshahriar@gmail.com