diff --git a/README b/README index 88b3243..9c49946 100644 --- a/README +++ b/README @@ -101,8 +101,7 @@ if nothing is specified on command line. ** For mkarchiso script needs these packages (build host): + devtools for mkarchroot + squashfs-tools for mksquashfs - + syslinux for isohybrid - + cdrkit for mkisofs + + libisoburn for xorriso ** For these hooks needs these packages (on target root-image) * 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 * 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. [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 -r bash /tmp/chroot32 [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 * 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 -r bash /tmp/chroot64 [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 * Install archiso on both chroots. diff --git a/archiso/mkarchiso b/archiso/mkarchiso index bd8b7a9..6fb5d06 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -313,6 +313,9 @@ command_iso () { if [[ ! -f "${work_dir}/iso/isolinux/isolinux.bin" ]]; then _msg_error "The file '${work_dir}/iso/isolinux/isolinux.bin' does not exist." 1 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 @@ -323,17 +326,16 @@ command_iso () { if [[ ${quiet} == "y" ]]; then _qflag="-quiet" fi - mkisofs ${_qflag} -r -l \ + xorriso -as mkisofs ${_qflag} -r -l \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ - -uid 0 -gid 0 \ - -udf -allow-limited-size -iso-level 3 \ - -input-charset utf-8 -p "prepared by mkarchiso" \ + -iso-level 3 \ -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}" \ -A "${iso_application}" \ -V "${iso_label}" \ -o "${out_dir}/${img_name}" "${work_dir}/iso/" - isohybrid "${out_dir}/${img_name}" _msg_info "Done! | $(ls -sh ${out_dir}/${img_name})" fi } diff --git a/configs/baseline/build.sh b/configs/baseline/build.sh index f3e8676..b7d2b7b 100755 --- a/configs/baseline/build.sh +++ b/configs/baseline/build.sh @@ -60,6 +60,7 @@ make_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 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} fi } diff --git a/configs/releng/build.sh b/configs/releng/build.sh index feac4a8..e2ee1f9 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -96,6 +96,7 @@ make_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 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} fi }