Re: arm64 and isohybrid

2015-04-20 Thread Steve McIntyre
On Sat, Apr 18, 2015 at 10:13:52AM +0200, Thomas Schmitt wrote:
Hi,

 OK, I've just built and done a very quick test with an arm64 netinst
 build.

Does it boot ?

Yes.

Are the partitions mountable ?

The first two are, yes.

3  313344  313343   0 bytes 0700  Gap1

This looks strange.
What do you get from

  xorriso-1.3.9 -indev tmp.iso -report_system_area plain

tack:~/iso$ ~/debian/xorriso/xorriso-1.3.9/xorriso/xorriso -indev
tmp.iso -report_system_area plain
GNU xorriso 1.3.9 : RockRidge filesystem manipulator, libburnia
project.

xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE : 1238 nodes read in 1 seconds
xorriso : NOTE : Detected El-Torito boot information which currently
is set to be discarded
Drive current: -indev 'tmp.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record  : El Torito , MBR cyl-align-off GPT
Media summary: 1 session, 77824 data blocks,  152m data, 29.2g free
Volume id: 'Debian testing arm64 1'
System area options: 0x0a00
System area summary: MBR cyl-align-off GPT
ISO image size/512 : 311296
Partition offset   : 16
MBR heads per cyl  : 64
MBR secs per head  : 32
MBR partition table:   N Status  TypeStart   Blocks
MBR partition  :   1   0x00  0xee1   313407
GPT:   N  Info
GPT disk GUID  :  ecd273256b45754da0f3da94b2713406
GPT entry array:  2  248  separated
GPT lba range  :  64  313344  313407
GPT partition name :   1  490053004f003900360036003000
GPT partname local :   1  ISO9660
GPT partition GUID :   1  ecd273256b45754da0f0da94b2713406
GPT type GUID  :   1  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   1  0x1001
GPT start and size :   1  64  311232
GPT partition name :   2  41007000700065006e006400650064003200
GPT partname local :   2  Appended2
GPT partition GUID :   2  ecd273256b45754da0f1da94b2713406
GPT type GUID  :   2  28732ac11ff8d211ba4b00a0c93ec93b
GPT partition flags:   2  0x
GPT start and size :   2  311296  2048

The name Gap1 seems to stem from libisofs. These partitions
are supposed to fill gaps in the partition layout of grub-mkrescue.
But zero sized gaps are not really intended targets.

ACK.

 I've tried both with and without the -partition_offset all and it
 (obviously) affects the partition alignments and the overall image
 size, but otherwise the images produced *look* ok apart from the
 odd-looking zero-sized 3rd partition. It's a cosmetic issue only, but
 I'm curious why it's there. :-)

I assume you mean -partition_cyl_align, not -partition_offset.

No, explicitly -partition_offset. I'd added -partition_cyl_align
already as you said.

It is a relict of MBR, its quirks, and its urban legends.
SYSLINUX (resp. hpa) emphasizes that isohybrid images have
their partitions aligned to full cylinders, preferrably to
64 heads of 32 sectors or to 255 heads of 63 sectors.
It seems to be about assumptions made by older BIOSes.

UEFI 2.4 does not have hard alignment requirements for partitions.
But there are some should statements in 5.3.1 GPT Overview,
which propose to align to physical block size (e.g. 4096)
and state that alignment to 1 MiB fulfills this proposal
with most common physical block sizes and RAID stripe sizes.

Yup.

Currently the alignment granularity of xorriso -as mkisofs is
controlled by -partition_hd_cyl and -partition_sec_hd which
are subject to MBR restrictions.
It has to be tested whether
  -partition_hd_cyl 64 -partition_sec_hd 32
keeps up the alignment for images larger than 1 GiB (1024
cylinders).

-- 
Steve McIntyre, Cambridge, UK.st...@einval.com
Who needs computer imagery when you've got Brian Blessed?


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150420171027.gc...@einval.com



Re: arm64 and isohybrid

2015-04-20 Thread Steve McIntyre
On Sat, Apr 18, 2015 at 11:45:16AM +0200, Thomas Schmitt wrote:
Hi,

the third, zero sized partition Gap1 gets indeed
produced by libisofs. xorriso command -report_system_area
does not show it, though.

ACK, I can see that.

I am investigating. You may assume that this partition
will not be produced in future xorriso versions.

Cool. I'll be honest, there's no rush for this for me. The earlier
image format using an appended msdos partition rather than GPT is
working fine for now, and is what I'm going to use for the Jessie
release this coming weekend. I might be tempted to switch to GPT later
for this, but it's just too close to release to be playing with this
kind of change... :-)

If the Gap1 partition entry is suspected to disturb anything,
you may create the intended state of GPT by

  dd if=/dev/zero of=tmp.iso conv=notrunc bs=1 seek=1280 count=128

(Actually one would have to zeroize the entry in the backup
 GPT, too. Its position is 62 blocks before the backup header
 block + 256 bytes. The header block number is given by
 xorriso -report_system area as third number in line
 GPT lba range. E.g with
   GPT lba range  :  64  266240  266303
 the backup entry of partition 3 is at byte (266303 - 62) * 512 + 256.
)

Right.

The Gap1 partition doesn't seem to cause any problems on the one
device I've got handy for testing, anyway.

-- 
Steve McIntyre, Cambridge, UK.st...@einval.com
This dress doesn't reverse. -- Alden Spiess


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150420171435.gd...@einval.com



Re: arm64 and isohybrid

2015-04-20 Thread Thomas Schmitt
Hi,

i wrote:
  The name Gap1 seems to stem from libisofs.

The cause was found and a fix is being tested meanwhile.

Steve McIntyre wrote:
 The Gap1 partition doesn't seem to cause any problems on the one
 device I've got handy for testing, anyway.

In any case it looks clueless.
(The stupid gap filler wanted to cover the backup GPT
 by a partition, whereas the less stupid partition
 writer truncated it to the permissible range.)


Steve McIntyre wrote:
   I've tried both with and without the -partition_offset all 
  I assume you mean -partition_cyl_align, not -partition_offset.
 No, explicitly -partition_offset. I'd added -partition_cyl_align
 already as you said.

-partition_offset expects a block number as argument.
all is read as 0. Without -partition_offset 16, the
first GPT partition is supposed to be not mountable.

So some riddling remains on my side ...


i wrote:
  It has to be tested whether
   -partition_hd_cyl 64 -partition_sec_hd 32
  keeps up the alignment for images larger than 1 GiB (1024
  cylinders).

Currently libisofs enlarges the cylinder size if the
number of cylinders exceeds 1024. But i am testing a change
now, which allows an unlimited number of cylinders for GPT.
So
  -partition_hd_cyl 64 -partition_sec_hd 32 -partition_cyl_align all
will ensure alignment to 1 MiB, if desired.


 I'll be honest, there's no rush for this for me.

This will leave more time for my tests.

My best wishes for Jessie's scheduled birth and all her
proud parents.


