There is an easy way to check if -k can be used always: have a look at
windows install CD/DVD. If it doesn't have partion table then we can drop
it as well.

On Thu, 25 Apr 2019, 18:16 Thomas Schmitt, <scdbac...@gmx.net> wrote:

> Hi,
>
> Daniel Kiper wrote:
> > How do you create USB stick from ISO image?
>
> By plain copy to the base device, as usual for a grub-mkrescue ISO.
> Like
>
>   dd if=image of=usb_stick
>
>
> > Have you tried latest Guix image?
>
> Florian builds Guix ISOs locally. So i assume that it was newest Guix.
> Nevertheless, the problem is clearly not in Guix content but in the
> Start LBA 0 of the partition table entry inside the EFI partition image.
>
>
> > Numbers here and in another email suggest that this is a floppy image.
> > And floppy images do not have MBR. They have something called boot
> > sector which is a bit different thing.
>
> Yes. It already has been pointed out to me privately that it should
> rather be called a "VBR".
> But EFI specs talk of "MBR" in the System Partition. So i am in good
> company. As mathematician i always agree to "If it walks like a duck ...".
>
> UEFI 2.4, 12.3.1 "System Partition"
>
>   "A System Partition supports backward compatibility with legacy systems
>    by reserving the first block (sector) of the partition for compatibility
>    code. On legacy systems, the first block (sector) of a partition is
>    loaded into memory and execution is transferred to this code.
>    EFI firmware does not execute the code in the MBR. The EFI firmware
>    contains knowledge about the partition structure of various devices,
>    and can understand legacy MBR, GPT, and “El Torito.”"
>
> (The description of BIOS loading partition boot code is wrong. It is a
>  class of device MBRs which contain code to chainload partition boot code.
>  I guess, GRUB has such an MBR variant in its collection, too.)
>
> The last sentence might mean that EFI shall support extended MBR
> partitions.
> I doubt that it is an invitation to support a tree of partition tables with
> arbitrary tree width.
> I also doubt that the author had a mental relapse to the MBR of the device,
> which is mentioned in the paragraph before the one above.
>
>   "A System Partition is a partition in the conventional sense of a
>    partition on a legacy system. For a hard disk, a partition is a
>    contiguous grouping of sectors on the disk where the starting sector
>    and size are defined by the Master Boot Record (MBR), which resides
>    on LBA 0 (i.e., the first sector of the hard disk) (see Section 5.2),
>    or the GUID Partition Table (GPT), which resides on logical block 1
>    (the second sector of the hard disk) (see Section 5.3.1). For a
>    diskette (floppy) drive, a partition is defined to be the entire media.
>    A System Partition can reside on any media that is supported by EFI
>    Boot Services."
>
>
> > I have a feeling that simply Macs
> > tested by you does not like floppy images. If you create regular HDD
> > images then probably everything will work.
>
> It was grub-mkrescue which created that floppy image by mformat
> and submits it to xorriso as EFI partition.
>
> My questions were whether the partition entry is necessary (Vladimir
> expects that it is not), and whether an MBR signature and the other
> fields in block 0 are needed, which mformat creates without option -k
> (Vladimir's answer was less firm).
>
> I am now proposing to Guix to use my script-in-the middle
>
>
> https://dev.lovelyhq.com/libburnia/libisoburn/raw/master/frontend/grub-mkrescue-sed.sh
>
> which is submitted to grub-mkrescue by option --xorriso=.
>
> Its main purpose is to achieve other partition layouts with mountable
> ISO partition. Meanwhile it learned how to zeroize the partition table
> in the EFI partition and, if desired additionally, to zeroize the MBR
> signature of the partition.
>
> Be invited to try with a BIOS and EFI enabled GRUB configuration:
>
>   wget
> https://dev.lovelyhq.com/libburnia/libisoburn/raw/master/frontend/grub-mkrescue-sed.sh
>   chmod u+x grub-mkrescue-sed.sh
>
>   export MKRESCUE_SED_MODE=mbr_hfs
>   export MKRESCUE_SED_IN_EFI_NO_PT=yes
>
>   grub-mkrescue --xorriso=./grub-mkrescue-sed.sh \
>                 -iso_mbr_part_type 0x83 -partition_offset 16 \
>                 ...your usual options to grub-mkrescue...
>
> (  export MKRESCUE_SED_DEBUG=yes
>  would let the script print input xorriso arguments and the arguments
>  which it actually hands over to xorriso.)
>
> The result has this partition layout:
>
>   $ /sbin/fdisk -l output.iso
>   ...
>   Disklabel type: dos
>   ...
>   Device      Boot Start   End Sectors  Size Id Type
>   output.iso1 *       64 28695   28632   14M 83 Linux
>   output.iso2      28696 34455    5760  2.8M ef EFI (FAT-12/16/32)
>
> Advantages in my eyes are:
>
> - No GPT backup which will be misplaced on USB stick after dd.
>   (Linux and partition editors complain.)
>
> - Mountable ISO partition with non-zero partition start for pleasing
>   partition editors and  being able to claim partition 2 as part of the
>   filesystem range of the base device ISO:
>      $ expr $(/sbin/isosize /dev/sdc) / 512
>      34456
>      $ expr $(/sbin/isosize /dev/sdc1) / 512
>      28632
>   This maintains the property of the original grub-mkrescue GPT layout,
>   that an ISO image on a USB stick or DVD+RW still can tell its original
>   size for checksumming.
>
> - It is supposed to boot on Florian's Macbook because of no partition table
>   in the EFI partition. (I'm not sure whether Florian aready tested it.
>   Our test results are from byte hacking experiments on a vanilla Guix
> ISO.)
>
>
> Have a nice day :)
>
> Thomas
>
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel
>
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to