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