You are not logged in.

#1 2014-01-30 22:14:12

cm
Member
Registered: 2013-07-24
Posts: 32

xorriso for efi-less iso

Tried the xorriso command from https://wiki.archlinux.org/index.php/Un … B_from_ISO and the new iso image fails during boot at finding/identifying the image possibly looking for the squashfs file on a 32-bit efi mac mini. Is that command still correct?

Offline

#2 2014-01-31 06:43:14

scdbackup
Member
Registered: 2013-05-30
Posts: 73

Re: xorriso for efi-less iso

Hi,

it is possible that the Archlinux boot code depends on the
Volume Id of the ISO fileystem in order to find it in
/dev/disk/by-label after the kernel was loaded and (cough)
udev was started up.

Try what happens if you replace the parameter text of

  -volid "archisolabel"

by the original Volume Id of the input image, as reported by

  xorriso -indev input.iso

For example, if this reports

  Volume id    : 'ARCH_201311'

then use

  -volid "ARCH_201311"

This might be what is meant by the prescription in the wiki:
"Mount the official installation media and obtain the archisolabel as shown in the previous section."
Well, there is no previous section which would show it.

Have a nice day smile

Thomas

Last edited by scdbackup (2014-01-31 07:08:33)

Offline

#3 2014-01-31 13:06:39

cm
Member
Registered: 2013-07-24
Posts: 32

Re: xorriso for efi-less iso

Thanks that might be it and I tried that but for some reason the new iso always has
    Volume id: archisolabel
and I don't know why. Made sure that the right Volume id was used by extracting it with isoinfo
    isoinfo -d -i archlinux-2014.01.05-dual.iso | grep 'Volume id'
and the xorriso command looked fine.

Offline

#4 2014-01-31 13:38:58

scdbackup
Member
Registered: 2013-05-30
Posts: 73

Re: xorriso for efi-less iso

Hi,

> for some reason the new iso always has
>    Volume id: archisolabel

This must have sneaked in somehow with your xorriso command.
Its default Volume Id is 'ISOIMAGE'.

The default might get altered by one of the startup files
of xorriso. Check by

  xorriso -status -volid

which should say as last output line

  -volid 'ISOIMAGE'

If it does not, then show me the output of

  xorriso -report_about ALL -status -volid

> the xorriso command looked fine.
 
So let's repeat the production steps:

- Mount archlinux-2014.01.05-dual.iso

- Use the same xorriso -as mkisofs command as before, but
  add a redirection to a log file:

    xorriso -as mkisofs -iso-level 3 \
    ...
    -output output.iso /mnt/iso/ \
    2>&1 | tee -i /tmp/xorriso.log

- Check whether this time "ARCH_201401" is reported as Volume Id
  of the resulting "output.iso".
  If not, then show the exact xorriso command and the content of
  file /tmp/xorriso.log . If the file is too large or too private,
  then mail it to me: scdbackup@gmx.net (developer of xorriso).

- If it shows the desired Volume Id then try whether it boots.
  (If not, then we would have to dig for the origin of the last
   visible messages. Do i get it right that
     /arch/i686/root-image.fs.sfs
   is what others have as initrd ?)

Have a nice day smile

Thomas

Offline

#5 2014-01-31 22:09:15

cm
Member
Registered: 2013-07-24
Posts: 32

Re: xorriso for efi-less iso

Sorry for the noise the new iso works but I tested the wrong one when I wrote the comment. Thanks for your help.

Last edited by cm (2014-01-31 22:12:34)

Offline

#6 2014-01-31 22:12:47

cm
Member
Registered: 2013-07-24
Posts: 32

Re: xorriso for efi-less iso

What's the correct xorriso way to get the volid? Is it possible to get it without mounting the iso first?

Offline

#7 2014-01-31 22:14:56

cm
Member
Registered: 2013-07-24
Posts: 32

Re: xorriso for efi-less iso

Do you know the right xorriso steps to also make sysresccd isos bootable on 32-bit efi macs. Their isos have the same efi problem.

Offline

#8 2014-01-31 22:56:11

scdbackup
Member
Registered: 2013-05-30
Posts: 73

Re: xorriso for efi-less iso

Hi,

> What's the correct xorriso way to get the volid?

For example:

  id=$(xorriso -indev archlinux-2013.11.01-dual.iso -pvd_info \
       | grep '^Volume Id' | sed -e 's/Volume Id    : //')

  echo $id

"grep" picks the line "Volume Id    : ARCH_201311" out of the result
text of xorriso command -pvd_info.
xorriso command -indev "archlinux-2013.11.01-dual.iso" loads the
directory tree and image attributes, so that command -pvd_info
can list the Volume Id and some of its neighbors. "sed" removes
the title text from "Volume Id    : ARCH_201311".
You may suppress the info messages of xorriso by "2>/dev/null" before
the pipe symbol.

Note that the sequence of -indev and -pvd_info matters. First load,
then inquire info.

The Archlinux wiki example actually uses only one xorriso command:
-as which by its first parameter "mkisofs" interprets the other
parameters as mkisofs options. Among them, the sequence does
fewly matter.


> Is it possible to get it without mounting the iso first?

