Where is 13.1RC1 boot file/catalog file?

Hi.

With ref. to my entry here (https://forums.opensuse.org/english/get-technical-help-here/pre-release-beta/491135-opensuse-13-1-rc1-observations-8.html), about testing 13.1RC1 using a modified shim:

I have attempted to redo my 13.1RC1 tests using the modified shim.

However, I have no result yet, as I am stopped at a basic point:
I can’t make the modified DVD-image bootable (yet) - neither the USB-stick, nor the image sent to the DVD burner proper.


It seemed simple enough at first: Copy the image to the USB, mount it, then adjust the file(s) in question (=the shim-rpm). No luck: The USB mounted as ReadOnly. Fair enough, as the device is simulating a DVD drive, which is RO in itself. Another solution is needed.

A search on the internet, revealed an intriguing script: live-fat-stick. It allows you to combine several iso-images on the same stick, while at the same time allowing you to store other files on it without disturbing your bootable iso-images. That’s a win in both ends!

This wasn’t much better. The iso-image was displayed in the boot-menu, but it just accessed USB-stick, then went on to display the boot-menu from the HDD (grub-2 boot menu, W8/12.3).

I also tried burning the modified image to the DVD proper. The DVD wasn’t even displayed as a boot option. Trying the same with a DVD from the original 13.1RC1 image did result in a boot-from-DVD boot option.

Clearly, my modified image wasn’t bootable.

Further experimentation on this takes time, as each attempt takes a considerable amount of time - and I can also see many possible combinations (which will probably be cosiderably reduced in number as I get more into it). My hope is that someone can help out here to reduce the time needed just now, and I can pick up mkisofs (actually all the mk*fs commands look interesting) later on. If not, I’ll just continue investigating.

Here’s approximately what I did:

mkdir ./fake_iso
mkdir ./tobe_iso
mount -o loop ./OpenSuse13.1RC1.iso ./fake_iso
cp -R ./fake_iso/* ./tobe_iso
cd ./tobe_iso
cd suse/x86_64
cp ../../../shim-0.4-75.5.x86_64.rpm ./shim-0.4-10.2.2.x86_64.rpm
cd ../../..
umount ./fake_iso
mkisofs -r -o ./OpenSuse13.1RC1mod.iso ./tobe_iso

// Then burn the OpenSuse13.1RC1mod.iso to the DVD or 
// copy it to USB using the live-fat-stick script.

As you will probably quickly see, the culprit here is my use of mkisofs, which is incomplete as to making a new iso bootable.

**My specific question is: **
For 13.1RC1, which file is the boot-file (/boot/x86_64/loader/isolinux.bin?), and which file is the boot catalog file(/boot/x86_64/loader/isolinux.cfg?)?

Given the two boot-files and the environment outlined above, would this mkisofs-variant produce a working bootable iso image?

mkisofs -b ./tobe_iso/<fully-specified-path-and-name-to-BOOTFILE> /
        -c ./tobe_iso/<fully-specified-path-and-name-to-CATALOGFILE> /
        -o ./OpenSuse13.1RC1mod.iso /
        -J -r -R -v -T -x

Obviously, the generic question would be how to determine which file is the boot-file and which file is the boot catalog when looking at a working, bootable iso-image/CD/DVD, but I guess that is a question for another thread in another sub-forum…

Thank you for any assistance in this.

dayfinger

I knew that was going to be difficult.

I’m currently looking at a live KDE USB for 13.1RC1.


   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1            4084       12275        4096   ef  EFI (FAT-12/16/32)
/dev/sdd2   *       12276     1888255      937990   83  Linux
/dev/sdd3         1888256     7890944     3001344+  83  Linux

Note that partition 3 (/dev/sdd3) does not exist on a newly created live USB. It is created when you boot it the first time.

For UEFI booting, the first partition is the crucial one. That mounts as “vfat” if I try mounting it. It contains the file “/EFI/BOOT/bootx64.efi”.

That’s where the important version of “shim.efi” goes. You could try copying to that. Whether that works, I do not know. There’s a similar structure on a DVD written to USB.

If you can get that to boot, you are still not done. For “shim.efi” on the installed system does not come from there. It probably comes from “/usr/lib64/efi/shim.efi”. On the live KDE USB, you could boot the live system, then copy your modified shim.efi to there. Your copy would go to partition 3 (where modified files go), but would be properly seen when installed from the live USB so would be copied to the correct place in the installed system.

The DVD would be harder. The installed “shim.efi” will come from an RPM on the DVD image.

I don’t know if you can make any of this work. But, if anything is going to work, it would be to copy your new “shim.efi” to that “bootx64.efi” on the first partition of the live USB. Then boot the live system, and copy “/boot/efi/EFI/BOOT/bootx64.efi” to your “/usr/lib64/efi/shim.efi”. And then try installing.

Trying to make a DVD work looks far too hard.

Waiting for RC2, in around 1 week, is easier.

You’re not wrong :.… obviously, I am missing something.

I have also tried OpenSUSE live-usb cration as instructed here: SDB:Live USB stick - openSUSE. The procedure works, although I didn’t succeed under W8 at all - imagewriter.exe would not detect my USB stick - a 32GB Lexar USB 3.0 type. I had to do it under Linux (I’m not complaining, just stating the fact). Following that, I found the USB-stick from my boot-menu, and could boot off it with the same result as from the 13.1RC1 DVD: Initial menu, then everything hangs while displaying “Loading kernel …”.

However, I am not able to mount it or otherwise making it accessible for modification. Under W8, diskpart is able to see the device, but only the first 4MB partition, which is marked “Unusable” when executing “list volume” from within diskpart.
From 12.3 (gparted), the result is as following:

Partition   FileSystem Label                         Size     Used    Unused    Flags
unallocated                                          1.84MiB  ---     ---
/dev/sdb1   fat16       BOOT                         4.00MiB  3.14MiB 606.00KiB type
/dev/sdb2   unknown     openSUSE-13.1-DVD-x86_640041 4.25GiB  ---     ---       boot, hidden, type
unallocated unallocated                              25.25GiB ---     ---

The shim-0.4-75.5.x86_64.rpm file contains several “shim”-files in /usr/lib64/efi/, but there is one “shim.efi”. I assume that is the right one.

At first, I thought so myself too. However, since the shim-rpm is what I got my hands onto (here, a tip from oldcpu: https://forums.opensuse.org/english/get-technical-help-here/pre-release-beta/491135-opensuse-13-1-rc1-observations-8.html#73), either is possible.

Actually, as things are for me at the moment, the mkisofs variant in combination with the live-fat-stick looks just as promising, as the result from that is readily editable from within both W8 and 12.3. I “just” have to get my parameters right for mkisofs to produce the proper results. I’ll look further into that, as knowing how to do that will certainly be of use in the future. I’ll post back when I have more success on these parts.

Yes, I’ll download that one when it is ready. In the meantime, I’ll spend as much time as possible getting the live-fat-stick working.

Thank you for your help!

dayfinger

Have fun with that.

It works great for me with a 32-bit live opensuse iso. But when I tried it with a 64-bit iso, it just gave a mess of uninformative messages, then ended as if it had worked – which it hadn’t. The EFI boot structure on the 64-bit isos seems to confuse the script.

I can imagine the change from BIOS/MBR to UEFI/GPT being a problem, yes. Due your comment, I made a test myself with the original 13.1RC1 iso file that IS bootable (but fails loading the kernel on my PCs) and the live-fat-stick script. I thought that could be interesting since I didn’t really test a proper product due to my generating non-bootable iso files:

Funny, when adding the 13.1RC1 iso file using

live-fat-stick --suse ./opensuse...].iso /dev/sdb1

, the result on both my PCs are identical to my attempts when trying live-fat-stick with non-bootable isos! However, if I generate the USB-stick and drop the “–suse” parameter and keep the rest, the Toshiba will boot off the USB-stick and display the top of the grub-2 boot-menu in the lower part of the screen for a short time, then it stops booting off the USB-stick entirely and continue booting from the HDD as if no USB-stick had been inserted. The Asus, however, behaves the same in both cases.

It also occurred to me - maybe the USB-stick booting is flawed completely? I sent the original 13.1RC1 iso to the USB-stick directly, and 13.1 would boot identically off the USB-stick just as it does from the install-DVD proper. No difference here for either of my PCs. So - the USB-stick itself or UEFI-handling is not the problem.

So - maybe this is another case for differences in UEFI implementation?

Anyway, my first item in line is to solve the problem with non-bootable, modified iso images. I think I have found the proper way now, and will return if I can make it work. It seems to be a little more involved than just changing the mkisofs parameters, though … ;). If I can solve that, I can live with a failing live-fat-stick script, but I still would like to have its intended functionality.

dayfinger

Just for the record, my 2 PCs referred to here, are:

  • Asus S200E (Intel i3, 4GB RAM, 320GB HDD, 100Mbps LAN, WiFi, Intel Graphics, W8/OpenSUSE 12.3 dual boot UEFI/GPT)
  • Toshiba Satellite P50A (Quad i7, 8GB RAM, 500GB HDD, 1Gbps LAN, WiFi, Intel HD Graphics 4600, W8/OpenSUSE 12.3 dual boot UEFI/GPT)

Both are running with SecureBoot off at the moment, since 13.1RC1 doesn’t like it, but I normally have SecureBoot enabled. The Asus is working flawlessly in all I’m using it for, the Toshiba will lock up when booting 12.3 if the LAN adapter is enabled.