Have a nice day :)

Thomas


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/9923563113283909...@scdbackup.webframe.org



Re: arm64 and isohybrid

2015-04-18 Thread Thomas Schmitt
Hi,

 OK, I've just built and done a very quick test with an arm64 netinst
 build.

Does it boot ?
Are the partitions mountable ?


3  313344  313343   0 bytes 0700  Gap1

This looks strange.
What do you get from

  xorriso-1.3.9 -indev tmp.iso -report_system_area plain

The name Gap1 seems to stem from libisofs. These partitions
are supposed to fill gaps in the partition layout of grub-mkrescue.
But zero sized gaps are not really intended targets.


 I've tried both with and without the -partition_offset all and it
 (obviously) affects the partition alignments and the overall image
 size, but otherwise the images produced *look* ok apart from the
 odd-looking zero-sized 3rd partition. It's a cosmetic issue only, but
 I'm curious why it's there. :-)

I assume you mean -partition_cyl_align, not -partition_offset.

It is a relict of MBR, its quirks, and its urban legends.
SYSLINUX (resp. hpa) emphasizes that isohybrid images have
their partitions aligned to full cylinders, preferrably to
64 heads of 32 sectors or to 255 heads of 63 sectors.
It seems to be about assumptions made by older BIOSes.

UEFI 2.4 does not have hard alignment requirements for partitions.
But there are some should statements in 5.3.1 GPT Overview,
which propose to align to physical block size (e.g. 4096)
and state that alignment to 1 MiB fulfills this proposal
with most common physical block sizes and RAID stripe sizes.

Currently the alignment granularity of xorriso -as mkisofs is
controlled by -partition_hd_cyl and -partition_sec_hd which
are subject to MBR restrictions.
It has to be tested whether
  -partition_hd_cyl 64 -partition_sec_hd 32
keeps up the alignment for images larger than 1 GiB (1024
cylinders).


Have a nice day :)

Thomas


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/1095563558780141...@scdbackup.webframe.org



Re: arm64 and isohybrid

2015-04-18 Thread Thomas Schmitt
Hi,

the third, zero sized partition Gap1 gets indeed
produced by libisofs. xorriso command -report_system_area
does not show it, though.

I am investigating. You may assume that this partition
will not be produced in future xorriso versions.

If the Gap1 partition entry is suspected to disturb anything,
you may create the intended state of GPT by

  dd if=/dev/zero of=tmp.iso conv=notrunc bs=1 seek=1280 count=128

(Actually one would have to zeroize the entry in the backup
 GPT, too. Its position is 62 blocks before the backup header
 block + 256 bytes. The header block number is given by
 xorriso -report_system area as third number in line
 GPT lba range. E.g with
   GPT lba range  :  64  266240  266303
 the backup entry of partition 3 is at byte (266303 - 62) * 512 + 256.
)


Have a nice day :)

Thomas


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/32682563547280315...@scdbackup.webframe.org



Re: arm64 and isohybrid

2015-04-17 Thread Steve McIntyre
On Tue, Apr 14, 2015 at 08:41:35PM +0200, Thomas Schmitt wrote:
Hi,

i wrote back in february:
  I am still hunting a bug in the pending changeset to enable
  production of a UEFI compliant protective MBR plus GPT
  layout with -append_partition.
  [...]
  This proposal will look like
   xorriso-1.3.9 -as mkisofs \
  -V 'Debian jessie-DI-b2 arm64 1' \
  -r -o test.iso -J -joliet-long -cache-inodes \
  -e boot/grub/efi.img -no-emul-boot \
  -append_partition 2 0xef arm64-efi.img \
  -appended_part_as_gpt \
  -partition_offset 16 \
  /mnt/iso

Steve McIntyre wrote today:
 Right. If you're still working on this I'd be very interested in
 testing it!

Well, the changesets are committed, meanwhile.
But when i now tested above proposal (before bragging), it
turned out that production of a true protective MBR partition
table works only with isohybrid MBR. (I wonder what use case
i tested 10 weeks ago ...)

... Now above sketch works. The risk of regression by my
last minute change is low.
Nevertheless have a sharp look at i386 and amd64 results
when this version of xorriso produces them.

I did not make any Jigdo tests with -append_partition yet.

As said: -partition_offset 16 is essential for a
mountable GPT partition 1 with the ISO filesystem.

--

The current GNU xorriso development snapshot has the new
-as mkisofs option -appended_part_as_gpt, which lets the
ISO and the appended partition appear in GPT, with UEFI
compliant protective MBR.

  http://www.gnu.org/software/xorriso/xorriso-1.3.9.tar.gz

  MD5 9577c69da2591c683ca2cf84d29e6191
  Version timestamp :  2015.04.13.172501

OK, I've just built and done a very quick test with an arm64 netinst
build. This gives me the following:

$ gdisk -l iso/tmp.iso 
GPT fdisk (gdisk) version 0.8.5

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk iso/tmp.iso: 313408 sectors, 153.0 MiB
Logical sector size: 512 bytes
Disk identifier (GUID): 2573D2EC-456B-4D75-A0F3-DA94B2713406
Partition table holds up to 248 entries
First usable sector is 64, last usable sector is 313344
Partitions will be aligned on 64-sector boundaries
Total free space is 1 sectors (512 bytes)

Number  Start (sector)End (sector)  Size   Code  Name
   1  64  311295   152.0 MiB   0700  ISO9660
   2  311296  313343   1024.0 KiB  EF00  Appended2
   3  313344  313343   0 bytes 0700  Gap1

(using the command line options:
  ~93sam/xorriso-1.3.9/xorriso/xorriso -as mkisofs -r \
  -checksum_algorithm_iso md5,sha1,sha256,sha512 \
  -V 'Debian testing arm64 1' -o tmp.iso \
  ($jigdo_opts) \
  -J -joliet-long -cache-inodes -e boot/grub/efi.img -no-emul-boot \
  -append_partition 2 0xef CD1/boot/grub/efi.img \
  -partition_cyl_align all \
  -appended_part_as_gpt -partition_offset 16 CD1)

I've tried both with and without the -partition_offset all and it
(obviously) affects the partition alignments and the overall image
size, but otherwise the images produced *look* ok apart from the
odd-looking zero-sized 3rd partition. It's a cosmetic issue only, but
I'm curious why it's there. :-)

We would have to change the CD FAQ about verification of
ISOs, because this advises to determine the exact amount
of image bytes from the ISO filesystem size.

Ah, yes.

But with above layout there is a neat disk-like situation
where the ISO filesystem ends before the EFI System Partition
begins. So one will rather have to checksum up to the
end of the second partition (as inquired by gdisk or alike).

Best would be if the Debian checksum lists would be
accompanied by length lists, which simply tell the
original size of the images by which the MD5s were computed.

Maybe, yes.

snip

 Maybe not by us directly, but I think a fair number of Debian users
 like the ability to extend/modify images later and we have docs
 telling them how to add partitions once an image is written to a USB
 stick, for example.