Yes. xorriso has its own interpretation of ISO 9660 filesystems.
E.g. to see a complete list of all files in the ISO filesystem

  xorriso -indev archlinux-2014.01.05-dual.iso \
          -find / -exec lsdl -- 2>&1 | less

This capability is mainly because it has to load the tree before
it can be manipulated and brought into effect by an add-on session.
(The ISO image is prone to such change only if -dev is used rather
than -indev.)

> Do you know the right xorriso steps to also make sysresccd
> isos bootable on 32-bit efi macs.

One would need to find out how they are made.
Do you have an URL to download an example for inspection ?

Have a nice day smile

Thomas

Offline

#9 2014-01-31 23:53:58

cm
Member
Registered: 2013-07-24
Posts: 32

Re: xorriso for efi-less iso

I found the stdout/stderr behavior of xorriso irritating and hard to grep the volid from but I'll try again to replace isoinfo with xorriso in my script.

> Do you have an URL to download an example for inspection ?

http://www.sysresccd.org/Download

Offline

#10 2014-02-01 08:50:52

scdbackup
Member
Registered: 2013-05-30
Posts: 73

Re: xorriso for efi-less iso

Hi,

> http://www.sysresccd.org/Download

Inspection by

  xorriso -indev systemrescuecd-x86-4.0.0.iso -toc -pvd_info

yields (among others):

  Boot record  : El Torito , ISOLINUX boot image capable of isohybrid
  Boot image   : '/isolinux/isolinux.bin' , boot_info_table=on
  Boot image   : '/boot/grub/efi.img' , platform_id=0xEF
  PVD address  : 16s
  Volume Id    : sysrcd-4.0.0
  Preparer Id  : XORRISO-1.2.8 2013.03.18.093001, LIBISOBURN-1.2.8, LIBISOFS-1.2.8, LIBBURN-1.2.8

So it is suitable for booting CD/DVD via El Torito on BIOS or EFI,
but not from USB stick (no MBR for BIOS, no GPT for EFI).

Adapted archlinux wiki example for repacking without
EFI El Torito:

  mount -o loop systemrescuecd-x86-4.0.0.iso /mnt/iso

  xorriso -as mkisofs -iso-level 3 \
          -full-iso9660-filenames \
          -volid "sysrcd-4.0.0" \
          -eltorito-boot isolinux/isolinux.bin \
          -eltorito-catalog isolinux/boot.cat \
          -no-emul-boot -boot-load-size 4 -boot-info-table \
          -output output.iso /mnt/iso/

I am not sure whether -iso-level 3 -full-iso9660-filenames is
actually needed. Normally only the ISOLINUX stage of booting
uses the dull ISO 9660 names. Further stages use the Rock Ridge
names (which are e.g. shown after "mount").

xorriso could make the result bootable from USB stick, if you
extract the SYSLINUX hybrid MBR from an Archlinux image:

  dd if=archlinux-2013.11.01-dual.iso bs=512 count=1 of=syslinux.mbr

and add this option to the xorriso -as mkisofs run:

  -isohybrid-mbr syslinux.mbr \

Background info about the "-as mkisofs" options is given in
  man xorrisofs
online:
  http://www.gnu.org/software/xorriso/man … isofs.html

It shall be noted that without -isohybrid-mbr, the above options
would also work with programs mkisofs and genisoimage.


I tested the result by putting it on a CD-RW:

  xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed -eject output.iso

and booting it on an amd64 system with PC-BIOS.
(For -as cdrecord options see  man xorrecord .)


> I found the stdout/stderr behavior of xorriso irritating
> and hard to grep the volid from

If in doubt, use the shell gesture "2>&1" to unite both streams.

As a rule of thumb, user requested text is sent to stdout,
unrequested information is sent to stderr.

Whatever, i don't urge to give up tools which do their job.
If isoinfo suits you, then just stay with it.


Have a nice day smile

Thomas

Offline

#11 2014-02-01 10:21:27

cm
Member
Registered: 2013-07-24
Posts: 32

Re: xorriso for efi-less iso

Thanks again I got it all working now with or without isoinfo. I haven't test booted the sysresccd iso yet but expect it to work.

xorriso complains about "sysrcd-4.0.0" but compared to ARCH_201401 maybe it's the hyphen and dots.
    xorriso : WARNING : -volid text does not comply to ISO 9660 / ECMA 119 rules

Thanks a lot Thomas!!!

Last edited by cm (2014-02-01 10:48:19)

Offline

#12 2014-02-01 10:39:33

scdbackup
Member
Registered: 2013-05-30
Posts: 73

Re: xorriso for efi-less iso

> xorriso : WARNING : -volid text does not comply to ISO 9660 / ECMA 119 rules
> maybe it's the hyphen and dots.

Yes. Officially, only characters A-Z, 0-9, and _ are allowed. Archlinux ISO producers are among the few who obey. The others do not get punished unless they are perky enough to use characters which cause shell problems when dealing with e.g. /dev/disk/by-label.

Offline

#13 2014-02-01 11:22:09

cm
Member
Registered: 2013-07-24
Posts: 32

Re: xorriso for efi-less iso

Booted syssreccd iso and it works but it seems to require EFI calls to set up the text console. I can live with that by booting into VGA or as tried booting directly into Xorg. This EFI stuff is a pain in the ass and going to cost the world much more in resources than it saves.

Offline

Board footer

Powered by FluxBB