unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: "Thomas Schmitt" <scdbackup@gmx.net>
To: bug-xorriso@gnu.org
Cc: 33639@debbugs.gnu.org
Subject: bug#33639: ISO installer image is broken on i686
Date: Mon, 15 Apr 2019 19:55:07 +0200	[thread overview]
Message-ID: <1582867226375139246@scdbackup.webframe.org> (raw)
In-Reply-To: <20190415165451.dpzngealeisbibc7@pelzflorian.localdomain>

Hi,

Florian Pelz wrote:
> Well this is strange.  I got fine ISO images each time (fine with no
> complaints from xorriso or fdisk and bootable in QEMU without errors),
> but after dd’ing them to different USB flash drives each time I get
> kernel output when inserting the flash drive:
> [   10.025223] GPT:Primary header thinks Alt. header is not at the end of
> the disk.

The alternative/backup header is a property of GPT which makes it
rather unsuitable for disk images. xorriso puts it correctly into the
last 512-byte block of the image. But when copied to a storage device,
it should move up to the last block of the device.
Even worse, the main GPT header at 512-byte LBA 1 needs to learn the
new address.

So i would rather advise to use a MBR partition table. Wonderfully dumb
and open ended.

I see from
  http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/build/vm.scm#n462
that program grub-mkrescue is in control of xorrisofs boot options.
Vladimir Serbinenko decided for GPT with no mountable ISO partition.

The libisoburn repo and tarball have a wrapper script by which other
boot layouts can be derived from the options which grub-mkrescue hands
over to xorrisofs:

  https://dev.lovelyhq.com/libburnia/libisoburn/raw/master/frontend/grub-mkrescue-sed.sh

To get MBR instead of GPT do:

  export MKRESCUE_SED_MODE=mbr_only
  export MKRESCUE_SED_PROTECTIVE=""

and maybe

  export MKRESCUE_SED_XORRISO=/...path/to/the/xorriso/binary/if/exotic...

Then start grub-mkrescue with the wrapper in the role of "xorriso":

  grub-mkrescue --xorriso=...path/to/grub-mkrescue-sed.sh \
                -partition_offset 16 \
                -iso_mbr_part_type 0x83 \
                \
                ...all.other.usual.arguments...

The mode "mbr_only" will move the EFI partition image out of the ISO
filesystem and rather append it after the ISO's end.

The option
  -partition_offset 16
costs the space of a second superblock and directory tree. But it brings
as benefits:
- More normal partition layout with partition 1 starting at block 64
  rather than at block 0.
- Nevertheless the partition 1 is mountable and shows the ISO content.
- The base device is mountable as the the same ISO too.
  (The ISO superblock of the base device also serves on CD or DVD.)
- Th base device superblock claims not only the ISO in partition 1 but
  also the EFI partition 2. So "/sbin/isosize" will tell the size of the
  image file, not only of the ISO filesystem.

Option
  -iso_mbr_part_type 0x83
chooses for partition 1 the MBR partitions type "Linux". (This is
purely ornamental. Nobody cares. But it looks good in partition editors.)

The partition layout of above wrapper run's output ISO will look like:

  $ /sbin/fdisk -l output.iso
  Disk output.iso: 16.5 MiB, 17338368 bytes, 33864 sectors
  Units: sectors of 1 * 512 = 512 bytes
  Sector size (logical/physical): 512 bytes / 512 bytes
  I/O size (minimum/optimal): 512 bytes / 512 bytes
  Disklabel type: dos
  Disk identifier: 0x00000000

  Device      Boot Start   End Sectors  Size Id Type
  output.iso1 *       64 28103   28040 13.7M 83 Linux
  output.iso2      28104 33863    5760  2.8M ef EFI (FAT-12/16/32)

  $ expr $(/sbin/isosize output.iso) / 512
  33864


Have a nice day :)

Thomas

  reply	other threads:[~2019-04-15 17:54 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-06  0:02 bug#33639: ISO installer image is broken on i686 Ludovic Courtès
2018-12-06  7:19 ` Ludovic Courtès
2018-12-06 10:34   ` Ludovic Courtès
2018-12-06 14:08     ` Thomas Schmitt
2018-12-06 15:34       ` Ludovic Courtès
2018-12-06 16:59         ` Thomas Schmitt
2018-12-15 18:40         ` Thomas Schmitt
2018-12-15 19:24           ` Thomas Schmitt
2018-12-16 15:52           ` Ludovic Courtès
2018-12-16 16:52             ` Thomas Schmitt
2018-12-18 11:16               ` Ludovic Courtès
2018-12-18 21:45                 ` Thomas Schmitt
2018-12-19 14:05                   ` Ludovic Courtès
2018-12-19 14:51                     ` Thomas Schmitt
2018-12-20 13:38                       ` Thomas Schmitt
2018-12-21 20:44                         ` Ludovic Courtès
2018-12-21 21:42                           ` Thomas Schmitt
2019-04-07 20:18                             ` pelzflorian (Florian Pelz)
2019-04-07 21:35                               ` Thomas Schmitt
2019-04-08  8:50                                 ` Ludovic Courtès
2019-04-09 22:13                                   ` pelzflorian (Florian Pelz)
2019-04-10 11:17                                     ` Thomas Schmitt
2019-04-10 21:23                                       ` pelzflorian (Florian Pelz)
2019-04-12 21:26                                       ` Ludovic Courtès
2019-04-13  6:37                                         ` Thomas Schmitt
2019-04-13 13:46                                         ` pelzflorian (Florian Pelz)
2019-04-13 16:20                                           ` Thomas Schmitt
2019-04-14 21:43                                             ` Ludovic Courtès
2019-04-15  6:07                                               ` pelzflorian (Florian Pelz)
2019-04-15  8:16                                               ` Thomas Schmitt
2019-04-15  8:35                                                 ` Thomas Schmitt
2019-04-19 11:40                                             ` bug#35283: ISO images are not reproducible Ludovic Courtès
2019-04-19 12:46                                               ` Thomas Schmitt
2019-04-20 22:57                                                 ` Ludovic Courtès
2019-04-21  8:17                                                   ` Thomas Schmitt
2019-04-21 16:42                                                     ` Ludovic Courtès
2019-04-21 18:44                                                       ` Thomas Schmitt
2019-04-20 23:03                                                 ` bug#35283: [PATCH] mformat: initialize boot sector before writing it Ludovic Courtès
2019-04-21 16:32                                                 ` bug#35283: [PATCH] grub-mkrescue: Allow users to specify a FAT serial number Ludovic Courtès
2019-04-14 15:47                                           ` bug#33639: ISO installer image is broken on i686 Ludovic Courtès
2019-04-15 16:54                                           ` pelzflorian (Florian Pelz)
2019-04-15 17:55                                             ` Thomas Schmitt [this message]
2019-04-16  9:57                                               ` Gábor Boskovits
2019-04-16 21:01                                             ` Ludovic Courtès
2019-04-17  9:03                                               ` pelzflorian (Florian Pelz)
2018-12-06 16:28       ` Ludovic Courtès
2018-12-06 17:29         ` Thomas Schmitt
2018-12-07 22:51           ` Ludovic Courtès
2018-12-08 12:42             ` Thomas Schmitt
2018-12-06  9:35 ` swedebugia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1582867226375139246@scdbackup.webframe.org \
    --to=scdbackup@gmx.net \
    --cc=33639@debbugs.gnu.org \
    --cc=bug-xorriso@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).