Bug 1969562
| Summary: | The created iso is not bootable | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Luca Giuzzi <luca.giuzzi> |
| Component: | livecd-tools | Assignee: | Neal Gompa <ngompa13> |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | high | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 34 | CC: | adam.stokes, bcl, bruno, dhuff, katzj, luca.giuzzi, metherid, ngompa13, vanmeeuwen+fedora |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | livecd-tools-28.3-1.el8 livecd-tools-28.3-1.fc33 livecd-tools-28.3-1.fc34 | Doc Type: | --- |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2021-06-28 00:31:30 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
I update my previous remarks. The image created with the patch boots in bios mode, but not in EFI mode. It seems that the cause is that shimx64.efi is copied with the name BOOTx64.efi but part of the script looks for the old name. Incidentally, a minimal example of the problem is with
livecd-creator --config=/usr/share/doc/livecd-tools/livecd-fedora-minimal.ks
The created image is not bootable.
The relevant transcript is:
Traceback (most recent call last):
File "/usr/sbin/mkefiboot", line 168, in <module>
main()
File "/usr/sbin/mkefiboot", line 161, in main
mkefiboot(opt.bootdir, opt.outfile, opt.label)
File "/usr/sbin/mkefiboot", line 33, in mkefiboot
mkdosimg(None, outfile, label=label, graft={'EFI/BOOT':bootdir})
File "/usr/lib/python3.9/site-packages/pylorax/imgutils.py", line 515, in mkdosimg
mkfsimage("msdos", rootdir, outfile, size, mountargs=mountargs,
File "/usr/lib/python3.9/site-packages/pylorax/imgutils.py", line 489, in mkfsimage
with LoopDev(outfile, size) as loopdev:
File "/usr/lib/python3.9/site-packages/pylorax/imgutils.py", line 355, in __init__
mksparse(self.filename, size)
File "/usr/lib/python3.9/site-packages/pylorax/imgutils.py", line 143, in mksparse
with open(outfile, "w") as fobj:
FileNotFoundError: [Errno 2] No such file or directory: '/var/tmp/imgcreate-qr244tp5/is
o-xlh3c83a/images/efiboot.img'
Traceback (most recent call last):
File "/usr/sbin/mkefiboot", line 168, in <module>
main()
File "/usr/sbin/mkefiboot", line 158, in main
mkmacboot(opt.bootdir, opt.outfile, opt.label, opt.icon, opt.product,
File "/usr/sbin/mkefiboot", line 45, in mkmacboot
mkhfsimg(None, outfile, label=label, graft=graft, size=size)
File "/usr/lib/python3.9/site-packages/pylorax/imgutils.py", line 530, in mkhfsimg
mkfsimage("hfsplus", rootdir, outfile, size, mountargs=mountargs,
File "/usr/lib/python3.9/site-packages/pylorax/imgutils.py", line 489, in mkfsimage
with LoopDev(outfile, size) as loopdev:
File "/usr/lib/python3.9/site-packages/pylorax/imgutils.py", line 355, in __init__
mksparse(self.filename, size)
File "/usr/lib/python3.9/site-packages/pylorax/imgutils.py", line 143, in mksparse with open(outfile, "w") as fobj:
FileNotFoundError: [Errno 2] No such file or directory: '/var/tmp/imgcreate-qr244tp5/iso-xlh3c83a/images/macboot.img'
I apologize if I keep on adding comments, but now I am looking at mkefiboot (which perhaps is the true culprit).
in /usr/lib/python3.9/site-packages/pylorax/imgutils.py there is the following line
dev = runcmd_output(["losetup", "--find", "--show", outfile]).strip()
which should call losetup with the proper parameters.
However, even if outfile exists, it does fail. Actually, after I created a file out.img also this fails
from pylorax.executils import runcmd, runcmd_output
runcmd(["losetup","--find","--show","out.img"]).strip()
while the shell command
losetup --find --show ./out.img
runs correctly
FEDORA-EPEL-2021-28a6b0ea69 has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-28a6b0ea69 FEDORA-2021-d997907ec1 has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2021-d997907ec1 FEDORA-2021-b5ad7217c5 has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-b5ad7217c5 FEDORA-2021-d997907ec1 has been pushed to the Fedora 33 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-d997907ec1` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-d997907ec1 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-2021-b5ad7217c5 has been pushed to the Fedora 34 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-b5ad7217c5` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-b5ad7217c5 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-EPEL-2021-28a6b0ea69 has been pushed to the Fedora EPEL 8 testing repository. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-28a6b0ea69 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-EPEL-2021-28a6b0ea69 has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-28a6b0ea69 FEDORA-2021-d997907ec1 has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2021-d997907ec1 FEDORA-2021-b5ad7217c5 has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-b5ad7217c5 FEDORA-EPEL-2021-28a6b0ea69 has been pushed to the Fedora EPEL 8 stable repository. If problem still persists, please make note of it in this bug report. FEDORA-2021-d997907ec1 has been pushed to the Fedora 33 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-d997907ec1` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-d997907ec1 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-2021-b5ad7217c5 has been pushed to the Fedora 34 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-b5ad7217c5` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-b5ad7217c5 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-2021-d997907ec1 has been pushed to the Fedora 33 stable repository. If problem still persists, please make note of it in this bug report. FEDORA-2021-b5ad7217c5 has been pushed to the Fedora 34 stable repository. If problem still persists, please make note of it in this bug report. |
Description of problem: I created an iso image from a custom kickstart file. The image is not bootable under ElTorito. The affected (sub)package is python3-imgcreate-28.1-1.fc34.x86_64 Version-Release number of selected component (if applicable): 28.1-1.fc34 How reproducible: Try to create an iso image Steps to Reproduce: 1. sudo livecd-creator kickstart.ks 2. wait for the iso image to be created 3. test the iso image with qemu-system-x86_64 -enable-kvm -m 4096 -cdrom ./image.iso Actual results: The image does not boot under bios. Expected results: The image should be bootable both under UEFI and in ElTorito compatibility mode. Additional info: It appears that in file /usr/lib/python3.9/site-packages/imgcreate/live.py the proper options for xorrisofs are not set. We have in class x86LiveImageCreator the following def _get_xorrisofs_options(self,isodir): options = [] if os.path.exists(os.path.join(isodir, "images/efiboot.img")): options+=["-no-emul-boot", "-isohybrid-gpt-basdat", "-isohybrid-mbr", "/usr/share/syslinux/isohdpfx.bin", "-eltorito-boot", "isolinux/isolinux.bin", "-boot-load-size", "4", "-boot-info-table", "-eltorito-catalog", "isolinux/boot.cat", "-eltorito-alt-boot", "-e", "images/efiboot.img" ] However, some options however should be set unconditionally (or, at least, they do not depend on efiboot.img). So the code should rather be def _get_xorrisofs_options(self, isodir): options = [ "-no-emul-boot", "-isohybrid-gpt-basdat", "-isohybrid-mbr", "/usr/share/syslinux/isohdpfx.bin", "-eltorito-boot", "isolinux/isolinux.bin", "-boot-load-size", "4", "-boot-info-table", "-eltorito-catalog", "isolinux/boot.cat"] if os.path.exists(os.path.join(isodir, "images/efiboot.img")): options += ["-eltorito-alt-boot", "-e", "images/efiboot.img" ] With this patch it appears that the disk is correctly generated.