For those who missed it, the line in question is/was

line 326    $mkisofs -q -r -T -J -l -A "T2 SDE - Disk $x" \

I have attached the file.

Well, changing it from -q to -quiet just meant I didn't see any data.

However i'm now getting an error

'Warning: Creating filesystem that does not conform to iso-9660.'

But it does seem to at least create it, although it's a long process.

However:

Using isolinux as the CD Loader in the Build,

after burning and running I am getting the error

'Failed to load LDlinux.c32'

 and it just freezes, only the power button does anything.

Alternately with grub, It goes as far as Stage2 and then just errors that fast that I can't follow any of the messages. The only thing that works is a <ctrl><alt><del> to shutdown and reboot.

Yet in both cases the iso seems to contain the comparitable and expected files.

I await sugestions where to go to, from here.
regards
jon

On 09/15/2014 12:57 AM, ExactCODE wrote:
Hi,

patches welcome, but do not forget we also boot on PPC*, SPARC*, and 
theoretically MIPS*, and maybe others I did not look into recently (Alpha, 
IA64, or SuperH to name a few).

        René

On Sep 14, 2014, at 12:56, Thomas Schmitt <[email protected]> wrote:


Hi,

scsijon wrote:
the -q should be I think -p

I wonder why mkisofs does not fail if -q is given.
My local copy of mkisofs shows me the help text instead.

But genisoimage tolerates -q. Seems to mistake it for "-quiet".

Is the script available online for curious inspection ?

Google found me
  https://github.com/arete/t2/blob/master/scripts/Create-ISO
which has "mkisofs -q" in line 326, but also option -r, which
should enable Rock Ridge and thus prevent the warning:

Warning: creating filesystem with (nonstandard) Joliet extensions
         but without (standard) Rock Ridge extensions.
         It is highly recomended to add rock Ridge.
[...]
Not sure if it shouldn't be added.

If you changed -q to -p then this ate up the next argument
"-r" as Preparer Id text of the emerging ISO. No Rock Ridge, then.

I'd rather propose to change -q to -quiet.

--------------------------------------------------------------------

May i also propose to add "xorrisofs" to the list of compatible
programs in line 78 ?

  for x in genisoimage mkisofs; do

(It does not tolerate -q, either.)

--------------------------------------------------------------------

I cannot keep myself from making some lengthy remarks about the
sparse boot equipment of t2-8.0-minimal-i486.iso of 2010.
(I could not find a 9.0 ISO.)

The ISO is bootable only via El Torito, i.e. from CD, DVD, or BD media.
Not from hard-disk-ish devices like USB sticks.

Current bootloaders GRUB2 and ISOLINUX can provide a PC-BIOS MBR
for booting from (pseudo) hard disk. ISOLINUX calls this feature
"isohybrid".

GRUB2 can boot hard disk or optical media via UEFI firmware, too.
Its script grub-mkrescue sets up the boot equipment and controls
a xorriso run to produce the bootable ISO.
GRUB2 script grub-mkrescue is not overly popular among
traditional distros, although it produces quite versatile ISOs
with arbitrary operating system payload.

SYSLINUX/ISOLINUX provides a program named "isohybrid" which
post-processes an El Torito bootable ISO in order to add an MBR.
It also provides MBR template files which xorriso can include
into the ISO at production time, so that no post-processing is
needed.
ISOLINUX cannot boot from optical media via UEFI, yet.

Many Linux distros use a mix for their amd64 images:
ISOLINUX for PC-BIOS, GRUB2 for UEFI.
See for example debian-7.5.0-amd64-netinst.iso which bears:

El Torito cat path : /isolinux/boot.cat
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4        1072
El Torito boot img :   2  UEFI  y   none  0x0000  0x00    896         848
El Torito img path :   1  /isolinux/isolinux.bin
El Torito img opts :   1  boot-info-table isohybrid-suitable
El Torito img path :   2  /boot/grub/efi.img
[...]
System area summary: MBR isohybrid cyl-align-on GPT APM
[...]
MBR partition table:   N Status  Type        Start       Blocks
MBR partition      :   1   0x80  0x00            0       454656
MBR partition      :   2   0x00  0xef         3392          896
MBR partition path :   2  /boot/grub/efi.img
GPT                :   N  Info
GPT disk GUID      :      b3aadf1d79f37941a9e16e9d465702f1
GPT entry array    :      12  208  overlapping
GPT lba range      :      64  454602  454655
GPT partition name :   1  490053004f00480079006200720069006400
GPT partname local :   1  ISOHybrid
GPT partition GUID :   1  b3aadf1d79f37941a9e36e9d465702f1
GPT type GUID      :   1  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   1  0x1000000000000001
GPT start and size :   1  0  454600
GPT partition name :   2  490053004f004800790062007200690064003100
GPT partname local :   2  ISOHybrid1
GPT partition GUID :   2  b3aadf1d79f37941a9e26e9d465702f1
GPT type GUID      :   2  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   2  0x1000000000000001
GPT start and size :   2  3392  896
GPT partition path :   2  /boot/grub/efi.img
[...]