As soon as the image is on a block device with inquirable
size, the partition editors should offer an option to move
the backup GPT to the end of the device. That would be the
first step before installing further partitions.

The docs need to be checked whether they are updated for GPT.

ACK.

-- 
Steve McIntyre, Cambridge, UK.st...@einval.com
...In the UNIX world, people tend to interpret `non-technical user'
 as meaning someone who's only ever written one device driver. -- Daniel Pead


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150417235852.ga1...@einval.com



Re: arm64 and isohybrid

2015-04-14 Thread Steve McIntyre
Hi Thomas!

I said I'd get back to you *ages* ago. Sorry. :-/

On Wed, Feb 04, 2015 at 06:06:45PM +0100, Thomas Schmitt wrote:
Hi,

  -isohybrid-mbr null.mbr \
  -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat \
 This may look valid, but gdisk and other code I've used don't cope
 well with the PMBR being broken.

But that's not the fault of the NUL-bytes in null.mbr.
The isohybbrid --gpt layout does not comply to UEF/GPT.
Either there must be a protective MBR with a single
partition of type 0xee, reaching from LBA 1 up to the
backup GPT. In that case, GPT represents the partitions,
which must not overlap.

Right.

Or there may be a Legacy MBR with non-overlapping
partitions of which one needs to have type 0xef and
marks the EFI system partition with the FAT filesystem.

OK.

When i plug the USB stick with the resulting image
into my olde Linux, it probably uses the MBR to create
a mountable /dev/sdb2 with efi/boot/bootaa64.efi in it.
Further my Linux tolerates that partition 2 is located
inside partition 1. That's the sin of overlapping.

  -efi-boot-part --efi-boot-image \
 neither Gap0 nor Gap1 are usable

That's a known disadvantage of grub-mkrescue partition layout.
It complies to UEFI but the ISO can only be mounted by the
base device.
Especially udev and blkid do not handle this well. They happily
let partition 1 inherit the filesystem identification of the
base device.

Yup. I think that may be the problem I'm seeing in fact - we're using
blkid etc. in debian-installer.

(On the other hand, who needs udev to find a CD or USB stick
 when the freshly booted kernel is the own well known one ?
 The list of possible device files is very finite.)

 I guess I see what you've done,

Urm. Blame Vladimir Serbinenko for that layout. He has
good arguments for it. I have questioned it several times
but he always staid firm.

:-/

 However, this isn't helpful for the Debian installer
 which now can't find the rest of the installer on any partition. 

Depending on udev early ?

Your findings match the reasons why Legacy MBR won in my
discussion of mini.iso 
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776317#75
The waste of 1 MB for an appended external partition seems
worthwhile.

Right, I don't think it's a major problem.

Stripping down my best proposal from BIOS+EFI to EFI-only:

  mount -o loop debian-jessie-DI-b2-arm64-netinst.iso /mnt/iso

  # Get a copy of the El Torito EFI system partition 
  cp /mnt/iso/boot/grub/efi.img arm64-efi.img

  # Append that copy as MBR partition of type 0xef
  xorriso -as mkisofs \
 -V 'Debian jessie-DI-b2 arm64 1' \
 -r -o test.iso -J -joliet-long -cache-inodes \
 -e boot/grub/efi.img -no-emul-boot \
 -append_partition 2 0xef arm64-efi.img \
 -partition_cyl_align all \
 /mnt/iso

This yields a non-overlapping UEFI compliant Legacy MBR

  MBR partition table:   N Status  TypeStart   Blocks
  MBR partition  :   1   0x00  0x830   262144
  MBR partition  :   2   0x00  0xef   262144 2048

The NUL-bytes in the MBR are no problem because of UEF 2.4 5.2.1
The boot code on the MBR is not executed by UEFI firmware.
UEFI 2.4, table 13 shows that it needs at least one partition table
entry and the magic 0x55 0xaa at bytes 510 and 511.

The only effect of omitting option -isohybrid is that the type
of partition 1 is 0x83 rather than 0x17.

Right. I honestly don't think that's an issue to worry about.

-

I am still hunting a bug in the pending changeset to enable
production of a UEFI compliant protective MBR plus GPT
layout with -append_partition. This would be the second best
proposal from bug=776317#75.

Disadvantages in comparison to above winner:
You get a mountable ISO partition only if you use
   -partition_offset 16
The backup GPT makes mini.iso production postprocessing
cumbersome. (This might be no problem with netinst.iso
because no postprocessing shall happen in debian-cd anyway.)

Maybe not by us directly, but I think a fair number of Debian users
like the ability to extend/modify images later and we have docs
telling them how to add partitions once an image is written to a USB
stick, for example.

This proposal will look like the above one, with additional
novel option -appended_part_as_gpt and partition offset 16:

  xorriso-1.3.9 -as mkisofs \
 -V 'Debian jessie-DI-b2 arm64 1' \
 -r -o test.iso -J -joliet-long -cache-inodes \
 -e boot/grub/efi.img -no-emul-boot \
 -append_partition 2 0xef arm64-efi.img \
 -appended_part_as_gpt \
 -partition_offset 16 \
 /mnt/iso

will yield:

  ISO image size/512 : 264192
  ...
  MBR partition table:   N Status  TypeStart   Blocks
  MBR partition  :   1   0x00  0xee1   265023
  GPT:   N  Info
  GPT disk GUID  :  95a21034fca5864bbf6738ff7f0c9a04
  GPT entry array:  2  248  separated
  GPT lba 

Re: arm64 and isohybrid

2015-04-14 Thread Thomas Schmitt
Hi,

i wrote back in february:
  I am still hunting a bug in the pending changeset to enable
  production of a UEFI compliant protective MBR plus GPT
  layout with -append_partition.
  [...]
  This proposal will look like
   xorriso-1.3.9 -as mkisofs \
  -V 'Debian jessie-DI-b2 arm64 1' \
  -r -o test.iso -J -joliet-long -cache-inodes \
  -e boot/grub/efi.img -no-emul-boot \
  -append_partition 2 0xef arm64-efi.img \
  -appended_part_as_gpt \
  -partition_offset 16 \
  /mnt/iso

Steve McIntyre wrote today:
 Right. If you're still working on this I'd be very interested in
 testing it!

Well, the changesets are committed, meanwhile.
But when i now tested above proposal (before bragging), it
turned out that production of a true protective MBR partition
table works only with isohybrid MBR. (I wonder what use case
i tested 10 weeks ago ...)

... Now above sketch works. The risk of regression by my
last minute change is low.
Nevertheless have a sharp look at i386 and amd64 results
when this version of xorriso produces them.

I did not make any Jigdo tests with -append_partition yet.

As said: -partition_offset 16 is essential for a
mountable GPT partition 1 with the ISO filesystem.

--

The current GNU xorriso development snapshot has the new
-as mkisofs option -appended_part_as_gpt, which lets the
ISO and the appended partition appear in GPT, with UEFI
compliant protective MBR.

  http://www.gnu.org/software/xorriso/xorriso-1.3.9.tar.gz

  MD5 9577c69da2591c683ca2cf84d29e6191
  Version timestamp :  2015.04.13.172501

(I finely mistyped the date when faking the timestamp.)
--

We would have to change the CD FAQ about verification of
ISOs, because this advises to determine the exact amount
of image bytes from the ISO filesystem size.

But with above layout there is a neat disk-like situation
where the ISO filesystem ends before the EFI System Partition
begins. So one will rather have to checksum up to the
end of the second partition (as inquired by gdisk or alike).

Best would be if the Debian checksum lists would be
accompanied by length lists, which simply tell the
original size of the images by which the MD5s were computed.

--

  The backup GPT makes mini.iso production postprocessing
  cumbersome. (This might be no problem with netinst.iso
  because no postprocessing shall happen in debian-cd anyway.)

 Maybe not by us directly, but I think a fair number of Debian users
 like the ability to extend/modify images later and we have docs
 telling them how to add partitions once an image is written to a USB
 stick, for example.

As soon as the image is on a block device with inquirable
size, the partition editors should offer an option to move
the backup GPT to the end of the device. That would be the
first step before installing further partitions.

The docs need to be checked whether they are updated for GPT.


Have a nice day :)

Thomas


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/31582562590819864...@scdbackup.webframe.org



Re: arm64 and isohybrid

2015-02-19 Thread Steve McIntyre
On Wed, Feb 11, 2015 at 03:48:07PM +0100, Thomas Schmitt wrote:
Hi,

Steve McIntyre wrote:
   partition 2 seems broken and I can't mount it.
 If I specify -c isolinux/boot.cat too, that fixes it.

Is there any new insight in this mystery ?

Hi Thomas,

Apologies, no - I've been busy at a conference for a week and now I'm
away on vacation down in Australia for several weeks. If I try to
spend any time hacking on this stuff on holiday, my wife will hurt
me... :-)

I'll carry on looking when I'm back...

-- 
Steve McIntyre, Cambridge, UK.st...@einval.com
When C++ is your hammer, everything looks like a thumb. -- Steven M. Haflich


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150219234610.gk12...@einval.com



Re: arm64 and isohybrid

2015-02-11 Thread Thomas Schmitt
Hi,

Steve McIntyre wrote:
   partition 2 seems broken and I can't mount it.
 If I specify -c isolinux/boot.cat too, that fixes it.

Is there any new insight in this mystery ?

If it is reproducible, then my understanding of partitions
is in deep trouble. I'd need to investigate and compare an
ISO with usable partition against one with unusable partition.


-
Only remotely related:

I found a new compliant partiton layout in the web.
It could avoid the duplication of the EFI partition at the
cost of a second ISO superblock and directory tree, if one
would develop it further.

openSUSE-13.1-NET-x86_64.iso has a mountable ISO filesystem
in MBR partiton 2 and on the base device:

  MBR partition table:   N Status  TypeStart   Blocks
  MBR partition  :   1   0x00  0xef  280 8192
  MBR partition  :   2   0x80  0x17 8472   573160
  MBR partition path :   1  /boot/x86_64/efi

Both ISO directory trees share most data files in the ISO.
Only their files /boot/x86_64/efi are located in different
content blocks.

If i get it right, then
  https://github.com/openSUSE/kiwi/blob/master/modules/KIWIIsoLinux.pm
lets mkisofs produce a first ISO with EFI FAT as first data
file. The head of this ISO is cut off after the content of
the EFI FAT. The rest (rump) of the first ISO is thrown away. 

The harvested ISO head is then brought as data file into the
second, final ISO. There it is stored as second file after
the EFI FAT, where partition 1 ends and partition 2 begins.
(It gets hidden from the directory tree in the second ISO,
but that's not really needed for the trick.)

Because both mkisofs runs sort the other data file blocks
to the same sequence, the ISO head gets retransplanted to
an identical copy of its old rump.
So partiton 2 becomes mountable as ISO 9660.

This layout is still as wasteful as xorriso appended partition
plus partition offset 16.
But it should be possible to substitute the duplicate FAT
image file in the second ISO by a missing FAT image file
in the first ISO. The first ISO is only for mounting as
partition 2. The El Torito boot image and FAT partition 1
are needed in the second, outer ISO.

-

Have a nice day :)

Thomas


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/25391545144987796...@scdbackup.webframe.org



Re: arm64 and isohybrid

2015-02-04 Thread Thomas Schmitt
Hi,

 If I specify -c isolinux/boot.cat too, that fixes
 it.

That's surprising. Can you surely switch forth and back
between mounatble and unmountable by this option ?

Option -c just gives the El Torito catalog a file name.
The catalog file is not involved in booting from
USB-stick or in the hard-disk-like partitioning of the image.


 efi.img is being modified otherwise, it seems?

El Torito boot images get modified only if options
-boot-info-table or --grub2-boot-info are present.

You can check this by comparing boot/grub/efi.img of
the ISO with boot/grub/efi.img in the input file tree
on hard disk.


Have a nice day :)

Thomas


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/24263544702434404...@scdbackup.webframe.org



Re: arm64 and isohybrid

2015-02-04 Thread Thomas Schmitt
Hi,

  -isohybrid-mbr null.mbr \
  -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat \
 This may look valid, but gdisk and other code I've used don't cope
 well with the PMBR being broken.

But that's not the fault of the NUL-bytes in null.mbr.
The isohybbrid --gpt layout does not comply to UEF/GPT.
Either there must be a protective MBR with a single
partition of type 0xee, reaching from LBA 1 up to the
backup GPT. In that case, GPT represents the partitions,
which must not overlap.
Or there may be a Legacy MBR with non-overlapping
partitions of which one needs to have type 0xef and
marks the EFI system partition with the FAT filesystem.

When i plug the USB stick with the resulting image
into my olde Linux, it probably uses the MBR to create
a mountable /dev/sdb2 with efi/boot/bootaa64.efi in it.
Further my Linux tolerates that partition 2 is located
inside partition 1. That's the sin of overlapping.


  -efi-boot-part --efi-boot-image \
 neither Gap0 nor Gap1 are usable

That's a known disadvantage of grub-mkrescue partition layout.
It complies to UEFI but the ISO can only be mounted by the
base device.
Especially udev and blkid do not handle this well. They happily
let partition 1 inherit the filesystem identification of the
base device.
(On the other hand, who needs udev to find a CD or USB stick
 when the freshly booted kernel is the own well known one ?
 The list of possible device files is very finite.)


 I guess I see what you've done,

Urm. Blame Vladimir Serbinenko for that layout. He has
good arguments for it. I have questioned it several times
but he always staid firm.


 However, this isn't helpful for the Debian installer
 which now can't find the rest of the installer on any partition. 

Depending on udev early ?

Your findings match the reasons why Legacy MBR won in my
discussion of mini.iso 
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776317#75
The waste of 1 MB for an appended external partition seems
worthwhile.

Stripping down my best proposal from BIOS+EFI to EFI-only:

  mount -o loop debian-jessie-DI-b2-arm64-netinst.iso /mnt/iso

  # Get a copy of the El Torito EFI system partition 
  cp /mnt/iso/boot/grub/efi.img arm64-efi.img

  # Append that copy as MBR partition of type 0xef
  xorriso -as mkisofs \
 -V 'Debian jessie-DI-b2 arm64 1' \
 -r -o test.iso -J -joliet-long -cache-inodes \
 -e boot/grub/efi.img -no-emul-boot \
 -append_partition 2 0xef arm64-efi.img \
 -partition_cyl_align all \
 /mnt/iso

This yields a non-overlapping UEFI compliant Legacy MBR

  MBR partition table:   N Status  TypeStart   Blocks
  MBR partition  :   1   0x00  0x830   262144
  MBR partition  :   2   0x00  0xef   262144 2048

The NUL-bytes in the MBR are no problem because of UEF 2.4 5.2.1
The boot code on the MBR is not executed by UEFI firmware.
UEFI 2.4, table 13 shows that it needs at least one partition table
entry and the magic 0x55 0xaa at bytes 510 and 511.

The only effect of omitting option -isohybrid is that the type
of partition 1 is 0x83 rather than 0x17.

-

I am still hunting a bug in the pending changeset to enable
production of a UEFI compliant protective MBR plus GPT
layout with -append_partition. This would be the second best
proposal from bug=776317#75.

Disadvantages in comparison to above winner:
You get a mountable ISO partition only if you use
   -partition_offset 16
The backup GPT makes mini.iso production postprocessing
cumbersome. (This might be no problem with netinst.iso
because no postprocessing shall happen in debian-cd anyway.)

This proposal will look like the above one, with additional
novel option -appended_part_as_gpt and partition offset 16:

  xorriso-1.3.9 -as mkisofs \
 -V 'Debian jessie-DI-b2 arm64 1' \
 -r -o test.iso -J -joliet-long -cache-inodes \
 -e boot/grub/efi.img -no-emul-boot \
 -append_partition 2 0xef arm64-efi.img \
 -appended_part_as_gpt \
 -partition_offset 16 \
 /mnt/iso

will yield:

  ISO image size/512 : 264192
  ...
  MBR partition table:   N Status  TypeStart   Blocks
  MBR partition  :   1   0x00  0xee1   265023
  GPT:   N  Info
  GPT disk GUID  :  95a21034fca5864bbf6738ff7f0c9a04
  GPT entry array:  2  248  separated
  GPT lba range  :  64  264960  265023
  GPT partition name :   1  490053004f003900360036003000
  GPT partname local :   1  ISO9660
  GPT partition GUID :   1  95a21034fca5864bbf6438ff7f0c9a04
  GPT type GUID  :   1  a2a0d0ebe5b9334487c068b6b72699c7
  GPT partition flags:   1  0x1001
  GPT start and size :   1  64  264128
  GPT partition name :   2  41007000700065006e006400650064003200
  GPT partname local :   2  Appended2
  GPT partition GUID :   2  95a21034fca5864bbf6538ff7f0c9a04
  GPT type GUID  :   2  28732ac11ff8d211ba4b00a0c93ec93b
  GPT 

Re: arm64 and isohybrid

2015-02-04 Thread Steve McIntyre
On Wed, Feb 04, 2015 at 03:12:30PM +, Steve McIntyre wrote:
On Sat, Jan 31, 2015 at 10:24:17AM +, Steve McIntyre wrote:
On Thu, Jan 29, 2015 at 11:41:57AM +0100, Thomas Schmitt wrote:

After reading its /.disk/mkisofs, i re-pack it by

  # A dummy MBR template as substitute for isohdpfx.bin
  dd if=/dev/zero bs=432 count=1 of=null.mbr

  mount -o loop debian-jessie-DI-b2-arm64-netinst.iso /mnt/iso

  xorriso -as mkisofs \
 -V 'Debian jessie-DI-b2 arm64 1' \
 -r -o test.iso -J -joliet-long -cache-inodes \
 -isohybrid-mbr null.mbr \
 -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat \
 /mnt/iso

Omitted options:
 all Jigdo options
 -eltorito-alt-boot is a separator which is needed only if
already a boot image was defined by -b, -e,
or alike

Added options:
 -isohybrid-gpt-basdat works only if -isohybrid-mbr is present
 -isohybrid-mbr gets as input the dummy MBR template. So SYSLINUX
is not needed.

OK.

This may look valid, but gdisk and other code I've used don't cope
well with the PMBR being broken. I can mount partition 1 fine for the
normal ISO contents, but partition 2 seems broken and I can't mount
it. Maybe an offset bug(?), or things are being too confused by the
GPT-MBR disconnect here.

In fact, no. If I specify -c isolinux/boot.cat too, that fixes
it. efi.img is being modified otherwise, it seems?

-- 
Steve McIntyre, Cambridge, UK.st...@einval.com
Is there anybody out there?


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150204164205.gc11...@einval.com



Re: arm64 and isohybrid

2015-02-04 Thread Steve McIntyre
On Sat, Jan 31, 2015 at 10:24:17AM +, Steve McIntyre wrote:
On Thu, Jan 29, 2015 at 11:41:57AM +0100, Thomas Schmitt wrote:

After reading its /.disk/mkisofs, i re-pack it by

  # A dummy MBR template as substitute for isohdpfx.bin
  dd if=/dev/zero bs=432 count=1 of=null.mbr

  mount -o loop debian-jessie-DI-b2-arm64-netinst.iso /mnt/iso

  xorriso -as mkisofs \
 -V 'Debian jessie-DI-b2 arm64 1' \
 -r -o test.iso -J -joliet-long -cache-inodes \
 -isohybrid-mbr null.mbr \
 -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat \
 /mnt/iso

Omitted options:
 all Jigdo options
 -eltorito-alt-boot is a separator which is needed only if
already a boot image was defined by -b, -e,
or alike

Added options:
 -isohybrid-gpt-basdat works only if -isohybrid-mbr is present
 -isohybrid-mbr gets as input the dummy MBR template. So SYSLINUX
is not needed.

OK.

This may look valid, but gdisk and other code I've used don't cope
well with the PMBR being broken. I can mount partition 1 fine for the
normal ISO contents, but partition 2 seems broken and I can't mount
it. Maybe an offset bug(?), or things are being too confused by the
GPT-MBR disconnect here.

The result shows nested partitions in MBR and GPT.
This is the mjg layout, which partition editors dislike heavily
but seems to work well in the amd64 netinst ISOs.
It offers three entry points for booting: El Torito, MBR, GPT.

El Torito catalog  : 832  1
El Torito cat path : /boot.catalog
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz LBA
El Torito boot img :   1  UEFI  y   none  0x  0x00768 833
El Torito img path :   1  /boot/grub/efi.img
System area options: 0x0900
System area summary: MBR cyl-align-on GPT
ISO image size/512 : 262144
Partition offset   : 0
MBR heads per cyl  : 64
MBR secs per head  : 32
MBR partition table:   N Status  TypeStart   Blocks
MBR partition  :   1   0x80  0x000   262144
MBR partition  :   2   0x00  0xef 3332  768
MBR partition path :   2  /boot/grub/efi.img
GPT:   N  Info
GPT disk GUID  :  8822d6a0aadcde40a8afcd569dc28802
GPT entry array:  2  248  overlapping
GPT lba range  :  64  262080  262143
GPT partition name :   1  490053004f00480079006200720069006400
GPT partname local :   1  ISOHybrid
GPT partition GUID :   1  8822d6a0aadcde40a8adcd569dc28802
GPT type GUID  :   1  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   1  0x1001
GPT start and size :   1  0  262080
GPT partition name :   2  490053004f004800790062007200690064003100
GPT partname local :   2  ISOHybrid1
GPT partition GUID :   2  8822d6a0aadcde40a8accd569dc28802
GPT type GUID  :   2  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   2  0x1001
GPT start and size :   2  3332  768
GPT partition path :   2  /boot/grub/efi.img


Right.

Of course it is odd to use ISOLINUX related xorriso commands
with pure GRUB2 boot equipment. Especially since Vladimir
Serbinenko puts much emphasis on a neat partition table. 

Let's try an option which was introduced for grub-mkrescue

  xorriso -as mkisofs \
 -V 'Debian jessie-DI-b2 arm64 1' \
 -r -o test.iso -J -joliet-long -cache-inodes \
 -efi-boot-part --efi-boot-image \
 -e boot/grub/efi.img -no-emul-boot \
 /mnt/iso

Added options:
 -efi-boot-part with special argument --efi-boot-image
marks the first EFI El Torito boot image as
partition in GPT.
Only a protective MBR emerges, which complies
to GPT specs. (Other than a multi-partition MBR.)

Woo. :-)

Bugger. After more testing, this is not working well for me. It's
generating 3 partitions:

Number  Start (sector)End (sector)  Size   Code  Name
   1  643867   1.9 MiB 0700  Gap0
   238684635   384.0 KiB   EF00  EFI boot partition
   34636  365891   176.4 MiB   0700  Gap1

where neither Gap0 nor Gap1 are usable for mounting. I guess I see
what you've done, just slicing up the image to make the EFI boot
partition work. However, this isn't helpful for the Debian installer
which now can't find the rest of the installer on any partition. It's
used to looking for things in a normal isohybrid manner where it can
mount the main ISO contents as a partition too. I tried to force the
efi.img file to tne end of the media to make Gap0 functional, but that
doesn't seem to help at all.

-- 
Steve McIntyre, Cambridge, UK.st...@einval.com
Into the distance, a ribbon of black
Stretched to the point of no turning back


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. 

Re: arm64 and isohybrid

2015-02-01 Thread Steve McIntyre
On Sat, Jan 31, 2015 at 06:59:44PM +0100, Thomas Schmitt wrote:
Hi,

 *grin* You're not selling this very much... :-)

Do you complain about losing an item from your todo list ?

Certainly not. :-)

How about you replace it by the intent to fix bug 776317:
amd64 mini.iso : BIOS or EFI boot from CD or USB stick,
with the complication to keep the firmware partition
digestible for partition editors.

I am preparing a conclusion post with lengthy considerations,
xorriso novelties, and proposals. An excellent candidate for
being way behind with deciding and implementing it.
(It will pass through this list. Bystanders be warned.)

OK! I spoke briefly to Ian Campbell about this last night (we're both
at FOSDEM) and I see he's responded in that bug# too...

-- 
Steve McIntyre, Cambridge, UK.st...@einval.com
Further comment on how I feel about IBM will appear once I've worked out
 whether they're being malicious or incompetent. Capital letters are forecast.
 Matthew Garrett, http://www.livejournal.com/users/mjg59/30675.html


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150201152334.gp8...@einval.com



Re: arm64 and isohybrid

2015-01-31 Thread Steve McIntyre
On Sat, Jan 31, 2015 at 01:24:39PM +0100, Thomas Schmitt wrote:
Hi,

Steve McIntyre:
 I'm also *way* overdue on switching all of debian-cd over to using
 xorriso and using native xorriso options totally rather than the
 -as-mkisofs stuff equivalents. But that's a topic for another day...

You will be a trailblazer. Nobody else does this, except me,
when testing the new feature to generate commands from the
analyzed boot equipment of ISOs.

The -as mkisofs command is an offcial part of xorriso.
You may well stay with it as long as there are no demands
which cannot be fulfilled with its option interface.
(E.g. it is not very suitable for multi-session and
 allows few file manipulations inside the ISO.)

One may question the beauty of

-boot_image any efi_boot_part=--efi-boot-image
-boot_image any cat_path='/boot.catalog'
-boot_image any efi_path='/boot/grub/efi.img'

relative to

-efi-boot-part --efi-boot-image
-c '/boot.catalog'
-e '/boot/grub/efi.img' -no-emul-boot

*grin* You're not selling this very much... :-)

-- 
Steve McIntyre, Cambridge, UK.st...@einval.com
 sladen I actually stayed in a hotel and arrived to find a post-it
  note stuck to the mini-bar saying Paul: This fridge and
  fittings are the correct way around and do not need altering


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150131151038.ge8...@einval.com



Re: arm64 and isohybrid

2015-01-31 Thread Thomas Schmitt
Hi,

 *grin* You're not selling this very much... :-)

Do you complain about losing an item from your todo list ?

How about you replace it by the intent to fix bug 776317:
amd64 mini.iso : BIOS or EFI boot from CD or USB stick,
with the complication to keep the firmware partition
digestible for partition editors.

I am preparing a conclusion post with lengthy considerations,
xorriso novelties, and proposals. An excellent candidate for
being way behind with deciding and implementing it.
(It will pass through this list. Bystanders be warned.)


Have a nice day :)

Thomas


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/360454369975663...@scdbackup.webframe.org



Re: arm64 and isohybrid

2015-01-31 Thread Steve McIntyre
On Thu, Jan 29, 2015 at 11:41:57AM +0100, Thomas Schmitt wrote:
Hi,

Hi Thomas!

i wonder why my mail of Thu, 29 Jan 2015 08:14:08 +0100
does not show up in debian-cd mailing list. It reported about
a preliminary experiment with amd64 mini.iso.

Easy; you just sent it to me directly, not to the list(s)... :-)

Meanwhile it is quite outdated by my new experiments with
an arm64 ISO.

-

I downloaded
   
 http://cloudfront.debian.net/cdimage/jessie_di_beta_2/arm64/iso-cd/debian-jessie-DI-b2-arm64-netinst.iso
of 2014-10-03.

Inspection yields:

  Volume id: 'Debian jessie-DI-b2 arm64 1'
  El Torito catalog  : 832  1
  El Torito cat path : /boot.catalog
  El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz LBA
  El Torito boot img :   1  UEFI  y   none  0x  0x00768 833
  El Torito img path :   1  /boot/grub/efi.img
  xorriso : NOTE : No System Area was loaded

This looks like amd64 mini.iso without the BIOS stuff.

That's as we'd expect, yes. We support arm64 booting off CD/USB via
UEFI; there's nothing like the BIOS boot.

After reading its /.disk/mkisofs, i re-pack it by

  # A dummy MBR template as substitute for isohdpfx.bin
  dd if=/dev/zero bs=432 count=1 of=null.mbr

  mount -o loop debian-jessie-DI-b2-arm64-netinst.iso /mnt/iso

  xorriso -as mkisofs \
 -V 'Debian jessie-DI-b2 arm64 1' \
 -r -o test.iso -J -joliet-long -cache-inodes \
 -isohybrid-mbr null.mbr \
 -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat \
 /mnt/iso

Omitted options:
 all Jigdo options
 -eltorito-alt-boot is a separator which is needed only if
already a boot image was defined by -b, -e,
or alike

Added options:
 -isohybrid-gpt-basdat works only if -isohybrid-mbr is present
 -isohybrid-mbr gets as input the dummy MBR template. So SYSLINUX
is not needed.

OK.

The result shows nested partitions in MBR and GPT.
This is the mjg layout, which partition editors dislike heavily
but seems to work well in the amd64 netinst ISOs.
It offers three entry points for booting: El Torito, MBR, GPT.

El Torito catalog  : 832  1
El Torito cat path : /boot.catalog
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz LBA
El Torito boot img :   1  UEFI  y   none  0x  0x00768 833
El Torito img path :   1  /boot/grub/efi.img
System area options: 0x0900
System area summary: MBR cyl-align-on GPT
ISO image size/512 : 262144
Partition offset   : 0
MBR heads per cyl  : 64
MBR secs per head  : 32
MBR partition table:   N Status  TypeStart   Blocks
MBR partition  :   1   0x80  0x000   262144
MBR partition  :   2   0x00  0xef 3332  768
MBR partition path :   2  /boot/grub/efi.img
GPT:   N  Info
GPT disk GUID  :  8822d6a0aadcde40a8afcd569dc28802
GPT entry array:  2  248  overlapping
GPT lba range  :  64  262080  262143
GPT partition name :   1  490053004f00480079006200720069006400
GPT partname local :   1  ISOHybrid
GPT partition GUID :   1  8822d6a0aadcde40a8adcd569dc28802
GPT type GUID  :   1  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   1  0x1001
GPT start and size :   1  0  262080
GPT partition name :   2  490053004f004800790062007200690064003100
GPT partname local :   2  ISOHybrid1
GPT partition GUID :   2  8822d6a0aadcde40a8accd569dc28802
GPT type GUID  :   2  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   2  0x1001
GPT start and size :   2  3332  768
GPT partition path :   2  /boot/grub/efi.img


Right.

Of course it is odd to use ISOLINUX related xorriso commands
with pure GRUB2 boot equipment. Especially since Vladimir
Serbinenko puts much emphasis on a neat partition table. 

Let's try an option which was introduced for grub-mkrescue

  xorriso -as mkisofs \
 -V 'Debian jessie-DI-b2 arm64 1' \
 -r -o test.iso -J -joliet-long -cache-inodes \
 -efi-boot-part --efi-boot-image \
 -e boot/grub/efi.img -no-emul-boot \
 /mnt/iso

Added options:
 -efi-boot-part with special argument --efi-boot-image
marks the first EFI El Torito boot image as
partition in GPT.
Only a protective MBR emerges, which complies
to GPT specs. (Other than a multi-partition MBR.)

Woo. :-)

This yields a more conventional partition layout.
The range of the ISO filesystem is protected by the MBR partition and
by three GPT partitions, of which the middle one points to the EFI
boot filesystem in /boot/grub/efi.img. 
Only two boot entry points are provided: El Torito and GPT.

El Torito catalog  : 1024  1
El Torito cat path : /boot.catalog

Re: arm64 and isohybrid

2015-01-31 Thread Thomas Schmitt
Hi,

Steve McIntyre:
 I'm also *way* overdue on switching all of debian-cd over to using
 xorriso and using native xorriso options totally rather than the
 -as-mkisofs stuff equivalents. But that's a topic for another day...

You will be a trailblazer. Nobody else does this, except me,
when testing the new feature to generate commands from the
analyzed boot equipment of ISOs.

The -as mkisofs command is an offcial part of xorriso.
You may well stay with it as long as there are no demands
which cannot be fulfilled with its option interface.
(E.g. it is not very suitable for multi-session and
 allows few file manipulations inside the ISO.)

One may question the beauty of

-boot_image any efi_boot_part=--efi-boot-image
-boot_image any cat_path='/boot.catalog'
-boot_image any efi_path='/boot/grub/efi.img'

relative to

-efi-boot-part --efi-boot-image
-c '/boot.catalog'
-e '/boot/grub/efi.img' -no-emul-boot

I had few clue of boot equipment when designing the -boot_image
command. It is flexible enough to keep up with new demands.
But it is far from being clear. The first parameter, which was
intended to distinguish boot loaders, is mostly wasted.
Actually i could need a new straighforward language to
describe El Torito and the System Area.


As said, i am working on a feature to tell commands from
ISOs. There are still problems with commands which take
as input data from outside the ISO filesystem.
E.g.: -isohybrid-mbr or -append_partition.

When this feature is completed, then it will be halfways usable
as translator from -as mkisofs options to -boot_image commands.
Just inquire some ISO that was produced by xorriso -as mkisofs.

E.g. an amd64-netinst will yield:

-boot_image isolinux system_area=...what.path.to.use.here.?...
-boot_image isolinux partition_table=on
-boot_image any partition_cyl_align=on
-boot_image any partition_offset=0
-boot_image any partition_hd_cyl=64
-boot_image any partition_sec_hd=32
-boot_image any apm_block_size=2048
-boot_image any cat_path='/isolinux/boot.cat'
-boot_image isolinux bin_path='/isolinux/isolinux.bin'
-boot_image any platform_id=0x00
-boot_image any emul_type=no_emulation
-boot_image any load_size=2048
-boot_image any boot_info_table=on
-boot_image any next
-boot_image any efi_path='/boot/grub/efi.img'
-boot_image any platform_id=0xef
-boot_image any emul_type=no_emulation
-boot_image any load_size=458752
-boot_image isolinux partition_entry=gpt_basdat
-boot_image isolinux partition_entry=apm_hfsplus

This will still not be a no-brainer. One has to check
each command whether one wants to fixely set its parameter
or rather depend on xorriso defaults.
E.g. the load_size=458752 is actually the size of efi.img
and thus variable. So one better omits that command and
lets xorriso use the data file size.
On the other hand load_size=2048 is an important fixed
parameter for ISOLINUX BIOS boot images. It corresponds to
-as mkisofs -boot-load-size 4.

(Ceterum censio partition_entry=apm_hfsplus
 is not appropriatum and esse delendam.)


Have a nice day :)

Thomas


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/21062543810235799...@scdbackup.webframe.org



Re: arm64 and isohybrid

2015-01-29 Thread Thomas Schmitt
Hi,

i wonder why my mail of Thu, 29 Jan 2015 08:14:08 +0100
does not show up in debian-cd mailing list. It reported about
a preliminary experiment with amd64 mini.iso.
Meanwhile it is quite outdated by my new experiments with
an arm64 ISO.

-

I downloaded
   
http://cloudfront.debian.net/cdimage/jessie_di_beta_2/arm64/iso-cd/debian-jessie-DI-b2-arm64-netinst.iso
of 2014-10-03.

Inspection yields:

  Volume id: 'Debian jessie-DI-b2 arm64 1'
  El Torito catalog  : 832  1
  El Torito cat path : /boot.catalog
  El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz LBA
  El Torito boot img :   1  UEFI  y   none  0x  0x00768 833
  El Torito img path :   1  /boot/grub/efi.img
  xorriso : NOTE : No System Area was loaded

This looks like amd64 mini.iso without the BIOS stuff.

After reading its /.disk/mkisofs, i re-pack it by

  # A dummy MBR template as substitute for isohdpfx.bin
  dd if=/dev/zero bs=432 count=1 of=null.mbr

  mount -o loop debian-jessie-DI-b2-arm64-netinst.iso /mnt/iso

  xorriso -as mkisofs \
 -V 'Debian jessie-DI-b2 arm64 1' \
 -r -o test.iso -J -joliet-long -cache-inodes \
 -isohybrid-mbr null.mbr \
 -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat \
 /mnt/iso

Omitted options:
 all Jigdo options
 -eltorito-alt-boot is a separator which is needed only if
already a boot image was defined by -b, -e,
or alike

Added options:
 -isohybrid-gpt-basdat works only if -isohybrid-mbr is present
 -isohybrid-mbr gets as input the dummy MBR template. So SYSLINUX
is not needed.

The result shows nested partitions in MBR and GPT.
This is the mjg layout, which partition editors dislike heavily
but seems to work well in the amd64 netinst ISOs.
It offers three entry points for booting: El Torito, MBR, GPT.

El Torito catalog  : 832  1
El Torito cat path : /boot.catalog
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz LBA
El Torito boot img :   1  UEFI  y   none  0x  0x00768 833
El Torito img path :   1  /boot/grub/efi.img
System area options: 0x0900
System area summary: MBR cyl-align-on GPT
ISO image size/512 : 262144
Partition offset   : 0
MBR heads per cyl  : 64
MBR secs per head  : 32
MBR partition table:   N Status  TypeStart   Blocks
MBR partition  :   1   0x80  0x000   262144
MBR partition  :   2   0x00  0xef 3332  768
MBR partition path :   2  /boot/grub/efi.img
GPT:   N  Info
GPT disk GUID  :  8822d6a0aadcde40a8afcd569dc28802
GPT entry array:  2  248  overlapping
GPT lba range  :  64  262080  262143
GPT partition name :   1  490053004f00480079006200720069006400
GPT partname local :   1  ISOHybrid
GPT partition GUID :   1  8822d6a0aadcde40a8adcd569dc28802
GPT type GUID  :   1  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   1  0x1001
GPT start and size :   1  0  262080
GPT partition name :   2  490053004f004800790062007200690064003100
GPT partname local :   2  ISOHybrid1
GPT partition GUID :   2  8822d6a0aadcde40a8accd569dc28802
GPT type GUID  :   2  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   2  0x1001
GPT start and size :   2  3332  768
GPT partition path :   2  /boot/grub/efi.img


Of course it is odd to use ISOLINUX related xorriso commands
with pure GRUB2 boot equipment. Especially since Vladimir
Serbinenko puts much emphasis on a neat partition table. 

Let's try an option which was introduced for grub-mkrescue

  xorriso -as mkisofs \
 -V 'Debian jessie-DI-b2 arm64 1' \
 -r -o test.iso -J -joliet-long -cache-inodes \
 -efi-boot-part --efi-boot-image \
 -e boot/grub/efi.img -no-emul-boot \
 /mnt/iso

Added options:
 -efi-boot-part with special argument --efi-boot-image
marks the first EFI El Torito boot image as
partition in GPT.
Only a protective MBR emerges, which complies
to GPT specs. (Other than a multi-partition MBR.)

This yields a more conventional partition layout.
The range of the ISO filesystem is protected by the MBR partition and
by three GPT partitions, of which the middle one points to the EFI
boot filesystem in /boot/grub/efi.img. 
Only two boot entry points are provided: El Torito and GPT.

El Torito catalog  : 1024  1
El Torito cat path : /boot.catalog
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz LBA
El Torito boot img :   1  UEFI  y   none  0x  0x00768 831
El Torito img path :   1  /boot/grub/efi.img
System area options: 0x0201
System area summary: MBR protective-msdos-label 

arm64 and isohybrid

2015-01-28 Thread Steve McIntyre
Hi folks,

I've been playing with the arm64 netinst build a little today, when
installing a new machine. We *hadn't* been making them isohybrid thus
far, and therefore when I simply dumped one onto a USB stick using dd
it didn't work wonderfully. Due to the UEFI firmware being reasonably
intelligent, I could boot the installer off the USB stick. But later
on d-i failed to find and mount the cdrom so it bailed out - AFAICS
this is because there weren't any partitions on the media.

So... Next, I tried to add some xorriso isohybrid options to the
build, starting with

  -isohybrid-gpt-basdat

but that didn't have any noticeable effect on my build. (I don't know
if that's expected!). Next, I bit my tongue and copied more of the
amd64 build, using bits of syslinux to add:

  -isohybrid-mbr syslinux/usr/lib/syslinux/isohdpfx.bin

and that makes a big difference - I then ended up with the
normal-looking 2-partition image and d-i awas happy with
this.

So... Much as this image seems to work for me, it's bloody silly to be
using bits out of syslinux for an arm64 image! Thomas: what exactly
does xorriso need out of isohdpfx.bin to be able to make a *non* x86
bootable MBR etc. please? I'm *guessing* we just need a basic MBR-ony
boot sector that xorriso can modify with a partition table, but I
don't really know this area all that well. Can you give me some clues
please? :-)

-- 
Steve McIntyre, Cambridge, UK.st...@einval.com
C++ ate my sanity -- Jon Rabone


-- 
To UNSUBSCRIBE, email to debian-cd-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150128230426.gi20...@einval.com