From bb503b90308ea12542c85dea9b799e11632158a6 Mon Sep 17 00:00:00 2001 From: Simon Wilper Date: Fri, 1 Jan 2021 03:15:33 +0100 Subject: add optional pv tool use pv to give feedback on copying the airootfs to RAM when copytoram kernel parameter is given --- archiso/initcpio/hooks/archiso | 15 ++++++++++++++- archiso/initcpio/install/archiso | 1 + .../efiboot/loader/entries/archiso-x86_64-linux-ram.conf | 7 +++++++ configs/baseline/packages.x86_64 | 1 + configs/baseline/syslinux/syslinux-linux.cfg | 6 ++++++ 5 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 configs/baseline/efiboot/loader/entries/archiso-x86_64-linux-ram.conf diff --git a/archiso/initcpio/hooks/archiso b/archiso/initcpio/hooks/archiso index 1b848ce..485fb0f 100644 --- a/archiso/initcpio/hooks/archiso +++ b/archiso/initcpio/hooks/archiso @@ -69,10 +69,23 @@ _mnt_sfs() { # defined via initcpio's parse_cmdline() if [ "${copytoram}" = "y" ]; then msg -n ":: Copying squashfs image to RAM..." - if ! cp -- "${img}" "/run/archiso/copytoram/${img_fullname}" ; then + + # in case we have pv use it to display copy progress feedback otherwise + # fallback to using plain cp + if [ -x /usr/bin/pv ]; then + echo "" + (pv "${img}" > "/run/archiso/copytoram/${img_fullname}") + local rc=$? + else + (cp -- "${img}" "/run/archiso/copytoram/${img_fullname}") + local rc=$? + fi + + if [ $rc != 0 ]; then echo "ERROR: while copy '${img}' to '/run/archiso/copytoram/${img_fullname}'" launch_interactive_shell fi + img="/run/archiso/copytoram/${img_fullname}" msg "done." fi diff --git a/archiso/initcpio/install/archiso b/archiso/initcpio/install/archiso index 74948c7..df0f6b5 100644 --- a/archiso/initcpio/install/archiso +++ b/archiso/initcpio/install/archiso @@ -18,6 +18,7 @@ build() { add_binary truncate add_binary gpg add_binary grep + add_binary pv add_file /usr/lib/udev/rules.d/60-cdrom_id.rules add_file /usr/lib/udev/rules.d/10-dm.rules diff --git a/configs/baseline/efiboot/loader/entries/archiso-x86_64-linux-ram.conf b/configs/baseline/efiboot/loader/entries/archiso-x86_64-linux-ram.conf new file mode 100644 index 0000000..c5e9ab9 --- /dev/null +++ b/configs/baseline/efiboot/loader/entries/archiso-x86_64-linux-ram.conf @@ -0,0 +1,7 @@ +# +# SPDX-License-Identifier: GPL-3.0-or-later + +title Arch Linux (x86_64, UEFI) Copy to RAM +linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram diff --git a/configs/baseline/packages.x86_64 b/configs/baseline/packages.x86_64 index cadea18..224f7f0 100644 --- a/configs/baseline/packages.x86_64 +++ b/configs/baseline/packages.x86_64 @@ -6,6 +6,7 @@ linux mkinitcpio mkinitcpio-archiso openssh +pv qemu-guest-agent syslinux virtualbox-guest-utils-nox diff --git a/configs/baseline/syslinux/syslinux-linux.cfg b/configs/baseline/syslinux/syslinux-linux.cfg index 867d815..ced6801 100644 --- a/configs/baseline/syslinux/syslinux-linux.cfg +++ b/configs/baseline/syslinux/syslinux-linux.cfg @@ -6,3 +6,9 @@ MENU LABEL Arch Linux (x86_64, BIOS) LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% + +LABEL arch-ram +MENU LABEL Arch Linux (x86_64, BIOS) Copy to RAM +LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux +INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram -- cgit v1.2.3-54-g00ecf