In this ISO, El Torito offers two boot alternatives for BIOS and
UEFI. This is in effect if the ISO is booted from optical media.
PC-BIOS starts /isolinux/isolinux.bin.
UEFI looks into the FAT filesystem image /boot/grub/efi.img
for its boot equipment.

If presented on a hard-disk-like medium, PC-BIOS starts the MBR
machine code, which jumps to the ISOLINUX El Torito boot image
/isolinux/isolinux.bin.
UEFI gets pointed by MBR and GPT partitions number 2 to the
FAT filesystem image /boot/grub/efi.img of GRUB2.


Have a nice day :)

Thomas



-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[email protected] with a subject of: unsubscribe t2


#!/bin/bash
# --- T2-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# 
# T2 SDE: scripts/Create-ISO
# Copyright (C) 2004 - 2007 The T2 SDE Project
# 
# More information can be found in the files COPYING and README.
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License. A copy of the
# GNU General Public License can be found in the file COPYING.
# --- T2-COPYRIGHT-NOTE-END ---

#
# Commands in isofs.txt files:
#
# EVERY         from    to              Put this on every disk
# DISK1         from    to              Put this on the 1st disk
# SINGLE        from    to              Put it on any disk
# SPLIT         from    to              You may split it up over many disks
#
# BOOT          boot-options            Add this mkisofs options for 1st disk
#
# If you want to add multiple 'BOOT' lines, use the tag-name 'BOOTx' for
# the 2nd and all further lines.
#
# SCRIPT        script-name     args    Run given script for each image
#
# Intended for image post-processing. The first attached argument is the CD
# number and the second the image file.
#

eval `grep sdever scripts/parse-config`
. scripts/functions.in

usage()
{
        echo
        echo "Usage: $0 [ -size MB ] [ -source ] [ -mkdebug ] [ -nomd5 ] 
ISO-Prefix \\"
        echo "       ${0//?/ } [ Config [ .. ] ]"
        echo
        echo "E.g.: $0 mycdset system rescue"
        echo
        exit 1
}

# default disk-size
dsize=$(( 650 * 1024 ))
file_overhead=1
src=0; mkdebug=0; implantisomd5=1
isoprefix=''

while [ "$1" ] ; do
        case "$1" in
                -size)
                        dsize=$(( $2 * 1024 )) ; shift ; shift ;;
                -source)
                        src=1 ; shift ;;
                -mkdebug)
                        mkdebug=1 ; shift ;;
                -nomd5)
                        implantisomd5=0 ; shift ;;
                -* | '')
                        usage ;;
                *)
                        break ;;
        esac
done

