On Mon, Jul 11, 2016 at 05:23:32PM -0700, Maxim Sobolev wrote:
> P.S. Just in case if somebody wants to integrate this method into FreeBSD
> liveCD build, we do a bit of trick there by making normal ISO9660 file
> system with compressed kernel and relevant boot pieces and then also
> sticking in BSD label on the same disk image. It turns out ISO9660 and BSD
> disklabel structures do not overlap, so it works nicely since 2005 or
> so. Then we append UFS image compressed with mkuzip at the end of it.
> Resulting image can be used just as any ISO would. We also cook up UFS with
> unique label and then use GEOM_LABEL to easily find relevant file system on
> boot regardless of the physical device name.
>   mkuzip -dL -S -s 65536 -o ${UZPFILE} ${UFSFILE}
>   mkisofs -b boot/${CDBOOT} -no-emul-boot -r -o ${ISOFILE} ${CDIR}
>   eval $(stat -s ${UZPFILE})
>   UZPSIZE=$((st_size + 2048 - (st_size % 2048)))
>   truncate -s ${UZPSIZE} ${UZPFILE}
>   eval $(stat -s ${ISOFILE})
>   ISOSIZE=${st_size}
>   echo "bytes/sector:  2048"                                            >
> ${TDIR}/label.txt
>   echo "sectors/unit:  $(((UZPSIZE + ISOSIZE) / 2048))"                >>
> ${TDIR}/label.txt
>   echo "a:             $((UZPSIZE / 2048)) $((ISOSIZE / 2048)) unused" >>
> ${TDIR}/label.txt
>   echo "c: $(((UZPSIZE + ISOSIZE) / 2048))                   0 unused" >>
> ${TDIR}/label.txt
>   truncate -s $((ISOSIZE + UZPSIZE)) ${ISOFILE}
>   disklabel -A -R -f ${ISOFILE} ${TDIR}/label.txt
>   truncate -s ${ISOSIZE} ${ISOFILE}
>   cat ${UZPFILE} >> ${ISOFILE}

I'm very interested in implementing this, provided it solves the
disc1.iso size issue.  Could you provide a bit explanation on what the
variables above represent?  At the moment, I'm having trouble parsing
the file paths and input/output paths.


Attachment: signature.asc
Description: PGP signature

Reply via email to