From 14903dfc4579089288e1da82e92fb6eb6b891c66 Mon Sep 17 00:00:00 2001 From: Gerardo Exequiel Pozzi Date: Mon, 29 Aug 2011 01:45:49 -0300 Subject: [configs/*] Rename $name -> $iso_name, $version -> $iso_version Signed-off-by: Gerardo Exequiel Pozzi --- configs/baseline/build.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'configs/baseline') diff --git a/configs/baseline/build.sh b/configs/baseline/build.sh index aa75a20..24f301b 100755 --- a/configs/baseline/build.sh +++ b/configs/baseline/build.sh @@ -2,9 +2,9 @@ set -e -u -name=archlinux +iso_name=archlinux iso_label="ARCH_$(date +%Y%m)" -version=$(date +%Y.%m.%d) +iso_version=$(date +%Y.%m.%d) install_dir=arch arch=$(uname -m) work_dir=work @@ -79,7 +79,7 @@ make_prepare() { # Build ISO make_iso() { mkarchiso ${verbose} -D "${install_dir}" checksum "${work_dir}" - mkarchiso ${verbose} -D "${install_dir}" -L "${iso_label}" iso "${work_dir}" "${name}-${version}-${arch}.iso" + mkarchiso ${verbose} -D "${install_dir}" -L "${iso_label}" iso "${work_dir}" "${iso_name}-${iso_version}-${arch}.iso" } if [[ $verbose == "y" ]]; then -- cgit v1.2.3-54-g00ecf From ad2385c08263b1edf640da0c9b69bda9995a582f Mon Sep 17 00:00:00 2001 From: Gerardo Exequiel Pozzi Date: Mon, 29 Aug 2011 01:45:49 -0300 Subject: [archiso] Use -w instead of cmd , add -o Default (if not specified) -w work -o out. -o is only used by 'iso' command. Adjust build.sh of releng and baseline profile to reflect this change. - work <- $work_dir - out <- $out_dir Signed-off-by: Gerardo Exequiel Pozzi --- archiso/mkarchiso | 37 ++++++++++++++++++++----------------- configs/baseline/build.sh | 11 ++++++----- configs/releng/build.sh | 21 +++++++++++---------- 3 files changed, 37 insertions(+), 32 deletions(-) (limited to 'configs/baseline') diff --git a/archiso/mkarchiso b/archiso/mkarchiso index 28693b6..bd8b7a9 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -11,6 +11,8 @@ export iso_label="ARCH_$(date +%Y%m)" iso_publisher="Arch Linux " iso_application="Arch Linux Live/Rescue CD" install_dir="arch" +work_dir="work" +out_dir="out" # Show an INFO message # $1: message string @@ -104,17 +106,21 @@ _usage () echo " -D Set an install_dir. All files will by located here." echo " Default ${install_dir}" echo " NOTE: Max 8 characters, use only [a-z0-9]" + echo " -w Set the working directory" + echo " Default ${work_dir}" + echo " -o Set the output directory" + echo " Default ${out_dir}" echo " -v Enable verbose output" echo " -h This message" echo " commands:" - echo " create " + echo " create" echo " create a base directory layout to work with" echo " includes all specified packages" - echo " prepare " + echo " prepare" echo " build all images" - echo " checksum " + echo " checksum" echo " make a checksum.md5 for self-test" - echo " iso " + echo " iso " echo " build an iso image from the working dir" exit ${1} } @@ -310,7 +316,8 @@ command_iso () { _show_config iso - if _is_directory_changed "${work_dir}/iso" "${img_name}"; then + if _is_directory_changed "${work_dir}/iso" "${out_dir}/${img_name}"; then + mkdir -p ${out_dir} _msg_info "Creating ISO image..." local _qflag="" if [[ ${quiet} == "y" ]]; then @@ -325,9 +332,9 @@ command_iso () { -publisher "${iso_publisher}" \ -A "${iso_application}" \ -V "${iso_label}" \ - -o "${img_name}" "${work_dir}/iso/" - isohybrid "${img_name}" - _msg_info "Done! | $(ls -sh ${img_name})" + -o "${out_dir}/${img_name}" "${work_dir}/iso/" + isohybrid "${out_dir}/${img_name}" + _msg_info "Done! | $(ls -sh ${out_dir}/${img_name})" fi } @@ -406,7 +413,7 @@ if [[ ${EUID} -ne 0 ]]; then _msg_error "This script must be run as root." 1 fi -while getopts 'p:C:L:P:A:D:fvh' arg; do +while getopts 'p:C:L:P:A:D:w:o:vh' arg; do case "${arg}" in p) pkg_list="${pkg_list} ${OPTARG}" ;; C) pacman_conf="${OPTARG}" ;; @@ -414,6 +421,8 @@ while getopts 'p:C:L:P:A:D:fvh' arg; do P) iso_publisher="${OPTARG}" ;; A) iso_application="${OPTARG}" ;; D) install_dir="${OPTARG}" ;; + w) work_dir="${OPTARG}" ;; + o) out_dir="${OPTARG}" ;; v) quiet="n" ;; h|?) _usage 0 ;; *) @@ -431,12 +440,6 @@ if [[ $# -lt 1 ]]; then fi command_name="${1}" -if [[ $# -lt 2 ]]; then - _msg_error "No working directory specified" 0 - _usage 1 -fi -work_dir="${2}" - case "${command_name}" in create) command_create @@ -448,11 +451,11 @@ case "${command_name}" in command_checksum ;; iso) - if [[ $# -lt 3 ]]; then + if [[ $# -lt 2 ]]; then _msg_error "No image specified" 0 _usage 1 fi - img_name="${3}" + img_name="${2}" command_iso ;; *) diff --git a/configs/baseline/build.sh b/configs/baseline/build.sh index 24f301b..f3e8676 100755 --- a/configs/baseline/build.sh +++ b/configs/baseline/build.sh @@ -8,14 +8,15 @@ iso_version=$(date +%Y.%m.%d) install_dir=arch arch=$(uname -m) work_dir=work +out_dir=out verbose="n" script_path=$(readlink -f ${0%/*}) # Base installation (root-image) make_basefs() { - mkarchiso ${verbose} -D "${install_dir}" -p "base" create "${work_dir}" - mkarchiso ${verbose} -D "${install_dir}" -p "syslinux" create "${work_dir}" + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -p "base" create + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -p "syslinux" create } # Copy mkinitcpio archiso hooks (root-image) @@ -73,13 +74,13 @@ make_aitab() { # Build all filesystem images specified in aitab (.fs .fs.sfs .sfs) make_prepare() { - mkarchiso ${verbose} -D "${install_dir}" prepare "${work_dir}" + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" prepare } # Build ISO make_iso() { - mkarchiso ${verbose} -D "${install_dir}" checksum "${work_dir}" - mkarchiso ${verbose} -D "${install_dir}" -L "${iso_label}" iso "${work_dir}" "${iso_name}-${iso_version}-${arch}.iso" + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" checksum + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-${arch}.iso" } if [[ $verbose == "y" ]]; then diff --git a/configs/releng/build.sh b/configs/releng/build.sh index 1f26408..7660ee9 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -8,19 +8,20 @@ iso_version=$(date +%Y.%m.%d) install_dir=arch arch=$(uname -m) work_dir=work +out_dir=out verbose="n" script_path=$(readlink -f ${0%/*}) # Base installation (root-image) make_basefs() { - mkarchiso ${verbose} -D "${install_dir}" -p "base" create "${work_dir}" - mkarchiso ${verbose} -D "${install_dir}" -p "memtest86+ syslinux mkinitcpio-nfs-utils nbd" create "${work_dir}" + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -p "base" create + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -p "memtest86+ syslinux mkinitcpio-nfs-utils nbd" create } # Additional packages (root-image) make_packages() { - mkarchiso ${verbose} -D "${install_dir}" -p "$(grep -v ^# ${script_path}/packages.${arch})" create "${work_dir}" + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -p "$(grep -v ^# ${script_path}/packages.${arch})" create } # Customize installation (root-image) @@ -156,15 +157,15 @@ make_aitab() { # Build all filesystem images specified in aitab (.fs .fs.sfs .sfs) make_prepare() { - mkarchiso ${verbose} -D "${install_dir}" prepare "${work_dir}" + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" prepare } # Build ISO # args: $1 (core | netinstall) make_iso() { local _iso_type=${1} - mkarchiso ${verbose} -D "${install_dir}" checksum "${work_dir}" - mkarchiso ${verbose} -D "${install_dir}" -L "${iso_label}" iso "${work_dir}" "${iso_name}-${iso_version}-${_iso_type}-${arch}.iso" + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" checksum + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-${_iso_type}-${arch}.iso" } # Build dual-iso images from ${work_dir}/i686/iso and ${work_dir}/x86_64/iso @@ -207,8 +208,8 @@ make_dual() { sed "s|%ARCHISO_LABEL%|${iso_label}|g; s|%INSTALL_DIR%|${install_dir}|g" ${_cfg} > ${work_dir}/dual/iso/${install_dir}/boot/syslinux/${_cfg##*/} done - mkarchiso ${verbose} -D "${install_dir}" checksum "${work_dir}/dual" - mkarchiso ${verbose} -D "${install_dir}" -L "${iso_label}" iso "${work_dir}/dual" "${iso_name}-${iso_version}-${_iso_type}-dual.iso" + mkarchiso ${verbose} -w "${work_dir}/dual" -D "${install_dir}" checksum + mkarchiso ${verbose} -w "${work_dir}/dual" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-${_iso_type}-dual.iso" : > ${work_dir}/dual/build.${FUNCNAME}_${_iso_type} fi } @@ -298,11 +299,11 @@ case "${command_name}" in ;; clean_single) rm -rf ${work_dir} - rm -f ${iso_name}-${iso_version}-*-${arch}.iso + rm -f ${out_dir}/${iso_name}-${iso_version}-*-${arch}.iso ;; clean_dual) rm -rf ${work_dir}/dual - rm -f ${iso_name}-${iso_version}-*-dual.iso + rm -f ${out_dir}/${iso_name}-${iso_version}-*-dual.iso ;; *) echo "Invalid command name '${command_name}'" -- cgit v1.2.3-54-g00ecf From 14743f4202eeffca4d80105c7e7ad91bc0af4e88 Mon Sep 17 00:00:00 2001 From: Gerardo Exequiel Pozzi Date: Mon, 29 Aug 2011 01:47:57 -0300 Subject: [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 --- README | 9 ++++----- archiso/mkarchiso | 12 +++++++----- configs/baseline/build.sh | 1 + configs/releng/build.sh | 1 + 4 files changed, 13 insertions(+), 10 deletions(-) (limited to 'configs/baseline') 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 } -- cgit v1.2.3-54-g00ecf From bfef0bc1eb397dd2a2f8a67460df78fe7ab3a964 Mon Sep 17 00:00:00 2001 From: Gerardo Exequiel Pozzi Date: Wed, 12 Oct 2011 14:40:19 -0300 Subject: [archiso] Unify -> Signed-off-by: Gerardo Exequiel Pozzi --- archiso/hooks/archiso_pxe_nbd | 4 ++-- configs/baseline/build.sh | 2 +- .../releng/root-image/etc/rc.d/functions.d/automated_script | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'configs/baseline') diff --git a/archiso/hooks/archiso_pxe_nbd b/archiso/hooks/archiso_pxe_nbd index e3e27e7..cc21c2b 100644 --- a/archiso/hooks/archiso_pxe_nbd +++ b/archiso/hooks/archiso_pxe_nbd @@ -8,10 +8,10 @@ run_hook () { if [ -n "${BOOTIF}" ]; then bootif_mac=${BOOTIF#01-} bootif_mac=${bootif_mac//-/:} - bootif_dev=$(grep -l $bootif_mac /sys/class/net/*/address) + bootif_dev=$(grep -l ${bootif_mac} /sys/class/net/*/address) bootif_dev=${bootif_dev#/sys/class/net/} bootif_dev=${bootif_dev%/address} - ip="$ip::$bootif_dev" + ip="${ip}::${bootif_dev}" fi # setup network and save some values diff --git a/configs/baseline/build.sh b/configs/baseline/build.sh index b7d2b7b..ab7a88e 100755 --- a/configs/baseline/build.sh +++ b/configs/baseline/build.sh @@ -84,7 +84,7 @@ make_iso() { mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-${arch}.iso" } -if [[ $verbose == "y" ]]; then +if [[ ${verbose} == "y" ]]; then verbose="-v" else verbose="" diff --git a/configs/releng/root-image/etc/rc.d/functions.d/automated_script b/configs/releng/root-image/etc/rc.d/functions.d/automated_script index 7a35acb..b89ad9e 100644 --- a/configs/releng/root-image/etc/rc.d/functions.d/automated_script +++ b/configs/releng/root-image/etc/rc.d/functions.d/automated_script @@ -1,16 +1,16 @@ automated_script () { script="$(kernel_cmdline script)" - if [[ -n "$script" ]]; then + if [[ -n "${script}" ]]; then stat_busy "Configuring $script" - if [[ "$script" =~ ^http:// || "$script" =~ ^ftp:// ]]; then - wget "$script" -q -O /tmp/startup_script >/dev/null + if [[ "${script}" =~ ^http:// || "${script}" =~ ^ftp:// ]]; then + wget "${script}" -q -O /tmp/startup_script >/dev/null rt=$? else - cp "$script" /tmp/startup_script + cp "${script}" /tmp/startup_script rt=$? fi - if [ $rt -eq 0 ]; then + if [ ${rt} -eq 0 ]; then chmod +x /tmp/startup_script echo -e '\nif [ $(tty) = "/dev/tty1" ]; then\n /tmp/startup_script\nfi\n' >> /root/.bash_profile stat_done -- cgit v1.2.3-54-g00ecf From 469b5b2c5824dfe5960ef7ad0a836fa949039613 Mon Sep 17 00:00:00 2001 From: Gerardo Exequiel Pozzi Date: Sat, 5 Nov 2011 21:03:35 -0300 Subject: [archiso] install hook cleanups * Remove IDE stuff. * Remove modules that can be added via relevant hooks. * Replace sata with virtio in baseline profile. Signed-off-by: Gerardo Exequiel Pozzi --- archiso/install/archiso | 6 +----- configs/baseline/mkinitcpio.conf | 2 +- configs/releng/mkinitcpio.conf | 2 +- 3 files changed, 3 insertions(+), 7 deletions(-) (limited to 'configs/baseline') diff --git a/archiso/install/archiso b/archiso/install/archiso index d32c8ab..0bb0d0f 100644 --- a/archiso/install/archiso +++ b/archiso/install/archiso @@ -1,10 +1,6 @@ build () { - MODULES="cdrom ide-cd_mod ide-core ide-generic loop dm-mod dm-snapshot squashfs isofs $(all_modules '/kernel/fs' | grep -v "nls")" - MODULES="${MODULES} $(checked_modules "/usb/host" | grep -ve "_cs" -e "sl811_hcd" -e "isp116x_hcd")" - MODULES="${MODULES} usb_storage sd_mod sr_mod" - MODULES="${MODULES} virtio_pci virtio_blk" - MODULES=$(echo ${MODULES}) #trim whitespace + MODULES="cdrom loop dm-snapshot" BINARIES="" FILES="" diff --git a/configs/baseline/mkinitcpio.conf b/configs/baseline/mkinitcpio.conf index 389ec51..a1aafa8 100644 --- a/configs/baseline/mkinitcpio.conf +++ b/configs/baseline/mkinitcpio.conf @@ -1,2 +1,2 @@ -HOOKS="base udev archiso sata filesystems" +HOOKS="base udev archiso virtio filesystems" COMPRESSION="xz" diff --git a/configs/releng/mkinitcpio.conf b/configs/releng/mkinitcpio.conf index f6b846c..72e6b2a 100644 --- a/configs/releng/mkinitcpio.conf +++ b/configs/releng/mkinitcpio.conf @@ -1,2 +1,2 @@ -HOOKS="base udev memdisk archiso_shutdown archiso archiso_pxe_nbd archiso_loop_mnt pata scsi sata usb fw pcmcia filesystems usbinput" +HOOKS="base udev memdisk archiso_shutdown archiso archiso_pxe_nbd archiso_loop_mnt pata scsi sata virtio usb fw pcmcia filesystems usbinput" COMPRESSION="xz" -- cgit v1.2.3-54-g00ecf From 40965461a4a730881a153432e66521734b1b965c Mon Sep 17 00:00:00 2001 From: Gerardo Exequiel Pozzi Date: Mon, 28 Nov 2011 10:35:05 -0300 Subject: [configs/*] chroot to root-image for initramfs build Avoid issues with -b BASEDIR (*). We became independent of the mkinitcpio version of the build environment. (*) For example of a recent issue: http://mailman.archlinux.org/pipermail/arch-projects/2011-November/002202.html http://mailman.archlinux.org/pipermail/arch-projects/2011-November/002205.html Signed-off-by: Gerardo Exequiel Pozzi --- configs/baseline/build.sh | 8 +++----- configs/releng/build.sh | 41 ++++++++++++++++++++--------------------- 2 files changed, 23 insertions(+), 26 deletions(-) (limited to 'configs/baseline') diff --git a/configs/baseline/build.sh b/configs/baseline/build.sh index ab7a88e..36cab15 100755 --- a/configs/baseline/build.sh +++ b/configs/baseline/build.sh @@ -24,6 +24,7 @@ make_setup_mkinitcpio() { if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then cp /lib/initcpio/hooks/archiso ${work_dir}/root-image/lib/initcpio/hooks cp /lib/initcpio/install/archiso ${work_dir}/root-image/lib/initcpio/install + cp ${script_path}/mkinitcpio.conf ${work_dir}/root-image/etc/mkinitcpio-archiso.conf : > ${work_dir}/build.${FUNCNAME} fi } @@ -32,11 +33,8 @@ make_setup_mkinitcpio() { make_boot() { if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then mkdir -p ${work_dir}/iso/${install_dir}/boot/${arch} - mkinitcpio \ - -c ${script_path}/mkinitcpio.conf \ - -b ${work_dir}/root-image \ - -k /boot/vmlinuz-linux \ - -g ${work_dir}/iso/${install_dir}/boot/${arch}/archiso.img + mkarchroot -n -r "mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/archiso.img" ${work_dir}/root-image + cp ${work_dir}/root-image/boot/archiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/archiso.img cp ${work_dir}/root-image/boot/vmlinuz-linux ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz : > ${work_dir}/build.${FUNCNAME} fi diff --git a/configs/releng/build.sh b/configs/releng/build.sh index ba5cd2a..0859a17 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -24,21 +24,6 @@ make_packages() { mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -p "$(grep -v ^# ${script_path}/packages.${arch})" create } -# Customize installation (root-image) -make_customize_root_image() { - if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then - cp -af ${script_path}/root-image ${work_dir} - chmod 750 ${work_dir}/root-image/etc/sudoers.d - chmod 440 ${work_dir}/root-image/etc/sudoers.d/g_wheel - mkdir -p ${work_dir}/root-image/etc/pacman.d - wget -O ${work_dir}/root-image/etc/pacman.d/mirrorlist http://www.archlinux.org/mirrorlist/all/ - sed -i "s/#Server/Server/g" ${work_dir}/root-image/etc/pacman.d/mirrorlist - chroot ${work_dir}/root-image /usr/sbin/locale-gen - chroot ${work_dir}/root-image /usr/sbin/useradd -m -p "" -g users -G "audio,disk,optical,wheel" arch - : > ${work_dir}/build.${FUNCNAME} - fi -} - # Copy mkinitcpio archiso hooks (root-image) make_setup_mkinitcpio() { if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then @@ -49,6 +34,7 @@ make_setup_mkinitcpio() { done cp /lib/initcpio/archiso_shutdown ${work_dir}/root-image/lib/initcpio cp /lib/initcpio/archiso_pxe_nbd ${work_dir}/root-image/lib/initcpio + cp ${script_path}/mkinitcpio.conf ${work_dir}/root-image/etc/mkinitcpio-archiso.conf : > ${work_dir}/build.${FUNCNAME} fi } @@ -59,11 +45,8 @@ make_boot() { local _src=${work_dir}/root-image local _dst_boot=${work_dir}/iso/${install_dir}/boot mkdir -p ${_dst_boot}/${arch} - mkinitcpio \ - -c ${script_path}/mkinitcpio.conf \ - -b ${_src} \ - -k /boot/vmlinuz-linux \ - -g ${_dst_boot}/${arch}/archiso.img + mkarchroot -n -r "mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/archiso.img" ${_src} + mv ${_src}/boot/archiso.img ${_dst_boot}/${arch}/archiso.img mv ${_src}/boot/vmlinuz-linux ${_dst_boot}/${arch}/vmlinuz cp ${_src}/boot/memtest86+/memtest.bin ${_dst_boot}/memtest cp ${_src}/usr/share/licenses/common/GPL2/license.txt ${_dst_boot}/memtest.COPYING @@ -103,6 +86,22 @@ make_isolinux() { fi } +# Customize installation (root-image) +# NOTE: mkarchroot should not be executed after this function is executed, otherwise will overwrites some custom files. +make_customize_root_image() { + if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then + cp -af ${script_path}/root-image ${work_dir} + chmod 750 ${work_dir}/root-image/etc/sudoers.d + chmod 440 ${work_dir}/root-image/etc/sudoers.d/g_wheel + mkdir -p ${work_dir}/root-image/etc/pacman.d + wget -O ${work_dir}/root-image/etc/pacman.d/mirrorlist http://www.archlinux.org/mirrorlist/all/ + sed -i "s/#Server/Server/g" ${work_dir}/root-image/etc/pacman.d/mirrorlist + chroot ${work_dir}/root-image /usr/sbin/locale-gen + chroot ${work_dir}/root-image /usr/sbin/useradd -m -p "" -g users -G "audio,disk,optical,wheel" arch + : > ${work_dir}/build.${FUNCNAME} + fi +} + # Split out /lib/modules from root-image (makes more "dual-iso" friendly) make_lib_modules() { if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then @@ -247,11 +246,11 @@ clean_dual () make_common_single() { make_basefs make_packages - make_customize_root_image make_setup_mkinitcpio make_boot make_syslinux make_isolinux + make_customize_root_image make_lib_modules make_usr_share make_aitab $1 -- cgit v1.2.3-54-g00ecf From 7cb67d42fa7784e97648d7eb81f1947c82e8024d Mon Sep 17 00:00:00 2001 From: Gerardo Exequiel Pozzi Date: Fri, 2 Dec 2011 00:44:02 -0300 Subject: [configs/*] syslinux: Use UI instead of DEFAULT for *menu.c32 * UI is more correct than DEFAULT for simple menu system. * Remove TIMEOUT * Remove PROMPT 0, this is the default value. Signed-off-by: Gerardo Exequiel Pozzi --- configs/baseline/syslinux/syslinux.cfg | 6 +----- configs/releng/syslinux.dual/archiso_head.cfg | 5 +---- configs/releng/syslinux.dual/archiso_tail.cfg | 2 -- configs/releng/syslinux/archiso_head.cfg | 5 +---- configs/releng/syslinux/archiso_tail.cfg | 2 -- 5 files changed, 3 insertions(+), 17 deletions(-) (limited to 'configs/baseline') diff --git a/configs/baseline/syslinux/syslinux.cfg b/configs/baseline/syslinux/syslinux.cfg index 5ae9823..df63af6 100644 --- a/configs/baseline/syslinux/syslinux.cfg +++ b/configs/baseline/syslinux/syslinux.cfg @@ -1,12 +1,8 @@ -DEFAULT menu.c32 -PROMPT 0 +UI menu.c32 MENU TITLE Arch Linux -TIMEOUT 300 LABEL arch MENU LABEL Arch Linux LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz INITRD /%INSTALL_DIR%/boot/%ARCH%/archiso.img APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% - -ONTIMEOUT arch diff --git a/configs/releng/syslinux.dual/archiso_head.cfg b/configs/releng/syslinux.dual/archiso_head.cfg index 929872e..91d6e21 100644 --- a/configs/releng/syslinux.dual/archiso_head.cfg +++ b/configs/releng/syslinux.dual/archiso_head.cfg @@ -1,15 +1,12 @@ SERIAL 0 38400 -DEFAULT boot/syslinux/vesamenu.c32 -PROMPT 0 +UI boot/syslinux/vesamenu.c32 MENU TITLE Arch Linux MENU BACKGROUND boot/syslinux/splash.png -TIMEOUT 3000 MENU WIDTH 78 MENU MARGIN 4 MENU ROWS 7 MENU VSHIFT 10 -MENU TIMEOUTROW 13 MENU TABMSGROW 11 MENU CMDLINEROW 11 MENU HELPMSGROW 16 diff --git a/configs/releng/syslinux.dual/archiso_tail.cfg b/configs/releng/syslinux.dual/archiso_tail.cfg index a2040d1..a55548c 100644 --- a/configs/releng/syslinux.dual/archiso_tail.cfg +++ b/configs/releng/syslinux.dual/archiso_tail.cfg @@ -25,5 +25,3 @@ COM32 boot/syslinux/reboot.c32 LABEL poweroff MENU LABEL Power Off COMBOOT boot/syslinux/poweroff.com - -ONTIMEOUT arch32 diff --git a/configs/releng/syslinux/archiso_head.cfg b/configs/releng/syslinux/archiso_head.cfg index d9dee2e..508373d 100644 --- a/configs/releng/syslinux/archiso_head.cfg +++ b/configs/releng/syslinux/archiso_head.cfg @@ -1,15 +1,12 @@ SERIAL 0 38400 -DEFAULT boot/syslinux/vesamenu.c32 -PROMPT 0 +UI boot/syslinux/vesamenu.c32 MENU TITLE Arch Linux MENU BACKGROUND boot/syslinux/splash.png -TIMEOUT 3000 MENU WIDTH 78 MENU MARGIN 4 MENU ROWS 6 MENU VSHIFT 10 -MENU TIMEOUTROW 13 MENU TABMSGROW 11 MENU CMDLINEROW 11 MENU HELPMSGROW 16 diff --git a/configs/releng/syslinux/archiso_tail.cfg b/configs/releng/syslinux/archiso_tail.cfg index 984aace..a55548c 100644 --- a/configs/releng/syslinux/archiso_tail.cfg +++ b/configs/releng/syslinux/archiso_tail.cfg @@ -25,5 +25,3 @@ COM32 boot/syslinux/reboot.c32 LABEL poweroff MENU LABEL Power Off COMBOOT boot/syslinux/poweroff.com - -ONTIMEOUT arch -- cgit v1.2.3-54-g00ecf From 1f66a737de00016f4d78ab340cccbca4e8ec430c Mon Sep 17 00:00:00 2001 From: Gerardo Exequiel Pozzi Date: Sun, 4 Mar 2012 20:58:58 -0300 Subject: [archiso] /lib/initcpio -> /usr/lib/initcpio Needs mkinitpcio >= 0.8.4 Next changes will be for mdadm and mkinitcpio-nfs-utils: * /lib/initcpio/udev/11-dm-initramfs.rules * /lib/initcpio/ipconfig , /lib/initcpio/nfsmount Signed-off-by: Gerardo Exequiel Pozzi --- archiso/Makefile | 68 ++++++++++++++++++++-------------------- archiso/install/archiso_pxe_nbd | 2 +- archiso/install/archiso_shutdown | 2 +- configs/baseline/build.sh | 4 +-- configs/releng/build.sh | 10 +++--- 5 files changed, 43 insertions(+), 43 deletions(-) (limited to 'configs/baseline') diff --git a/archiso/Makefile b/archiso/Makefile index cf7cd05..28868bf 100644 --- a/archiso/Makefile +++ b/archiso/Makefile @@ -10,23 +10,23 @@ install-program: install-hooks: # hooks/install are needed by mkinitcpio - install -D -m 644 hooks/archiso $(DESTDIR)/lib/initcpio/hooks/archiso - install -D -m 644 install/archiso $(DESTDIR)/lib/initcpio/install/archiso - install -D -m 755 archiso_shutdown $(DESTDIR)/lib/initcpio/archiso_shutdown - install -D -m 644 hooks/archiso_shutdown $(DESTDIR)/lib/initcpio/hooks/archiso_shutdown - install -D -m 644 install/archiso_shutdown $(DESTDIR)/lib/initcpio/install/archiso_shutdown - install -D -m 644 archiso_pxe_nbd $(DESTDIR)/lib/initcpio/archiso_pxe_nbd - install -D -m 644 hooks/archiso_pxe_common $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_common - install -D -m 644 install/archiso_pxe_common $(DESTDIR)/lib/initcpio/install/archiso_pxe_common - install -D -m 644 hooks/archiso_pxe_nbd $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_nbd - install -D -m 644 install/archiso_pxe_nbd $(DESTDIR)/lib/initcpio/install/archiso_pxe_nbd - install -D -m 644 hooks/archiso_pxe_http $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_http - install -D -m 644 install/archiso_pxe_http $(DESTDIR)/lib/initcpio/install/archiso_pxe_http - install -D -m 644 hooks/archiso_pxe_nfs $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_nfs - install -D -m 644 install/archiso_pxe_nfs $(DESTDIR)/lib/initcpio/install/archiso_pxe_nfs - install -D -m 644 hooks/archiso_loop_mnt $(DESTDIR)/lib/initcpio/hooks/archiso_loop_mnt - install -D -m 644 install/archiso_loop_mnt $(DESTDIR)/lib/initcpio/install/archiso_loop_mnt - install -D -m 644 install/archiso_kms $(DESTDIR)/lib/initcpio/install/archiso_kms + install -D -m 644 hooks/archiso $(DESTDIR)/usr/lib/initcpio/hooks/archiso + install -D -m 644 install/archiso $(DESTDIR)/usr/lib/initcpio/install/archiso + install -D -m 755 archiso_shutdown $(DESTDIR)/usr/lib/initcpio/archiso_shutdown + install -D -m 644 hooks/archiso_shutdown $(DESTDIR)/usr/lib/initcpio/hooks/archiso_shutdown + install -D -m 644 install/archiso_shutdown $(DESTDIR)/usr/lib/initcpio/install/archiso_shutdown + install -D -m 644 archiso_pxe_nbd $(DESTDIR)/usr/lib/initcpio/archiso_pxe_nbd + install -D -m 644 hooks/archiso_pxe_common $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_common + install -D -m 644 install/archiso_pxe_common $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_common + install -D -m 644 hooks/archiso_pxe_nbd $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_nbd + install -D -m 644 install/archiso_pxe_nbd $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_nbd + install -D -m 644 hooks/archiso_pxe_http $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_http + install -D -m 644 install/archiso_pxe_http $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_http + install -D -m 644 hooks/archiso_pxe_nfs $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_nfs + install -D -m 644 install/archiso_pxe_nfs $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_nfs + install -D -m 644 hooks/archiso_loop_mnt $(DESTDIR)/usr/lib/initcpio/hooks/archiso_loop_mnt + install -D -m 644 install/archiso_loop_mnt $(DESTDIR)/usr/lib/initcpio/install/archiso_loop_mnt + install -D -m 644 install/archiso_kms $(DESTDIR)/usr/lib/initcpio/install/archiso_kms install-examples: # install examples @@ -40,23 +40,23 @@ install-doc: uninstall: rm -f $(DESTDIR)/usr/sbin/mkarchiso rm -f $(DESTDIR)/usr/bin/testiso - rm -f $(DESTDIR)/lib/initcpio/hooks/archiso - rm -f $(DESTDIR)/lib/initcpio/install/archiso - rm -f $(DESTDIR)/lib/initcpio/archiso_shutdown - rm -f $(DESTDIR)/lib/initcpio/hooks/archiso_shutdown - rm -f $(DESTDIR)/lib/initcpio/install/archiso_shutdown - rm -f $(DESTDIR)/lib/initcpio/archiso_pxe_nbd - rm -f $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_common - rm -f $(DESTDIR)/lib/initcpio/install/archiso_pxe_common - rm -f $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_nbd - rm -f $(DESTDIR)/lib/initcpio/install/archiso_pxe_nbd - rm -f $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_http - rm -f $(DESTDIR)/lib/initcpio/install/archiso_pxe_http - rm -f $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_nfs - rm -f $(DESTDIR)/lib/initcpio/install/archiso_pxe_nfs - rm -f $(DESTDIR)/lib/initcpio/hooks/archiso_loop_mnt - rm -f $(DESTDIR)/lib/initcpio/install/archiso_loop_mnt - rm -f $(DESTDIR)/lib/initcpio/install/archiso_kms + rm -f $(DESTDIR)/usr/lib/initcpio/hooks/archiso + rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso + rm -f $(DESTDIR)/usr/lib/initcpio/archiso_shutdown + rm -f $(DESTDIR)/usr/lib/initcpio/hooks/archiso_shutdown + rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso_shutdown + rm -f $(DESTDIR)/usr/lib/initcpio/archiso_pxe_nbd + rm -f $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_common + rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_common + rm -f $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_nbd + rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_nbd + rm -f $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_http + rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_http + rm -f $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_nfs + rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_nfs + rm -f $(DESTDIR)/usr/lib/initcpio/hooks/archiso_loop_mnt + rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso_loop_mnt + rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso_kms rm -rf $(DESTDIR)/usr/share/archiso/ .PHONY: install install-program install-hooks install-examples install-doc uninstall diff --git a/archiso/install/archiso_pxe_nbd b/archiso/install/archiso_pxe_nbd index 0784e2c..1ee3910 100644 --- a/archiso/install/archiso_pxe_nbd +++ b/archiso/install/archiso_pxe_nbd @@ -6,7 +6,7 @@ build() { add_binary nbd-client - add_file /lib/initcpio/archiso_pxe_nbd /archiso_pxe_nbd + add_file /usr/lib/initcpio/archiso_pxe_nbd /archiso_pxe_nbd } help() { diff --git a/archiso/install/archiso_shutdown b/archiso/install/archiso_shutdown index 7ef3137..87b8297 100644 --- a/archiso/install/archiso_shutdown +++ b/archiso/install/archiso_shutdown @@ -3,7 +3,7 @@ build() { SCRIPT="archiso_shutdown" - add_file /lib/initcpio/archiso_shutdown /shutdown + add_file /usr/lib/initcpio/archiso_shutdown /shutdown } help() { diff --git a/configs/baseline/build.sh b/configs/baseline/build.sh index 36cab15..1f2251d 100755 --- a/configs/baseline/build.sh +++ b/configs/baseline/build.sh @@ -22,8 +22,8 @@ make_basefs() { # Copy mkinitcpio archiso hooks (root-image) make_setup_mkinitcpio() { if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then - cp /lib/initcpio/hooks/archiso ${work_dir}/root-image/lib/initcpio/hooks - cp /lib/initcpio/install/archiso ${work_dir}/root-image/lib/initcpio/install + cp /usr/lib/initcpio/hooks/archiso ${work_dir}/root-image/usr/lib/initcpio/hooks + cp /usr/lib/initcpio/install/archiso ${work_dir}/root-image/usr/lib/initcpio/install cp ${script_path}/mkinitcpio.conf ${work_dir}/root-image/etc/mkinitcpio-archiso.conf : > ${work_dir}/build.${FUNCNAME} fi diff --git a/configs/releng/build.sh b/configs/releng/build.sh index 4967863..42836a9 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -29,12 +29,12 @@ make_setup_mkinitcpio() { if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then local _hook for _hook in archiso archiso_shutdown archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs archiso_loop_mnt; do - cp /lib/initcpio/hooks/${_hook} ${work_dir}/root-image/lib/initcpio/hooks - cp /lib/initcpio/install/${_hook} ${work_dir}/root-image/lib/initcpio/install + cp /usr/lib/initcpio/hooks/${_hook} ${work_dir}/root-image/usr/lib/initcpio/hooks + cp /usr/lib/initcpio/install/${_hook} ${work_dir}/root-image/usr/lib/initcpio/install done - cp /lib/initcpio/install/archiso_kms ${work_dir}/root-image/lib/initcpio/install - cp /lib/initcpio/archiso_shutdown ${work_dir}/root-image/lib/initcpio - cp /lib/initcpio/archiso_pxe_nbd ${work_dir}/root-image/lib/initcpio + cp /usr/lib/initcpio/install/archiso_kms ${work_dir}/root-image/usr/lib/initcpio/install + cp /usr/lib/initcpio/archiso_shutdown ${work_dir}/root-image/usr/lib/initcpio + cp /usr/lib/initcpio/archiso_pxe_nbd ${work_dir}/root-image/usr/lib/initcpio cp ${script_path}/mkinitcpio.conf ${work_dir}/root-image/etc/mkinitcpio-archiso.conf : > ${work_dir}/build.${FUNCNAME} fi -- cgit v1.2.3-54-g00ecf From 3d05bef2b96c84126e6c8921e834f2655a4ec730 Mon Sep 17 00:00:00 2001 From: Gerardo Exequiel Pozzi Date: Fri, 16 Mar 2012 01:48:10 -0300 Subject: [archiso] Implement own chroot functions in mkarchiso * Remove devtools dependency. * Better control over what files are touched inside chroot (root-image). Now: NONE :) * Two new commands: + init: To install {base} group and other needed packages (syslinux for now) + run: If we want to run some command inside chroot (mkinitcpio, locale-gen, useradd, etc etc...) * Renamed command: "created" to "install", says much better what does. Signed-off-by: Gerardo Exequiel Pozzi --- archiso/mkarchiso | 103 ++++++++++++++++++++++++++++++++++++++-------- configs/baseline/build.sh | 7 ++-- configs/releng/build.sh | 19 +++++---- 3 files changed, 102 insertions(+), 27 deletions(-) (limited to 'configs/baseline') diff --git a/archiso/mkarchiso b/archiso/mkarchiso index b3aa5cd..df3d354 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -5,6 +5,7 @@ set -e -u app_name=${0##*/} arch=$(uname -m) pkg_list="" +run_cmd="" quiet="y" pacman_conf="/etc/pacman.conf" export iso_label="ARCH_$(date +%Y%m)" @@ -44,6 +45,44 @@ _show_space_usage () { _msg_info "Total: ${_total} MiB (100%) | Used: ${_used} MiB (${_pct_u}) | Avail: ${_avail} MiB ($((100 - ${_pct_u%\%}))%)" } +_chroot_mount () { + mount -t devtmpfs dev "${work_dir}/root-image/dev" + mount -t devpts devpts "${work_dir}/root-image/dev/pts" + mount -t tmpfs devshm "${work_dir}/root-image/dev/shm" + mount -t proc proc "${work_dir}/root-image/proc" + mount -t tmpfs run "${work_dir}/root-image/run" + mount -t sysfs sys "${work_dir}/root-image/sys" + mount -t tmpfs tmp "${work_dir}/root-image/tmp" + + trap '_chroot_umount' EXIT HUP INT TERM +} + +_chroot_umount () { + umount "${work_dir}/root-image/tmp" + umount "${work_dir}/root-image/sys" + umount "${work_dir}/root-image/run" + umount "${work_dir}/root-image/proc" + umount "${work_dir}/root-image/dev/shm" + umount "${work_dir}/root-image/dev/pts" + umount "${work_dir}/root-image/dev" + + trap - EXIT HUP INT TERM +} + +_chroot_init() { + if [[ ! -d ${work_dir}/root-image/var/cache/pacman ]]; then + mkdir -p ${work_dir}/root-image/{dev,proc,run,sys,tmp,var/lib/pacman} + _pacman "base" + _pacman "syslinux" + fi +} + +_chroot_run() { + _chroot_mount + eval chroot ${work_dir}/root-image "${run_cmd}" + _chroot_umount +} + # Mount a filesystem (trap signals in case of error for unmounting it # $1: source image # $2: mount-point @@ -99,6 +138,7 @@ _usage () echo "usage ${app_name} [options] command " echo " general options:" echo " -p PACKAGE(S) Package(s) to install, can be used multiple times" + echo " -r Run inside root-image" echo " -C Config file for pacman. Default ${pacman_conf}" echo " -L