[archiso] Switch from cdrkit to libisoburn

* Preparing terrain for UEFI support.
* Also make isohybrid hack in one step.
* Removed UDF layer, since xorriso does not support it.
* Removed unsupported options by xorriso (-uid/-gid/-allow-limited-size)
* Removed option already default in xorriso (-input-charset utf-8)

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
This commit is contained in:
Gerardo Exequiel Pozzi 2011-08-29 01:47:57 -03:00
parent 48023e336b
commit 14743f4202
4 changed files with 13 additions and 10 deletions

9
README
View File

@ -101,8 +101,7 @@ if nothing is specified on command line.
** For mkarchiso script needs these packages (build host): ** For mkarchiso script needs these packages (build host):
+ devtools for mkarchroot + devtools for mkarchroot
+ squashfs-tools for mksquashfs + squashfs-tools for mksquashfs
+ syslinux for isohybrid + libisoburn for xorriso
+ cdrkit for mkisofs
** For these hooks needs these packages (on target root-image) ** For these hooks needs these packages (on target root-image)
* archiso * archiso
@ -189,7 +188,7 @@ When make your custom boot-pendrive, you need to copy /arch directory to it.
[chroot] # echo 'Server = MIRROR/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist [chroot] # echo 'Server = MIRROR/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
* Install aditional packages needed for mkarchiso. * Install aditional packages needed for mkarchiso.
[chroot] # pacman -S devtools squashfs-tools syslinux cdrkit [chroot] # pacman -S devtools squashfs-tools libisoburn
* Build a basic iso. * Build a basic iso.
[chroot] # cp -r /usr/share/archiso/configs/baseline /tmp [chroot] # cp -r /usr/share/archiso/configs/baseline /tmp
@ -213,7 +212,7 @@ Note: These steps should be done with 64 bits support.
[host64] # linux32 mkarchroot /tmp/chroot32 base [host64] # linux32 mkarchroot /tmp/chroot32 base
[host64] # linux32 mkarchroot -r bash /tmp/chroot32 [host64] # linux32 mkarchroot -r bash /tmp/chroot32
[chroot32] # echo 'Server = MIRROR/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist [chroot32] # echo 'Server = MIRROR/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
[chroot32] # pacman -S devtools squashfs-tools syslinux cdrkit [chroot32] # pacman -S devtools squashfs-tools libisoburn
[chroot32] # exit [chroot32] # exit
* Prepare a 64 bits chroot enviroment. * Prepare a 64 bits chroot enviroment.
@ -221,7 +220,7 @@ Note: These steps should be done with 64 bits support.
[host64] # mkarchroot /tmp/chroot64 base [host64] # mkarchroot /tmp/chroot64 base
[host64] # mkarchroot -r bash /tmp/chroot64 [host64] # mkarchroot -r bash /tmp/chroot64
[chroot64] # echo 'Server = MIRROR/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist [chroot64] # echo 'Server = MIRROR/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
[chroot64] # pacman -S devtools squashfs-tools syslinux cdrkit [chroot64] # pacman -S devtools squashfs-tools libisoburn
[chroot64] # exit [chroot64] # exit
* Install archiso on both chroots. * Install archiso on both chroots.

View File

@ -313,6 +313,9 @@ command_iso () {
if [[ ! -f "${work_dir}/iso/isolinux/isolinux.bin" ]]; then if [[ ! -f "${work_dir}/iso/isolinux/isolinux.bin" ]]; then
_msg_error "The file '${work_dir}/iso/isolinux/isolinux.bin' does not exist." 1 _msg_error "The file '${work_dir}/iso/isolinux/isolinux.bin' does not exist." 1
fi fi
if [[ ! -f "${work_dir}/iso/isolinux/isohdpfx.bin" ]]; then
_msg_error "The file '${work_dir}/iso/isolinux/isohdpfx.bin' does not exist." 1
fi
_show_config iso _show_config iso
@ -323,17 +326,16 @@ command_iso () {
if [[ ${quiet} == "y" ]]; then if [[ ${quiet} == "y" ]]; then
_qflag="-quiet" _qflag="-quiet"
fi fi
mkisofs ${_qflag} -r -l \ xorriso -as mkisofs ${_qflag} -r -l \
-b isolinux/isolinux.bin -c isolinux/boot.cat \ -b isolinux/isolinux.bin -c isolinux/boot.cat \
-uid 0 -gid 0 \ -iso-level 3 \
-udf -allow-limited-size -iso-level 3 \
-input-charset utf-8 -p "prepared by mkarchiso" \
-no-emul-boot -boot-load-size 4 -boot-info-table \ -no-emul-boot -boot-load-size 4 -boot-info-table \
-isohybrid-mbr ${work_dir}/iso/isolinux/isohdpfx.bin \
-p "prepared by mkarchiso" \
-publisher "${iso_publisher}" \ -publisher "${iso_publisher}" \
-A "${iso_application}" \ -A "${iso_application}" \
-V "${iso_label}" \ -V "${iso_label}" \
-o "${out_dir}/${img_name}" "${work_dir}/iso/" -o "${out_dir}/${img_name}" "${work_dir}/iso/"
isohybrid "${out_dir}/${img_name}"
_msg_info "Done! | $(ls -sh ${out_dir}/${img_name})" _msg_info "Done! | $(ls -sh ${out_dir}/${img_name})"
fi fi
} }

View File

@ -60,6 +60,7 @@ make_isolinux() {
mkdir -p ${work_dir}/iso/isolinux mkdir -p ${work_dir}/iso/isolinux
sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg > ${work_dir}/iso/isolinux/isolinux.cfg sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg > ${work_dir}/iso/isolinux/isolinux.cfg
cp ${work_dir}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/ cp ${work_dir}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/
cp ${work_dir}/root-image/usr/lib/syslinux/isohdpfx.bin ${work_dir}/iso/isolinux/
: > ${work_dir}/build.${FUNCNAME} : > ${work_dir}/build.${FUNCNAME}
fi fi
} }

View File

@ -96,6 +96,7 @@ make_isolinux() {
mkdir -p ${work_dir}/iso/isolinux mkdir -p ${work_dir}/iso/isolinux
sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg > ${work_dir}/iso/isolinux/isolinux.cfg sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg > ${work_dir}/iso/isolinux/isolinux.cfg
cp ${work_dir}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/ cp ${work_dir}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/
cp ${work_dir}/root-image/usr/lib/syslinux/isohdpfx.bin ${work_dir}/iso/isolinux/
: > ${work_dir}/build.${FUNCNAME} : > ${work_dir}/build.${FUNCNAME}
fi fi
} }