[ $# -eq 0 ] && usage
isoprefix="$1"; shift

[ $# -eq 0 ] && set -- 'default'

mkisofs=
for x in genisoimage mkisofs; do
        if [ "`type -p $x`" ]
        then mkisofs="$x"; break; fi
done
[ ! "$mkisofs" ] && echo 'No "mkisofs" found in path!' && exit 1

spacer="    "

errno=0; for cfg ; do
        if [ ! -f config/$cfg/config ]; then
                echo "Not a valid config: $cfg"
                errno=1
        fi
done
[ $errno -ne 0 ] && exit 1

if [ "$implantisomd5" = 1 -a ! -x src/isomd5sum/implantisomd5 ] ; then
        echo ; date "+  [%X] Creating ISO-MD5 tools ..."
        rm -rf src/isomd5sum; mkdir -p src/isomd5sum
        cp misc/isomd5sum/* src/isomd5sum/
        make -C src/isomd5sum all
fi

echo ; date "+  [%X] Removing old files with same prefix ..."
[ "${isoprefix//\//}" == "${isoprefix}" ] && isoprefix="iso/$isoprefix"
mkdir -vp ${isoprefix%/*}
rm -rvf ${isoprefix}_* ${isoprefix}.md5

date "+  [%X] Reading configs ..."
index=`mktemp` ; dat=`mktemp` ; pathspec=`mktemp`
rm -f ${pathspec}*

for cfg ; do
        id="`grep '^export SDECFG_ID=' config/$cfg/config |
             cut -f2 -d\' 2> /dev/null`"
        if ! cat build/$id/TOOLCHAIN/isofs.txt >> $dat 2> /dev/null
        then 
                echo "Not a valid build: $cfg"
                echo "build/$id/TOOLCHAIN/isofs.txt must exist."
                rm -f $dat $index ${pathspec}_* ; exit 1
        fi

        if test -f config/$cfg/license-issue.ask; then
                if ! grep LICENSE-WARNING $dat &> /dev/null; then
                        echo "EVERY misc/share/LICENSE-WARNING LICENSE-WARNING" 
>> $dat
                fi

                cp -vf misc/share/LICENSE-WARNING build/$id/TOOLCHAIN/
                echo "" >> build/$id/TOOLCHAIN/LICENSE-WARNING
                echo "The following packages may have license restrictions:" >> 
build/$id/TOOLCHAIN/LICENSE-WARNING
                cat config/$cfg/license-issue.ask >> 
build/$id/TOOLCHAIN/LICENSE-WARNING

                if [ "`grep '^export SDECFG_LICENSE_ISSUE=' config/$cfg/config 
| cut -f2 -d\'`" = "0" ]; then
                        cat <<EOF
You have chosen to compile packages that are restricted
in their redistribution. Unless you accept this limitation
you cannot burn these packages.

Please rerun ./scripts/Config -cfg $cfg and check
'I have read and understood the licensing issues.'
EOF

#FIXME remove packages that have an issue instead of exiting
                        exit 1
                fi
        fi
done

# function to add a given file $1 to the place $2 on the resulting ISO
#
add() {
        local from="$1" to="$2" done=0
        if [ ! -f "$from" -a ! -d "$from" ] ; then
                echo "No such file or directory: $from"
                rm -f $dat $index ${pathspec}_* ; exit 1
        fi

        files="`find $from ! -type d | wc -l`"
        size="`du -s -b $from | cut -f1`"
        size=$(( size / 1024 + files * file_overhead ))

        if [ $size -gt $(( $dsize - $disk_0_size )) ] ; then
                echo "Chunk $from is too big!"
                rm -f $dat $index ${pathspec}_* ; exit 1
        fi

        for x in $disks ; do
                ds=disk_${x}_size ; dd=disk_${x}_data
                if [ $(( ${!ds} + $size )) -le \
                     $(( $dsize - $disk_0_size )) ] ; then
                        eval "$ds=$(( ${!ds} + $size ))"
                        echo "$to=$from" >> ${pathspec}_${disk_nr}
                        done=1 ; break
                fi
        done

        if [ $done = 0 ] ; then
                disk_nr=$(( $disk_nr + 1 ))
                ds=disk_${disk_nr}_size ; eval "$ds=$size"

                # FIXME: if in a path-list files, mkisofs complains about
                #        missing isolinux. Should be a mkisofs bug!
                if [ "$to" = "isolinux/" -o "$from" = "isolinux/" ] ; then
                        echo "$to=$from" >> ${pathspec}_iso
                else
                        echo "$to=$from" >> ${pathspec}_${disk_nr}
                fi
                disks="$disks $disk_nr"
        fi
}

bootoptions=""
scripts=""
while read tag data ; do
        # empty lines
        [ "$tag" ] || continue
        if [ $tag = BOOT ]; then
                if [ "$bootoptions" ]; then
                        echo "Multiple boot options found!"
                        rm -f $dat $index ${pathspec}_* ; exit 1
                else
                        bootoptions="$data"
                        [[ $data == *-hfs* ]] && file_overhead=12
                fi
        elif [ $tag = SCRIPT ]; then
                scripts="$scripts $data"
        fi
done < $dat
while read tag data ; do
        if [ "$tag" = BOOTx ]; then
                bootoptions="$bootoptions $data"
                [[ $data == *-hfs* ]] && file_overhead=12
        fi
done < $dat

echo "$spacer parsing for EVERY disk."

disks="0" ; disk_nr=0 ; disk_0_size=0
echo "index.txt=${isoprefix}_index.txt" >> ${pathspec}_0
while read type from to ; do
        if [ "$type" = EVERY ]; then
                add $from $to
                if [ $disk_nr -gt 0 ] ; then
                        echo "Every-disk data is too big!"
                        rm -f $dat $index ${pathspec}_* ; exit 1
                fi
        fi
done < $dat

echo "$spacer parsing for DISK1 disk."

disk_nr=0 ; disks=""
while read type from to ; do
        if [ "$type" = DISK1 ] ; then
                add $from $to
                if [ $disk_nr -gt 1 ] ; then
                        echo "Disk 1 is too big!"
                        rm -f $dat $index ${pathspec}_* ; exit 1
                fi
        fi
done < $dat

echo "$spacer parsing for SINGLE disk."

while read type from to ; do
        if [ "$type" = SINGLE ] ; then
                add $from $to
        fi
done < $dat

echo "$spacer parsing for SPLIT disk."

while read type from to ; do
        if [ "$type" = SPLIT ] ; then
                find $from -type f -printf '%P\n' | sort > $index
                while read p ; do
                        add $from$p $to$p
                done < $index
        fi
done < $dat

if [ $src = 1 ] ; then
        date "+  [%X] Embedding source ..."

        ./scripts/Create-SrcTar

        for x in doc/* t2-src-$sdever.tar.bz2 ; do
                [ ! -d $x ] && add $x ${x/doc\/}
        done

        while read from ; do
                from="`bz2filename $from`"
                if [ -e $from ] ; then
                        add $from $from
                else
                        echo "WARNING: File $from is missing!"
                fi
        done < <( ./scripts/Download -list | sort -u )
fi

date "+  [%X] Creating ISO index ..."
echo -n > $index
for x in 0 $disks ; do
        dd=disk_${x}_data
        for y in ${!dd} `cat ${pathspec}_${x} 2> /dev/null` ; do
                to=${y%=*} ; from=${y#*=}
                if [ -e $from ] ; then
                        find $from -printf "disk$x      $to%P\\n" >> $index
                else
                        echo "disk$x    $to" >> $index
                fi
        done
done
disk_0_size=$(( $disk_0_size + $( du -sk $index | cut -f1 ) ))

if [ -z "$bootoptions" ] ; then
        echo "WARNING: Disk1 is not bootable - no boot options defined."
fi

echo
total=0
for x in 0 $disks ; do
        ds=disk_${x}_size
        total=$(( $total + ${!ds} ))

        if [ $x = 0 ] ; then y="Shared"
        else y="`printf 'Disk%2d' $x`" ; fi

        z="$( grep "^disk$x     " $index | wc -l )"

        if [ -z "$bootoptions" -o $x != 1 ] ; then
                printf "%15s $y: %7s kB in %5d files\n" "" ${!ds} $z
        else
                printf "%15s $y: %7s kB in %5d files  (boot)\n" "" ${!ds} $z
        fi
done
printf "%15s Total: %8s kB in %5d files\n" "" $total $( wc -l < $index )
echo

date "+  [%X] Creating ${isoprefix}_index.txt ..."
sort -tk -n -k2 < $index > ${isoprefix}_index.txt

for x in $disks ; do
        ds=disk_${x}_size
        date "+  [%X] Creating ${isoprefix}_cd$x.iso ..."
        echo "This is disk #$x." > $dat
        # FIXME: current mkisofs does only accept one -path-list
        sort -u ${pathspec}_${x} ${pathspec}_0 > ${pathspec}_current 2> 
/dev/null
        $mkisofs -q -r -T -J -l -A "T2 SDE - Disk $x" \
            -publisher 'T2 System Develop Environment - 
http://www.t2-project.org' \
            -path-list ${pathspec}_current \
            $bootoptions -graft-points disk$x.txt=$dat \
            `cat ${pathspec}_iso 2>/dev/null` | tee ${isoprefix}_cd$x.iso |
        md5sum | sed "s/ -/ `basename ${isoprefix}_cd$x.iso`/" \
                     > ${isoprefix}_cd$x.iso.md5
        rm -f ${pathspec}_iso
        rm -f ${pathspec}_current

        bootoptions=""

        if [ "$scripts" ] ; then
                echo "$spacer Running post-processing scripts on image ..."
                eval $scripts $x ${isoprefix}_cd$x.iso
        fi

        if [ "$implantisomd5" = 1 -a -x ./misc/isomd5sum/implantisomd5 ] ; then
                echo "$spacer Calculating and implanting MD5 checksum ..."
                ./src/isomd5sum/implantisomd5 ${isoprefix}_cd$x.iso >/dev/null
        fi

        if [ "$mkdebug" = 1 ] ; then
                cat > ${isoprefix}_loop$x.sh << EOT
#!/bin/sh

if [ "\$1" -a -z "\${1//[0-9]/}" ] ; then
        [ "\$2" ] && umount \$2 > /dev/null 2>&1
        losetup -d /dev/loop/\$1 > /dev/null 2>&1
        losetup /dev/loop/\$1 ${isoprefix##*/}_cd$x.iso
        [ "\$2" ] && mount /dev/loop/\$1 \$2
else
        echo "Usage: \$0 loopback-dev-nr [ mount-point ]"
        exit 1
fi
EOT
                chmod +x ${isoprefix}_loop$x.sh
        fi
done

cat ${isoprefix}_cd*.iso.md5 > ${isoprefix}.md5
date "+  [%X] Done. Have fun!"
echo

rm -f $index $dat ${pathspec}_* 

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[email protected] with a subject of: unsubscribe t2

Reply via email to