ChangeLog:

1. Use "cp", not "install" tool, to setup rEFInd in the setup script
2. Add rEFInd to iso at (ISO)/packages/refind-bin.zip
3. Use "cp -f" and "cp -rf" everywhere
4. In update-iso.sh, make sure updated setup script is copied to
(ISO)/arch/setup apart from updating the same in the initramfs files
5. Fix FSSPECS issue (in for loop) in autoprepare() in setup script
6. Added /usr/sbin/partprobe , /usr/bin/{bsdtar,bsdcpio} in arch_base
- useful for rescue stuff and needed for setting up rEFInd
7. Split up EFISTUB and rEFInd functions
This commit is contained in:
Tobias Powalowski 2012-04-27 22:06:07 +02:00
parent 7f63905d41
commit 343b8e59d0
6 changed files with 230 additions and 113 deletions

View file

@ -155,7 +155,7 @@ _prepare_packages() {
tar xvf core-x86_64.tar -C "${CORE64}" || exit 1 tar xvf core-x86_64.tar -C "${CORE64}" || exit 1
tar xvf core-lts-x86_64.tar -C "${CORE64_LTS}" || exit 1 tar xvf core-lts-x86_64.tar -C "${CORE64_LTS}" || exit 1
cp -r "${CORE64_LTS}/tmp"/*/core-x86_64 "${PACKAGES_TEMP_DIR}/core-x86_64" cp -rf "${CORE64_LTS}/tmp"/*/core-x86_64 "${PACKAGES_TEMP_DIR}/core-x86_64"
rm -rf "${CORE64_LTS}/tmp"/*/core-x86_64 rm -rf "${CORE64_LTS}/tmp"/*/core-x86_64
mksquashfs "${PACKAGES_TEMP_DIR}/core-x86_64/" "${PACKAGES_TEMP_DIR}/archboot_packages_x86_64.squashfs" -comp xz -noappend -all-root mksquashfs "${PACKAGES_TEMP_DIR}/core-x86_64/" "${PACKAGES_TEMP_DIR}/archboot_packages_x86_64.squashfs" -comp xz -noappend -all-root
mv "${PACKAGES_TEMP_DIR}/archboot_packages_x86_64.squashfs" "${ALLINONE}/packages/" mv "${PACKAGES_TEMP_DIR}/archboot_packages_x86_64.squashfs" "${ALLINONE}/packages/"
@ -168,14 +168,14 @@ _prepare_packages() {
tar xvf core-i686.tar -C "${CORE}" || exit 1 tar xvf core-i686.tar -C "${CORE}" || exit 1
tar xvf core-lts-i686.tar -C "${CORE_LTS}" || exit 1 tar xvf core-lts-i686.tar -C "${CORE_LTS}" || exit 1
cp -r "${CORE_LTS}/tmp"/*/core-i686 "${PACKAGES_TEMP_DIR}/core-i686" cp -rf "${CORE_LTS}/tmp"/*/core-i686 "${PACKAGES_TEMP_DIR}/core-i686"
rm -rf "${CORE_LTS}/tmp"/*/core-i686 rm -rf "${CORE_LTS}/tmp"/*/core-i686
mksquashfs "${PACKAGES_TEMP_DIR}/core-i686/" "${PACKAGES_TEMP_DIR}/archboot_packages_i686.squashfs" -comp xz -noappend -all-root mksquashfs "${PACKAGES_TEMP_DIR}/core-i686/" "${PACKAGES_TEMP_DIR}/archboot_packages_i686.squashfs" -comp xz -noappend -all-root
mv "${PACKAGES_TEMP_DIR}/archboot_packages_i686.squashfs" "${ALLINONE}/packages/" mv "${PACKAGES_TEMP_DIR}/archboot_packages_i686.squashfs" "${ALLINONE}/packages/"
fi fi
# move in 'any' packages # move in 'any' packages
cp -r "${CORE_LTS}/tmp"/*/core-any "${PACKAGES_TEMP_DIR}/core-any" cp -rf "${CORE_LTS}/tmp"/*/core-any "${PACKAGES_TEMP_DIR}/core-any"
rm -rf "${CORE_LTS}/tmp"/*/core-any rm -rf "${CORE_LTS}/tmp"/*/core-any
mksquashfs "${PACKAGES_TEMP_DIR}/core-any/" "${PACKAGES_TEMP_DIR}/archboot_packages_any.squashfs" -comp xz -noappend -all-root mksquashfs "${PACKAGES_TEMP_DIR}/core-any/" "${PACKAGES_TEMP_DIR}/archboot_packages_any.squashfs" -comp xz -noappend -all-root
@ -213,6 +213,15 @@ _download_uefi_shell_tianocore() {
} }
_download_uefi_refind_sourceforge() {
mkdir -p "${ALLINONE}/packages/"
## Download latest rEFInd bin archive from sourceforge
curl --verbose -f -C - --ftp-pasv --retry 3 --retry-delay 3 -o "${ALLINONE}/packages/refind-bin.zip" -L "http://sourceforge.net/projects/refind/files/latest/download"
}
_prepare_grub_uefi_arch_specific_iso_files() { _prepare_grub_uefi_arch_specific_iso_files() {
[[ "${_UEFI_ARCH}" == "x86_64" ]] && _SPEC_UEFI_ARCH="x64" [[ "${_UEFI_ARCH}" == "x86_64" ]] && _SPEC_UEFI_ARCH="x64"
@ -246,7 +255,7 @@ source "(\${archboot})/boot/grub/grub_archboot.cfg"
EOF EOF
cp "${ALLINONE}/boot/grub/grub_standalone_archboot.cfg" "${ALLINONE}/boot/grub/grub.cfg" cp -f "${ALLINONE}/boot/grub/grub_standalone_archboot.cfg" "${ALLINONE}/boot/grub/grub.cfg"
__WD="${PWD}/" __WD="${PWD}/"
@ -259,7 +268,7 @@ EOF
rm -f "${ALLINONE}/boot/grub/grub.cfg" rm -f "${ALLINONE}/boot/grub/grub.cfg"
mkdir -p "${ALLINONE}/efi/boot/" mkdir -p "${ALLINONE}/efi/boot/"
cp "${grub_uefi_mp}/efi/boot/boot${_SPEC_UEFI_ARCH}.efi" "${ALLINONE}/efi/boot/boot${_SPEC_UEFI_ARCH}.efi" cp -f "${grub_uefi_mp}/efi/boot/boot${_SPEC_UEFI_ARCH}.efi" "${ALLINONE}/efi/boot/boot${_SPEC_UEFI_ARCH}.efi"
unset _UEFI_ARCH unset _UEFI_ARCH
unset _SPEC_UEFI_ARCH unset _SPEC_UEFI_ARCH
@ -297,7 +306,7 @@ _prepare_grub_uefi_iso_files() {
losetup --detach "${LOOP_DEVICE}" losetup --detach "${LOOP_DEVICE}"
mkdir -p "${ALLINONE}/boot/grub/fonts" mkdir -p "${ALLINONE}/boot/grub/fonts"
cp "/usr/share/grub/unicode.pf2" "${ALLINONE}/boot/grub/fonts/" cp -f "/usr/share/grub/unicode.pf2" "${ALLINONE}/boot/grub/fonts/"
mkdir -p "${ALLINONE}/boot/grub/locale/" mkdir -p "${ALLINONE}/boot/grub/locale/"
@ -461,6 +470,8 @@ _prepare_kernel_initramfs_files
_download_uefi_shell_tianocore _download_uefi_shell_tianocore
_download_uefi_refind_sourceforge
_prepare_grub_uefi_iso_files _prepare_grub_uefi_iso_files
# place syslinux files # place syslinux files
@ -497,12 +508,12 @@ xorriso -as mkisofs \
# "${USBIMAGE_HELPER}" "${ALLINONE}" "${IMAGENAME}.img" > /dev/null 2>&1 # "${USBIMAGE_HELPER}" "${ALLINONE}" "${IMAGENAME}.img" > /dev/null 2>&1
if [[ -e "${WD}/${IMAGENAME_OLD}-dual.iso" ]] && [[ ! -e "${WD}/${IMAGENAME_OLD}-x86_64.iso" ]]; then if [[ -e "${WD}/${IMAGENAME_OLD}-dual.iso" ]] && [[ ! -e "${WD}/${IMAGENAME_OLD}-x86_64.iso" ]]; then
_REMOVE_i686="1" _REMOVE_x86_64="0" _UPDATE_SETUP="0" _UPDATE_UEFI_SHELL="0" _UPDATE_SYSLINUX="0" _UPDATE_SYSLINUX_CONFIG="1" _UPDATE_GRUB_UEFI="0" _UPDATE_GRUB_UEFI_CONFIG="1" "${UPDATEISO_HELPER}" "${WD}/${IMAGENAME_OLD}-dual.iso" _REMOVE_i686="1" _REMOVE_x86_64="0" _UPDATE_SETUP="0" _UPDATE_UEFI_SHELL="0" _UPDATE_UEFI_REFIND="0" _UPDATE_SYSLINUX="0" _UPDATE_SYSLINUX_CONFIG="1" _UPDATE_GRUB_UEFI="0" _UPDATE_GRUB_UEFI_CONFIG="1" "${UPDATEISO_HELPER}" "${WD}/${IMAGENAME_OLD}-dual.iso"
mv "${WD}/${IMAGENAME_OLD}-dual-updated-x86_64.iso" "${WD}/${IMAGENAME_OLD}-x86_64.iso" mv "${WD}/${IMAGENAME_OLD}-dual-updated-x86_64.iso" "${WD}/${IMAGENAME_OLD}-x86_64.iso"
fi fi
if [[ -e "${WD}/${IMAGENAME_OLD}-dual.iso" ]] && [[ ! -e "${WD}/${IMAGENAME_OLD}-i686.iso" ]]; then if [[ -e "${WD}/${IMAGENAME_OLD}-dual.iso" ]] && [[ ! -e "${WD}/${IMAGENAME_OLD}-i686.iso" ]]; then
_REMOVE_i686="0" _REMOVE_x86_64="1" _UPDATE_SETUP="0" _UPDATE_UEFI_SHELL="0" _UPDATE_SYSLINUX="0" _UPDATE_SYSLINUX_CONFIG="1" _UPDATE_GRUB_UEFI="0" _UPDATE_GRUB_UEFI_CONFIG="1" "${UPDATEISO_HELPER}" "${WD}/${IMAGENAME_OLD}-dual.iso" _REMOVE_i686="0" _REMOVE_x86_64="1" _UPDATE_SETUP="0" _UPDATE_UEFI_SHELL="0" _UPDATE_UEFI_REFIND="0" _UPDATE_SYSLINUX="0" _UPDATE_SYSLINUX_CONFIG="1" _UPDATE_GRUB_UEFI="0" _UPDATE_GRUB_UEFI_CONFIG="1" "${UPDATEISO_HELPER}" "${WD}/${IMAGENAME_OLD}-dual.iso"
mv "${WD}/${IMAGENAME_OLD}-dual-updated-i686.iso" "${WD}/${IMAGENAME_OLD}-i686.iso" mv "${WD}/${IMAGENAME_OLD}-dual-updated-i686.iso" "${WD}/${IMAGENAME_OLD}-i686.iso"
fi fi
@ -511,12 +522,6 @@ cd "${WD}/"
rm -f "${WD}/sha256sums.txt" || true rm -f "${WD}/sha256sums.txt" || true
sha256sum *.iso *.img > "${WD}/sha256sums.txt" sha256sum *.iso *.img > "${WD}/sha256sums.txt"
_UPDATE_SYSLINUX="0" _UPDATE_UEFI_SHELL="0" _UPDATE_GRUB_UEFI="0" _UPDATE_SETUP="0" _REMOVE_i686="1" _REMOVE_x86_64="0" /usr/bin/archboot-update-iso.sh "${WD}/${IMAGENAME}.iso"
_UPDATE_SYSLINUX="0" _UPDATE_UEFI_SHELL="0" _UPDATE_GRUB_UEFI="0" _UPDATE_SETUP="0" _REMOVE_i686="0" _REMOVE_x86_64="1" /usr/bin/archboot-update-iso.sh "${WD}/${IMAGENAME}.iso"
mv "${WD}/${IMAGENAME}.iso" "${WD}/${IMAGENAME}-dual.iso"
# cleanup # cleanup
rm -rf "${grub_uefi_mp}" rm -rf "${grub_uefi_mp}"
rm -rf "${CORE}" rm -rf "${CORE}"

View file

@ -7,6 +7,7 @@
[[ -z "${_UPDATE_SETUP}" ]] && _UPDATE_SETUP="1" [[ -z "${_UPDATE_SETUP}" ]] && _UPDATE_SETUP="1"
[[ -z "${_UPDATE_UEFI_SHELL}" ]] && _UPDATE_UEFI_SHELL="1" [[ -z "${_UPDATE_UEFI_SHELL}" ]] && _UPDATE_UEFI_SHELL="1"
[[ -z "${_UPDATE_UEFI_REFIND}" ]] && _UPDATE_UEFI_REFIND="1"
[[ -z "${_UPDATE_SYSLINUX}" ]] && _UPDATE_SYSLINUX="1" [[ -z "${_UPDATE_SYSLINUX}" ]] && _UPDATE_SYSLINUX="1"
[[ -z "${_UPDATE_SYSLINUX_CONFIG}" ]] && _UPDATE_SYSLINUX_CONFIG="1" [[ -z "${_UPDATE_SYSLINUX_CONFIG}" ]] && _UPDATE_SYSLINUX_CONFIG="1"
@ -84,7 +85,7 @@ echo
rm -rf "${_ARCHBOOT_ISO_EXT_DIR}/[BOOT]/" || true rm -rf "${_ARCHBOOT_ISO_EXT_DIR}/[BOOT]/" || true
echo echo
[[ -e "${_ARCHBOOT_ISO_WD}/splash.png" ]] && cp "${_ARCHBOOT_ISO_WD}/splash.png" "${_ARCHBOOT_ISO_EXT_DIR}/boot/syslinux/splash.png" [[ -e "${_ARCHBOOT_ISO_WD}/splash.png" ]] && cp -f "${_ARCHBOOT_ISO_WD}/splash.png" "${_ARCHBOOT_ISO_EXT_DIR}/boot/syslinux/splash.png"
echo echo
_rename_old_files() { _rename_old_files() {
@ -104,7 +105,7 @@ _rename_old_files() {
_update_syslinux_iso_files() { _update_syslinux_iso_files() {
rm -f "${_ARCHBOOT_ISO_EXT_DIR}/boot/syslinux"/*.{com,bin,c32} || true rm -f "${_ARCHBOOT_ISO_EXT_DIR}/boot/syslinux"/*.{com,bin,c32} || true
cp "/usr/lib/syslinux"/*.{com,bin,c32} "${_ARCHBOOT_ISO_EXT_DIR}/boot/syslinux/" cp -f "/usr/lib/syslinux"/*.{com,bin,c32} "${_ARCHBOOT_ISO_EXT_DIR}/boot/syslinux/"
} }
@ -268,7 +269,7 @@ _download_uefi_shell_tianocore() {
echo echo
if [[ -e "${_ARCHBOOT_ISO_WD}/shellx64.efi" ]]; then if [[ -e "${_ARCHBOOT_ISO_WD}/shellx64.efi" ]]; then
cp "${_ARCHBOOT_ISO_WD}/shellx64.efi" "${_ARCHBOOT_ISO_EXT_DIR}/efi/tools/shellx64.efi" cp -f "${_ARCHBOOT_ISO_WD}/shellx64.efi" "${_ARCHBOOT_ISO_EXT_DIR}/efi/tools/shellx64.efi"
echo echo
else else
curl --verbose -f -C - --ftp-pasv --retry 3 --retry-delay 3 -o "${_ARCHBOOT_ISO_EXT_DIR}/efi/tools/shellx64.efi" "https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/ShellBinPkg/UefiShell/X64/Shell.efi" || true curl --verbose -f -C - --ftp-pasv --retry 3 --retry-delay 3 -o "${_ARCHBOOT_ISO_EXT_DIR}/efi/tools/shellx64.efi" "https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/ShellBinPkg/UefiShell/X64/Shell.efi" || true
@ -289,7 +290,7 @@ _download_uefi_shell_tianocore() {
echo echo
if [[ -e "${_ARCHBOOT_ISO_WD}/shellx64_old.efi" ]]; then if [[ -e "${_ARCHBOOT_ISO_WD}/shellx64_old.efi" ]]; then
cp "${_ARCHBOOT_ISO_WD}/shellx64_old.efi" "${_ARCHBOOT_ISO_EXT_DIR}/efi/tools/shellx64_old.efi" cp -f "${_ARCHBOOT_ISO_WD}/shellx64_old.efi" "${_ARCHBOOT_ISO_EXT_DIR}/efi/tools/shellx64_old.efi"
echo echo
else else
curl --verbose -f -C - --ftp-pasv --retry 3 --retry-delay 3 -o "${_ARCHBOOT_ISO_EXT_DIR}/efi/tools/shellx64_old.efi" "https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EdkShellBinPkg/FullShell/X64/Shell_Full.efi" || true curl --verbose -f -C - --ftp-pasv --retry 3 --retry-delay 3 -o "${_ARCHBOOT_ISO_EXT_DIR}/efi/tools/shellx64_old.efi" "https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EdkShellBinPkg/FullShell/X64/Shell_Full.efi" || true
@ -306,6 +307,18 @@ _download_uefi_shell_tianocore() {
} }
_update_uefi_refind_sourceforge() {
mkdir -p "${_ARCHBOOT_ISO_EXT_DIR}/packages/" || true
rm -f "${_ARCHBOOT_ISO_EXT_DIR}/packages/refind-bin.zip" || true
echo
## Download latest rEFInd bin archive from sourceforge
curl --verbose -f -C - --ftp-pasv --retry 3 --retry-delay 3 -o "${_ARCHBOOT_ISO_EXT_DIR}/packages/refind-bin.zip" -L "http://sourceforge.net/projects/refind/files/latest/download"
}
_update_grub_uefi_arch_specific_iso_files() { _update_grub_uefi_arch_specific_iso_files() {
[[ "${_UEFI_ARCH}" == "x86_64" ]] && _SPEC_UEFI_ARCH="x64" [[ "${_UEFI_ARCH}" == "x86_64" ]] && _SPEC_UEFI_ARCH="x64"
@ -349,7 +362,7 @@ EOF
echo echo
cp "${_ARCHBOOT_ISO_EXT_DIR}/boot/grub/grub_standalone_archboot.cfg" "${_ARCHBOOT_ISO_EXT_DIR}/boot/grub/grub.cfg" cp -f "${_ARCHBOOT_ISO_EXT_DIR}/boot/grub/grub_standalone_archboot.cfg" "${_ARCHBOOT_ISO_EXT_DIR}/boot/grub/grub.cfg"
__ARCHBOOT_ISO_WD="${PWD}/" __ARCHBOOT_ISO_WD="${PWD}/"
@ -362,7 +375,7 @@ EOF
rm -f "${_ARCHBOOT_ISO_EXT_DIR}/boot/grub/grub.cfg" rm -f "${_ARCHBOOT_ISO_EXT_DIR}/boot/grub/grub.cfg"
mkdir -p "${_ARCHBOOT_ISO_EXT_DIR}/efi/boot/" mkdir -p "${_ARCHBOOT_ISO_EXT_DIR}/efi/boot/"
cp "${grub_uefi_mp}/efi/boot/boot${_SPEC_UEFI_ARCH}.efi" "${_ARCHBOOT_ISO_EXT_DIR}/efi/boot/boot${_SPEC_UEFI_ARCH}.efi" cp -f "${grub_uefi_mp}/efi/boot/boot${_SPEC_UEFI_ARCH}.efi" "${_ARCHBOOT_ISO_EXT_DIR}/efi/boot/boot${_SPEC_UEFI_ARCH}.efi"
echo echo
@ -419,7 +432,7 @@ _update_grub_uefi_iso_files() {
echo echo
mkdir -p "${_ARCHBOOT_ISO_EXT_DIR}/boot/grub/fonts/" mkdir -p "${_ARCHBOOT_ISO_EXT_DIR}/boot/grub/fonts/"
cp "/usr/share/grub/unicode.pf2" "${_ARCHBOOT_ISO_EXT_DIR}/boot/grub/fonts/" cp -f "/usr/share/grub/unicode.pf2" "${_ARCHBOOT_ISO_EXT_DIR}/boot/grub/fonts/"
echo echo
rm -rf "${_ARCHBOOT_ISO_EXT_DIR}/boot/grub/locale/" || true rm -rf "${_ARCHBOOT_ISO_EXT_DIR}/boot/grub/locale/" || true
@ -671,17 +684,30 @@ _rename_old_files
if [[ "${_UPDATE_SETUP}" == "1" ]] && [[ -e "${_ARCHBOOT_ISO_WD}/setup" ]]; then if [[ "${_UPDATE_SETUP}" == "1" ]] && [[ -e "${_ARCHBOOT_ISO_WD}/setup" ]]; then
cd "${_ARCHBOOT_ISO_WD}/" cd "${_ARCHBOOT_ISO_WD}/"
mkdir -p "${_ARCHBOOT_ISO_EXT_DIR}/arch/" || true
rm -f "${_ARCHBOOT_ISO_EXT_DIR}/arch/setup" || true
cp -f "${_ARCHBOOT_ISO_WD}/setup" "${_ARCHBOOT_ISO_EXT_DIR}/arch/setup"
echo
if [[ "${_REMOVE_x86_64}" != "1" ]]; then
_initramfs_name="initramfs_x86_64" _initramfs_name="initramfs_x86_64"
_update_arch_setup_initramfs _update_arch_setup_initramfs
fi
if [[ "${_REMOVE_i686}" != "1" ]]; then
_initramfs_name="initramfs_i686" _initramfs_name="initramfs_i686"
_update_arch_setup_initramfs _update_arch_setup_initramfs
fi
echo echo
fi fi
[[ "${_UPDATE_UEFI_SHELL}" == "1" ]] && _download_uefi_shell_tianocore [[ "${_UPDATE_UEFI_SHELL}" == "1" ]] && _download_uefi_shell_tianocore
[[ "${_UPDATE_UEFI_REFIND}" == "1" ]] && _update_uefi_refind_sourceforge
[[ "${_UPDATE_SYSLINUX}" == "1" ]] && _update_syslinux_iso_files [[ "${_UPDATE_SYSLINUX}" == "1" ]] && _update_syslinux_iso_files
[[ "${_UPDATE_SYSLINUX_CONFIG}" == "1" ]] && _update_syslinux_iso_config [[ "${_UPDATE_SYSLINUX_CONFIG}" == "1" ]] && _update_syslinux_iso_config
@ -730,6 +756,7 @@ unset _REMOVE_i686
unset _REMOVE_x86_64 unset _REMOVE_x86_64
unset _UPDATE_SETUP unset _UPDATE_SETUP
unset _UPDATE_UEFI_SHELL unset _UPDATE_UEFI_SHELL
unset _UPDATE_UEFI_REFIND
unset _UPDATE_SYSLINUX unset _UPDATE_SYSLINUX
unset _UPDATE_SYSLINUX_CONFIG unset _UPDATE_SYSLINUX_CONFIG
unset _UPDATE_GRUB_UEFI unset _UPDATE_GRUB_UEFI

View file

@ -62,7 +62,7 @@ if [[ ! -e "${IMGROOT}/efi/boot/bootx64.efi" ]]; then
LOOP_DEVICE2="$(losetup --show --find "${IMGROOT}/efi/grub2/grub2_efi.bin")" LOOP_DEVICE2="$(losetup --show --find "${IMGROOT}/efi/grub2/grub2_efi.bin")"
mount -o ro -t vfat "${LOOP_DEVICE2}" "${TMPDIR2}" mount -o ro -t vfat "${LOOP_DEVICE2}" "${TMPDIR2}"
cp "${TMPDIR2}/bootx64.efi" "${IMGROOT}/efi/boot/bootx64.efi" cp -f "${TMPDIR2}/bootx64.efi" "${IMGROOT}/efi/boot/bootx64.efi"
umount "${TMPDIR2}" umount "${TMPDIR2}"
losetup --detach "${LOOP_DEVICE2}" losetup --detach "${LOOP_DEVICE2}"
@ -70,10 +70,10 @@ if [[ ! -e "${IMGROOT}/efi/boot/bootx64.efi" ]]; then
rm -rf "${TMPDIR2}" rm -rf "${TMPDIR2}"
fi fi
cp -r "${IMGROOT}"/* "${TMPDIR}" cp -rf "${IMGROOT}"/* "${TMPDIR}"
rm -f "${TMPDIR}/boot/syslinux"/*.{com,bin,c32} || true rm -f "${TMPDIR}/boot/syslinux"/*.{com,bin,c32} || true
cp "/usr/lib/syslinux"/*.{com,bin,c32} "${TMPDIR}/boot/syslinux/" cp -f "/usr/lib/syslinux"/*.{com,bin,c32} "${TMPDIR}/boot/syslinux/"
# unmount filesystem # unmount filesystem
umount "${TMPDIR}" umount "${TMPDIR}"

View file

@ -3,7 +3,7 @@
build () build ()
{ {
SCRIPT="arch_base" SCRIPT="arch_base"
BINARIES="/sbin/init /sbin/agetty /bin/mount /bin/umount /usr/bin/basename /bin/du /usr/bin/clear /usr/bin/env /usr/bin/head /usr/bin/id /usr/bin/md5sum /usr/bin/nano /usr/bin/nc /usr/bin/printf /usr/bin/tail /usr/bin/tee /usr/bin/test /usr/bin/tr /usr/bin/tty /usr/bin/uptime /usr/bin/w /usr/bin/who /usr/bin/wc /usr/bin/which /usr/bin/whoami /usr/bin/xargs /usr/bin/yes /usr/sbin/syslog-ng /usr/sbin/syslog-ng-ctl /usr/bin/loggen /usr/bin/pdbtool /bin/bash /sbin/swapon /usr/bin/uniq /usr/bin/cut /usr/bin/seq /usr/bin/snarf /usr/bin/find /usr/bin/sort /sbin/fdisk /sbin/sfdisk /sbin/cfdisk /usr/sbin/parted /usr/bin/gawk /bin/cp /bin/mv /sbin/shutdown /usr/bin/free /bin/ls /bin/rm /bin/sed /usr/bin/less /bin/chgrp /bin/chmod /bin/chown /bin/date /bin/df /usr/bin/dialog /bin/dmesg /usr/bin/egrep /usr/bin/fgrep /bin/grep /bin/hostname /bin/kill /usr/bin/killall /sbin/killall5 /bin/more /bin/ps /bin/pwd /bin/rmdir /bin/stty /bin/sync /bin/tar /usr/bin/touch /bin/uname /usr/bin/vim /sbin/hdparm /bin/true /usr/bin/mktemp /usr/sbin/chroot /usr/bin/dirname /usr/bin/expr /bin/bzip2 /sbin/hwclock /bin/su /bin/cat /bin/cpio /bin/dd /bin/gzip /usr/bin/wget /usr/bin/top /usr/bin/sdparm /usr/bin/tput /sbin/ifconfig /bin/ln /sbin/losetup /bin/mkdir /usr/bin/mkfifo /bin/mknod /usr/bin/readlink /bin/echo /usr/bin/reset /sbin/swapoff /sbin/halt /sbin/telinit /usr/bin/awk /usr/bin/dir /sbin/reboot /sbin/poweroff /bin/pidof /usr/bin/nc /usr/bin/lzcat /usr/bin/lzma /usr/bin/lzmadec /usr/bin/unlzma /usr/bin/unxz /usr/bin/xz /usr/bin/xzcat /usr/bin/xzdec /sbin/switch_root /bin/false /sbin/pivot_root /usr/bin/sleep /sbin/chcpu /sbin/ctrlaltdel /sbin/raw /sbin/gdisk /sbin/sgdisk /sbin/cgdisk /sbin/fixparts /bin/findmnt /bin/lsblk /sbin/swaplabel /usr/bin/cal /usr/bin/chkdupexe /usr/bin/chrt /usr/bin/col /usr/bin/colcrt /usr/bin/colrm /usr/bin/column /usr/bin/cytune /usr/bin/fallocate /usr/bin/flock /usr/bin/getopt /usr/bin/hexdump /usr/bin/i386 /usr/bin/ionice /usr/bin/ipcmk /usr/bin/ipcrm /usr/bin/ipcs /usr/bin/isosize /usr/bin/linux32 /usr/bin/linux64 /usr/bin/logger /usr/bin/look /usr/bin/lscpu /usr/bin/mcookie /usr/bin/namei /usr/bin/pg /usr/bin/prlimit /usr/bin/rename /usr/bin/renice /usr/bin/rev /usr/bin/script /usr/bin/scriptreplay /usr/bin/setarch /usr/bin/setsid /usr/bin/setterm /usr/bin/tailf /usr/bin/taskset /usr/bin/ul /usr/bin/unshare /usr/bin/uuidgen /usr/bin/whereis /usr/bin/write /usr/sbin/addpart /usr/sbin/delpart /usr/sbin/fdformat /usr/sbin/ldattach /usr/sbin/partx /usr/sbin/readprofile /usr/sbin/rtcwake /usr/sbin/tunelp /usr/sbin/uuidd /sbin/sysctl /usr/bin/pgrep /usr/bin/pkill /usr/bin/pmap /usr/bin/pwdx /usr/bin/skill /usr/bin/slabtop /usr/bin/snice /usr/bin/tload /usr/bin/vmstat /usr/bin/watch /usr/bin/file /usr/bin/eject /usr/bin/volname /bin/keyctl /sbin/request-key /usr/bin/kmod" BINARIES="/sbin/init /sbin/agetty /bin/mount /bin/umount /usr/bin/basename /bin/du /usr/bin/clear /usr/bin/env /usr/bin/head /usr/bin/id /usr/bin/md5sum /usr/bin/nano /usr/bin/nc /usr/bin/printf /usr/bin/tail /usr/bin/tee /usr/bin/test /usr/bin/tr /usr/bin/tty /usr/bin/uptime /usr/bin/w /usr/bin/who /usr/bin/wc /usr/bin/which /usr/bin/whoami /usr/bin/xargs /usr/bin/yes /usr/sbin/syslog-ng /usr/sbin/syslog-ng-ctl /usr/bin/loggen /usr/bin/pdbtool /bin/bash /sbin/swapon /usr/bin/uniq /usr/bin/cut /usr/bin/seq /usr/bin/snarf /usr/bin/find /usr/bin/sort /sbin/fdisk /sbin/sfdisk /sbin/cfdisk /usr/sbin/parted /usr/sbin/partprobe /usr/bin/gawk /bin/cp /bin/mv /sbin/shutdown /usr/bin/free /bin/ls /bin/rm /bin/sed /usr/bin/less /bin/chgrp /bin/chmod /bin/chown /bin/date /bin/df /usr/bin/dialog /bin/dmesg /usr/bin/egrep /usr/bin/fgrep /bin/grep /bin/hostname /bin/kill /usr/bin/killall /sbin/killall5 /bin/more /bin/ps /bin/pwd /bin/rmdir /bin/stty /bin/sync /bin/tar /usr/bin/bsdtar /usr/bin/bsdcpio /usr/bin/touch /bin/uname /usr/bin/vim /sbin/hdparm /bin/true /usr/bin/mktemp /usr/sbin/chroot /usr/bin/dirname /usr/bin/expr /bin/bzip2 /sbin/hwclock /bin/su /bin/cat /bin/cpio /bin/dd /bin/gzip /usr/bin/wget /usr/bin/top /usr/bin/sdparm /usr/bin/tput /sbin/ifconfig /bin/ln /sbin/losetup /bin/mkdir /usr/bin/mkfifo /bin/mknod /usr/bin/readlink /bin/echo /usr/bin/reset /sbin/swapoff /sbin/halt /sbin/telinit /usr/bin/awk /usr/bin/dir /sbin/reboot /sbin/poweroff /bin/pidof /usr/bin/nc /usr/bin/lzcat /usr/bin/lzma /usr/bin/lzmadec /usr/bin/unlzma /usr/bin/unxz /usr/bin/xz /usr/bin/xzcat /usr/bin/xzdec /sbin/switch_root /bin/false /sbin/pivot_root /usr/bin/sleep /sbin/chcpu /sbin/ctrlaltdel /sbin/raw /sbin/gdisk /sbin/sgdisk /sbin/cgdisk /sbin/fixparts /bin/findmnt /bin/lsblk /sbin/swaplabel /usr/bin/cal /usr/bin/chkdupexe /usr/bin/chrt /usr/bin/col /usr/bin/colcrt /usr/bin/colrm /usr/bin/column /usr/bin/cytune /usr/bin/fallocate /usr/bin/flock /usr/bin/getopt /usr/bin/hexdump /usr/bin/i386 /usr/bin/ionice /usr/bin/ipcmk /usr/bin/ipcrm /usr/bin/ipcs /usr/bin/isosize /usr/bin/linux32 /usr/bin/linux64 /usr/bin/logger /usr/bin/look /usr/bin/lscpu /usr/bin/mcookie /usr/bin/namei /usr/bin/pg /usr/bin/prlimit /usr/bin/rename /usr/bin/renice /usr/bin/rev /usr/bin/script /usr/bin/scriptreplay /usr/bin/setarch /usr/bin/setsid /usr/bin/setterm /usr/bin/tailf /usr/bin/taskset /usr/bin/ul /usr/bin/unshare /usr/bin/uuidgen /usr/bin/whereis /usr/bin/write /usr/sbin/addpart /usr/sbin/delpart /usr/sbin/fdformat /usr/sbin/ldattach /usr/sbin/partx /usr/sbin/readprofile /usr/sbin/rtcwake /usr/sbin/tunelp /usr/sbin/uuidd /sbin/sysctl /usr/bin/pgrep /usr/bin/pkill /usr/bin/pmap /usr/bin/pwdx /usr/bin/skill /usr/bin/slabtop /usr/bin/snice /usr/bin/tload /usr/bin/vmstat /usr/bin/watch /usr/bin/file /usr/bin/eject /usr/bin/volname /bin/keyctl /sbin/request-key /usr/bin/kmod"
FILES="/usr/lib/libkmod.so /usr/bin/lsmod /sbin/depmod /usr/bin/insmod /usr/bin/modinfo /sbin/modprobe /usr/bin/rmmod /usr/bin/update-patterndb /bin/gunzip /bin/zcat /usr/bin/lzcmp /usr/bin/lzdiff /usr/bin/lzegrep /usr/bin/lzfgrep /usr/bin/lzgrep /usr/bin/lzless /usr/bin/lzmore" FILES="/usr/lib/libkmod.so /usr/bin/lsmod /sbin/depmod /usr/bin/insmod /usr/bin/modinfo /sbin/modprobe /usr/bin/rmmod /usr/bin/update-patterndb /bin/gunzip /bin/zcat /usr/bin/lzcmp /usr/bin/lzdiff /usr/bin/lzegrep /usr/bin/lzfgrep /usr/bin/lzgrep /usr/bin/lzless /usr/bin/lzmore"
### setting up base structure ### setting up base structure

View file

@ -153,7 +153,8 @@ EOF
EOF EOF
} }
case x`uname -m` in machine=`uname -m`
case "x$machine" in
xi?86 | xx86_64) xi?86 | xx86_64)
list=`for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do list=`for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do
if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
@ -164,6 +165,14 @@ case x`uname -m` in
done` ;; done` ;;
esac esac
case "$machine" in
i?86) GENKERNEL_ARCH="x86" ;;
mips|mips64) GENKERNEL_ARCH="mips" ;;
mipsel|mips64el) GENKERNEL_ARCH="mipsel" ;;
arm*) GENKERNEL_ARCH="arm" ;;
*) GENKERNEL_ARCH="$machine" ;;
esac
prepare_boot_cache= prepare_boot_cache=
prepare_root_cache= prepare_root_cache=
boot_device_id= boot_device_id=
@ -206,6 +215,8 @@ while [ "x$list" != "x" ] ; do
"initrd-${alt_version}" "initramfs-${alt_version}.img" \ "initrd-${alt_version}" "initramfs-${alt_version}.img" \
"initramfs-genkernel-${version}" \ "initramfs-genkernel-${version}" \
"initramfs-genkernel-${alt_version}" \ "initramfs-genkernel-${alt_version}" \
"initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
"initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}" \
"${initrd_arch}.img" ; do "${initrd_arch}.img" ; do
if test -e "${dirname}/${i}" ; then if test -e "${dirname}/${i}" ; then
initrd="$i" initrd="$i"

View file

@ -5,6 +5,8 @@ ANSWER="/tmp/.setup"
TITLE="Arch Linux Installation" TITLE="Arch Linux Installation"
# use the first VT not dedicated to a running console # use the first VT not dedicated to a running console
LOG="/dev/tty7" LOG="/dev/tty7"
# where the Archboot media (ISO/CD/USB) should be mounted
_MEDIA="/src"
# don't use /mnt because it's intended to mount other things there! # don't use /mnt because it's intended to mount other things there!
DESTDIR="/tmp/install" DESTDIR="/tmp/install"
EDITOR="" EDITOR=""
@ -271,8 +273,11 @@ _mount_packages_squashfs_images() {
modprobe -q loop modprobe -q loop
modprobe -q squashfs modprobe -q squashfs
mount -o ro,loop -t squashfs "/src/packages/archboot_packages_$(uname -m).squashfs" "/packages/core-$(uname -m)" mount -o ro,loop -t squashfs "${_MEDIA}/packages/archboot_packages_$(uname -m).squashfs" "/packages/core-$(uname -m)"
mount -o ro,loop -t squashfs "/src/packages/archboot_packages_any.squashfs" "/packages/core-any" mount -o ro,loop -t squashfs "${_MEDIA}/packages/archboot_packages_any.squashfs" "/packages/core-any"
# mkdir -p /tmp/TMP_ARCHBOOT_ROOT
# tar -C /tmp/TMP_ARCHBOOT_ROOT -xf "/packages/core-$(uname -m)/pkg"/libarchive-*-$(uname -m).pkg.tar.xz
} }
@ -280,15 +285,15 @@ _mount_packages_squashfs_images() {
check_media() { check_media() {
if [[ ! "${dev}" == "" ]]; then if [[ ! "${dev}" == "" ]]; then
! [[ "$(cat /proc/self/mounts | grep /dev/${dev})" ]] && mount "/dev/${dev}" "${media}" >/dev/null 2>&1 ! [[ "$(cat /proc/self/mounts | grep /dev/${dev})" ]] && mount "/dev/${dev}" "${_MEDIA}" >/dev/null 2>&1
fi fi
if [[ -e "${media}/packages/archboot_packages_$(uname -m).squashfs" && -e "${media}/packages/archboot_packages_any.squashfs" ]]; then if [[ -e "${_MEDIA}/packages/archboot_packages_$(uname -m).squashfs" && -e "${_MEDIA}/packages/archboot_packages_any.squashfs" ]]; then
_mount_packages_squashfs_images _mount_packages_squashfs_images
SET_MEDIA="1" SET_MEDIA="1"
[[ "${AUTOMOUNT}" == "1" ]] && break [[ "${AUTOMOUNT}" == "1" ]] && break
else else
umount "${media}" >/dev/null 2>&1 umount "${_MEDIA}" >/dev/null 2>&1
SET_MEDIA="0" SET_MEDIA="0"
fi fi
@ -297,12 +302,12 @@ check_media() {
# Get cdroms and removable devices # Get cdroms and removable devices
get_media() { get_media() {
media="/src" # _MEDIA="/src"
SET_MEDIA="0" SET_MEDIA="0"
AUTOMOUNT="0" AUTOMOUNT="0"
## Check whether ${media} is a mountpoint, if so check whether it contains the archboot packages squashfs files. ## Check whether ${_MEDIA} is a mountpoint, if so check whether it contains the archboot packages squashfs files.
## This might be the case if the user manually mounted the media before launching this script ## This might be the case if the user manually mounted the media before launching this script
if [[ "$(mountpoint -q "${media}")" ]]; then if [[ "$(mountpoint -q "${_MEDIA}")" ]]; then
check_media check_media
fi fi
AUTOMOUNT="1" AUTOMOUNT="1"
@ -350,16 +355,16 @@ get_media() {
manual_media() { manual_media() {
if [[ "${SET_MEDIA}" == "0" ]]; then if [[ "${SET_MEDIA}" == "0" ]]; then
DIALOG --msgbox "No source media was autodetected, please switch to another Virtual Terminal and manually mount the source media under /src. If you manually mount to /src, make sure the packages squashfs files /src/packages/archboot_packages_$(uname -m).squashfs and /src/packages/archboot_packages_any.squashfs are available.\n\n" 15 55 DIALOG --msgbox "No source media was autodetected, please switch to another Virtual Terminal and manually mount the source media under ${_MEDIA} . If you manually mount to ${_MEDIA} , make sure the packages squashfs files ${_MEDIA}/packages/archboot_packages_$(uname -m).squashfs and ${_MEDIA}/packages/archboot_packages_any.squashfs are available.\n\n" 15 55
fi fi
if [[ ! -e "/src/packages/archboot_packages_$(uname -m).squashfs" ]]; then if [[ ! -e "${_MEDIA}/packages/archboot_packages_$(uname -m).squashfs" ]]; then
DIALOG --msgbox "$(uname -m) packages squashfs image /src/packages/archboot_packages_$(uname -m).squashfs is missing!" 0 0 DIALOG --msgbox "$(uname -m) packages squashfs image ${_MEDIA}/packages/archboot_packages_$(uname -m).squashfs is missing!" 0 0
return 1 return 1
fi fi
if [[ ! -e "/src/packages/archboot_packages_any.squashfs" ]]; then if [[ ! -e "${_MEDIA}/packages/archboot_packages_any.squashfs" ]]; then
DIALOG --msgbox "'any' packages squashfs image /src/packages/archboot_packages_any.squashfs is missing!" 0 0 DIALOG --msgbox "'any' packages squashfs image ${_MEDIA}/packages/archboot_packages_any.squashfs is missing!" 0 0
return 1 return 1
fi fi
@ -1887,18 +1892,20 @@ autoprepare() {
return 1 return 1
fi fi
printk on printk on
# wait until /dev initialized correct devices ## wait until /dev initialized correct devices
udevadm settle udevadm settle
# default filesystem specs (the + is bootable flag) ## FSSPECS - default filesystem specs (the + is bootable flag)
# <partnum>:<mountpoint>:<partsize>:<fstype>[:<fsoptions>][:+]:labelname ## <partnum>:<mountpoint>:<partsize>:<fstype>[:<fsoptions>][:+]:labelname
## The partitions in FSSPECS list should be listed in the "mountpoint" order.
## Make sure the "root" partition is defined first in the FSSPECS list
FSSPECS="3:/:${ROOT_PART_SIZE}:${FSTYPE}:::ROOT_ARCH 1:/boot:${BOOT_PART_SIZE}:ext2::+:BOOT_ARCH 4:/home:*:${FSTYPE}:::HOME_ARCH 2:swap:${SWAP_PART_SIZE}:swap:::SWAP_ARCH" FSSPECS="3:/:${ROOT_PART_SIZE}:${FSTYPE}:::ROOT_ARCH 1:/boot:${BOOT_PART_SIZE}:ext2::+:BOOT_ARCH 4:/home:*:${FSTYPE}:::HOME_ARCH 2:swap:${SWAP_PART_SIZE}:swap:::SWAP_ARCH"
if [[ "${GUIDPARAMETER}" == "yes" ]]; then if [[ "${GUIDPARAMETER}" == "yes" ]]; then
FSSPECS="5:/:${ROOT_PART_SIZE}:${FSTYPE}:::ROOT_ARCH 3:/boot:${BOOT_PART_SIZE}:ext2::+:BOOT_ARCH 2:/boot/efi:512:vfat:-F32::ESP 6:/home:*:${FSTYPE}:::HOME_ARCH 4:swap:${SWAP_PART_SIZE}:swap:::SWAP_ARCH" FSSPECS="5:/:${ROOT_PART_SIZE}:${FSTYPE}:::ROOT_ARCH 3:/boot:${BOOT_PART_SIZE}:ext2::+:BOOT_ARCH 2:/boot/efi:512:vfat:-F32::ESP 6:/home:*:${FSTYPE}:::HOME_ARCH 4:swap:${SWAP_PART_SIZE}:swap:::SWAP_ARCH"
fi fi
# make and mount filesystems ## make and mount filesystems
for fsspec in ${FSSPECS}; do for fsspec in ${FSSPECS}; do
part="$(echo ${fsspec} | tr -d ' ' | cut -f1 -d:)" part="$(echo ${fsspec} | tr -d ' ' | cut -f1 -d:)"
mountpoint="$(echo ${fsspec} | tr -d ' ' | cut -f2 -d:)" mountpoint="$(echo ${fsspec} | tr -d ' ' | cut -f2 -d:)"
@ -1913,10 +1920,10 @@ autoprepare() {
btrfslevel="NONE" btrfslevel="NONE"
dosubvolume="no" dosubvolume="no"
# if echo "${mountpoint}" | tr -d ' ' | grep '^/$' 2>&1 >/dev/null; then # if echo "${mountpoint}" | tr -d ' ' | grep '^/$' 2>&1 >/dev/null; then
if [[ "$(echo ${mountpoint} | tr -d ' ' | grep '^/$' | wc -l)" -eq 0 ]]; then # if [[ "$(echo ${mountpoint} | tr -d ' ' | grep '^/$' | wc -l)" -eq 0 ]]; then
DIALOG --infobox "Creating ${fstype} on ${DEVICE}${part}" 0 0 DIALOG --infobox "Creating ${fstype} on ${DEVICE}${part} with FSLABEL ${labelname} . Mountpoint is ${mountpoint} ." 0 0
_mkfs yes "${DEVICE}${part}" "${fstype}" "${DESTDIR}" "${mountpoint}" "${labelname}" "${fsoptions}" "${btrfsdevices}" "${btrfssubvolume}" "${btrfslevel}" "${dosubvolume}" "${btrfssd}" "${btrfscompress}" || return 1 _mkfs yes "${DEVICE}${part}" "${fstype}" "${DESTDIR}" "${mountpoint}" "${labelname}" "${fsoptions}" "${btrfsdevices}" "${btrfssubvolume}" "${btrfslevel}" "${dosubvolume}" "${btrfssd}" "${btrfscompress}" || return 1
fi # fi
done done
DIALOG --msgbox "Auto-prepare was successful" 0 0 DIALOG --msgbox "Auto-prepare was successful" 0 0
@ -3434,13 +3441,13 @@ do_uefi_bootmgr_setup() {
} }
dorefind_uefi_common() { doefistub_uefi_common() {
[[ "$(uname -m)" == "x86_64" ]] && __CARCH="x86_64" [[ "$(uname -m)" == "x86_64" ]] && __CARCH="x86_64"
[[ "$(uname -m)" == "i686" ]] && __CARCH="i386" [[ "$(uname -m)" == "i686" ]] && __CARCH="i386"
if [[ "${__CARCH}" != "${UEFI_ARCH}" ]]; then if [[ "${__CARCH}" != "${UEFI_ARCH}" ]]; then
DIALOG --msgbox "EFISTUB support requires Kernel and UEFI arch to match, and requires CONFIG_EFI_STUB enabled kernel. Please install matching ARCH Kernel and try again." 0 0 DIALOG --msgbox "EFISTUB requires Kernel and UEFI arch to match, and requires CONFIG_EFI_STUB enabled kernel. Please install matching ARCH Kernel and try again." 0 0
elif [[ "${KERNELPKG}" == "linux-lts" ]]; then elif [[ "${KERNELPKG}" == "linux-lts" ]]; then
DIALOG --msgbox "LTS kernel does not support EFISTUB. Please install CONFIG_EFI_STUB enabled kernel and try again." 0 0 DIALOG --msgbox "LTS kernel does not support EFISTUB. Please install CONFIG_EFI_STUB enabled kernel and try again." 0 0
else else
@ -3457,33 +3464,10 @@ dorefind_uefi_common() {
check_uefisyspart check_uefisyspart
fi fi
DIALOG --msgbox "Installing rEFInd-${UEFI_ARCH} now ..." 0 0
# PACKAGES="rEFInd-${UEFI_ARCH} dosfstools efibootmgr"
PACKAGES="dosfstools efibootmgr" PACKAGES="dosfstools efibootmgr"
run_pacman run_pacman
PACKAGES="" PACKAGES=""
rm -rf "/tmp"/refind-bin* || true
curl -L "http://sourceforge.net/projects/refind/files/latest/download" -o "/tmp/refind-bin.zip"
bsdtar -C "/tmp" -xf "/tmp/refind-bin.zip"
mv "/tmp"/refind-bin-* "/tmp/refind-bin-dir"
install -d "${DESTDIR}/boot/efi/efi/arch/refind"
install -D -m0644 "/tmp/refind-bin-dir/refind/refind_${SPEC_UEFI_ARCH}.efi" "${DESTDIR}/boot/efi/efi/arch/refind/refind${SPEC_UEFI_ARCH}.efi"
install -D -m0644 "/tmp/refind-bin-dir/refind/refind.conf-sample" "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
cp -r "/tmp/refind-bin-dir/refind/icons" "${DESTDIR}/boot/efi/efi/arch/refind/icons"
cp -r "/tmp/refind-bin-dir/docs" "${DESTDIR}/boot/efi/efi/arch/refind/docs"
install -D -m0644 "/tmp/refind-bin-dir"/*.txt "${DESTDIR}/boot/efi/efi/arch/refind/docs"/
sed 's|^timeout 20|timeout 0|g' -i "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
sed 's|^#resolution 1024 768|resolution 1024 768|g' -i "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
sed 's|^#showtools shell, about, reboot|showtools shell,about,exit,shutdown,reboot|g' -i "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
sed 's|^#scan_driver_dirs EFI/tools/drivers,drivers|scan_driver_dirs EFI/tools/drivers|g' -i "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
sed 's|^#scanfor internal,external,optical|scanfor internal,external,optical,manual|g' -i "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
sed 's|^#max_tags 0|max_tags 0|g' -i "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
# install -D -m0644 "${DESTDIR}/boot/efi/efi/arch/refind/refind_linux.conf" "${DESTDIR}/boot/efi/efi/arch/refind_linux.conf" || true
_bootdev="$(df -T "${DESTDIR}/boot" | tail -n +2 | awk '{print $1}')" _bootdev="$(df -T "${DESTDIR}/boot" | tail -n +2 | awk '{print $1}')"
_rootdev="$(df -T "${DESTDIR}/" | tail -n +2 | awk '{print $1}')" _rootdev="$(df -T "${DESTDIR}/" | tail -n +2 | awk '{print $1}')"
_uefisysdev="$(df -T "${DESTDIR}/boot/efi" | tail -n +2 | awk '{print $1}')" _uefisysdev="$(df -T "${DESTDIR}/boot/efi" | tail -n +2 | awk '{print $1}')"
@ -3505,37 +3489,127 @@ dorefind_uefi_common() {
[[ "${_rootpart}" == "" ]] && _rootpart="${_rootdev}" [[ "${_rootpart}" == "" ]] && _rootpart="${_rootdev}"
## TODO: All complex stuff like dmraid, cyptsetup etc. for kernel parameters - common_bootloader_checks ? ## TODO: All complex stuff like dmraid, cyptsetup etc. for kernel parameters - common_bootloader_checks ?
_PARAMETERS_UNMOD="root=${_rootpart} ${ROOTFLAGS} rootfstype=${ROOTFS} ${RAIDARRAYS} ${CRYPTSETUP} ro initrd=\\EFI\\arch\\${INITRAMFS}.img" _PARAMETERS_UNMOD="root=${_rootpart} ${ROOTFLAGS} rootfstype=${ROOTFS} ${RAIDARRAYS} ${CRYPTSETUP} ro initrd=\\efi\\arch\\${INITRAMFS}.img"
_PARAMETERS_MOD=$(echo "${_PARAMETERS_UNMOD}" | sed -e 's# # #g' | sed -e 's# # #g') _PARAMETERS_MOD=$(echo "${_PARAMETERS_UNMOD}" | sed -e 's# # #g' | sed -e 's# # #g')
mkdir -p "${DESTDIR}/boot/efi/efi/arch"
cat << CONFEOF > "${DESTDIR}/boot/efi/efi/arch/linux.conf"
${_PARAMETERS_MOD}
CONFEOF
cat << REFINDEOF > "${DESTDIR}/boot/efi/efi/arch/refind_linux.conf" cat << REFINDEOF > "${DESTDIR}/boot/efi/efi/arch/refind_linux.conf"
"Boot with Defaults" "${_PARAMETERS_MOD}" "Boot with Defaults" "${_PARAMETERS_MOD}"
REFINDEOF REFINDEOF
install -D -m0644 "${DESTDIR}/boot/${VMLINUZ}" "${DESTDIR}/boot/efi/efi/arch/${VMLINUZ}.efi" rm -f "${DESTDIR}/boot/efi/efi/arch/${VMLINUZ}.efi"
install -D -m0644 "${DESTDIR}/boot/${INITRAMFS}.img" "${DESTDIR}/boot/efi/efi/arch/${INITRAMFS}.img" rm -f "${DESTDIR}/boot/efi/efi/arch/${INITRAMFS}.img"
cp -f "${DESTDIR}/boot/${VMLINUZ}" "${DESTDIR}/boot/efi/efi/arch/${VMLINUZ}.efi"
cp -f "${DESTDIR}/boot/${INITRAMFS}.img" "${DESTDIR}/boot/efi/efi/arch/${INITRAMFS}.img"
DIALOG --msgbox "You will now be put into the editor to edit refind.conf and refind_linux.conf . After you save your changes and exit the editor." 0 0 if [[ -e "${DESTDIR}/boot/efi/efi/arch/${VMLINUZ}.efi" ]] && [[ -e "${DESTDIR}/boot/efi/efi/arch/${INITRAMFS}.img" ]]; then
DIALOG --msgbox "The EFISTUB Kernel and initramfs have been copied to /boot/efi/efi/arch/${VMLINUZ}.efi and /boot/efi/efi/arch/${INITRAMFS}.img respectively. Make sure to update those files everytime /boot/${VMLINUZ} and /boot/${INITRAMFS}.img are updated during the Kernel package update(s)." 0 0
DIALOG --msgbox "You will now be put into the editor to edit linux.conf and refind_linux.conf . After you save your changes, exit the editor." 0 0
geteditor || return 1 geteditor || return 1
"${EDITOR}" "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf" "${EDITOR}" "${DESTDIR}/boot/efi/efi/arch/linux.conf"
"${EDITOR}" "${DESTDIR}/boot/efi/efi/arch/refind_linux.conf" "${EDITOR}" "${DESTDIR}/boot/efi/efi/arch/refind_linux.conf"
_DISC="$(echo "${_uefisysdev}" | sed 's/\(.\{8\}\).*/\1/')" _DISC="$(echo "${_uefisysdev}" | sed 's/\(.\{8\}\).*/\1/')"
UEFISYS_PART_NUM="$(${_BLKID} -p -i -s PART_ENTRY_NUMBER -o value "${_uefisysdev}")" UEFISYS_PART_NUM="$(${_BLKID} -p -i -s PART_ENTRY_NUMBER -o value "${_uefisysdev}")"
_BOOTMGR_LABEL="Arch Linux (EFISTUB)"
_BOOTMGR_DISC="${_DISC}"
_BOOTMGR_PART_NUM="${UEFISYS_PART_NUM}"
_BOOTMGR_LOADER_DIR="arch"
_BOOTMGR_LOADER_FILE="${VMLINUZ}.efi"
# do_uefi_bootmgr_setup
else
DIALOG --msgbox "Error setting up EFISTUB kernel and initramfs in /boot/efi." 0 0
fi
fi
}
dorefind_uefi_common() {
DIALOG --msgbox "Setting up rEFInd-${UEFI_ARCH} now ..." 0 0
# PACKAGES="rEFInd-${UEFI_ARCH} dosfstools efibootmgr"
PACKAGES="libarchive"
run_pacman
PACKAGES=""
rm -rf "/tmp"/refind-bin-* || true
rm -f "/tmp"/refind-bin-*.zip || true
if [[ -e "/tmp/refind-bin.zip" ]]; then
_REFIND_ZIP="/tmp/refind-bin.zip"
elif [[ -e "${_MEDIA}/packages/refind-bin.zip" ]]; then
_REFIND_ZIP="${_MEDIA}/packages/refind-bin.zip"
else
curl -L "http://sourceforge.net/projects/refind/files/latest/download" -o "/tmp/refind-bin.zip"
_REFIND_ZIP="/tmp/refind-bin.zip"
fi
LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/bin/bsdtar" -C "/tmp" -xf "${_REFIND_ZIP}"
mv "/tmp"/refind-bin-* "/tmp/refind-bin-dir"
mkdir -p "${DESTDIR}/boot/efi/efi/arch/refind"
cp -f "/tmp/refind-bin-dir/refind/refind_${SPEC_UEFI_ARCH}.efi" "${DESTDIR}/boot/efi/efi/arch/refind/refind${SPEC_UEFI_ARCH}.efi"
cp -f "/tmp/refind-bin-dir/refind/refind.conf-sample" "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
cp -rf "/tmp/refind-bin-dir/refind/icons" "${DESTDIR}/boot/efi/efi/arch/refind/icons"
cp -rf "/tmp/refind-bin-dir/docs" "${DESTDIR}/boot/efi/efi/arch/refind/docs"
cp -f "/tmp/refind-bin-dir"/*.txt "${DESTDIR}/boot/efi/efi/arch/refind/docs"/
sed 's|^timeout 20|timeout 0|g' -i "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
sed 's|^#resolution 1024 768|resolution 1024 768|g' -i "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
sed 's|^#showtools shell, about, reboot|showtools shell,about,exit,shutdown,reboot|g' -i "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
sed 's|^#scan_driver_dirs EFI/tools/drivers,drivers|scan_driver_dirs EFI/tools/drivers|g' -i "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
sed 's|^#scanfor internal,external,optical|scanfor internal,external,optical,manual|g' -i "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
sed 's|^#max_tags 0|max_tags 0|g' -i "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
if [[ -e "${DESTDIR}/boot/efi/efi/arch/refind/refind${SPEC_UEFI_ARCH}.efi" ]]; then
DIALOG --msgbox "rEFInd-${UEFI_ARCH} setup successfully." 0 0
DIALOG --msgbox "You will now be put into the editor to edit refind.conf . After you save your changes, exit the editor." 0 0
geteditor || return 1
"${EDITOR}" "${DESTDIR}/boot/efi/efi/arch/refind/refind.conf"
_uefisysdev="$(df -T "${DESTDIR}/boot/efi" | tail -n +2 | awk '{print $1}')"
_DISC="$(echo "${_uefisysdev}" | sed 's/\(.\{8\}\).*/\1/')"
UEFISYS_PART_NUM="$(${_BLKID} -p -i -s PART_ENTRY_NUMBER -o value "${_uefisysdev}")"
_BOOTMGR_LABEL="Arch Linux (rEFInd)" _BOOTMGR_LABEL="Arch Linux (rEFInd)"
_BOOTMGR_DISC="${_DISC}" _BOOTMGR_DISC="${_DISC}"
_BOOTMGR_PART_NUM="${UEFISYS_PART_NUM}" _BOOTMGR_PART_NUM="${UEFISYS_PART_NUM}"
_BOOTMGR_LOADER_DIR="arch\\refind" _BOOTMGR_LOADER_DIR="arch\\refind"
_BOOTMGR_LOADER_FILE="refind${SPEC_UEFI_ARCH}.efi" _BOOTMGR_LOADER_FILE="refind${SPEC_UEFI_ARCH}.efi"
do_uefi_bootmgr_setup do_uefi_bootmgr_setup
else
DIALOG --msgbox "Error setting up rEFInd-${UEFI_ARCH}." 0 0
fi fi
} }
do_efistub_uefi_x86_64() {
do_uefi_x86_64
doefistub_uefi_common
}
do_efistub_uefi_i686() {
do_uefi_i386
doefistub_uefi_common
}
dorefind_uefi_x86_64() { dorefind_uefi_x86_64() {
do_uefi_x86_64 do_efistub_uefi_x86_64
dorefind_uefi_common dorefind_uefi_common
@ -3543,7 +3617,7 @@ dorefind_uefi_x86_64() {
dorefind_uefi_i386() { dorefind_uefi_i386() {
do_uefi_i386 do_efistub_uefi_i686
dorefind_uefi_common dorefind_uefi_common
@ -3661,8 +3735,8 @@ EOF
# install syslinux # install syslinux
DIALOG --infobox "Installing the ${SYSLINUX} bootloader..." 0 0 DIALOG --infobox "Installing the ${SYSLINUX} bootloader..." 0 0
! [[ -d "${DESTDIR}/boot/${SYSLINUX_DIR}" ]] && mkdir -p "${DESTDIR}/boot/${SYSLINUX_DIR}" ! [[ -d "${DESTDIR}/boot/${SYSLINUX_DIR}" ]] && mkdir -p "${DESTDIR}/boot/${SYSLINUX_DIR}"
cp "${TEMPDIR}/${SYSLINUX_CONF}" "${DESTDIR}/boot/${SYSLINUX_DIR}/${SYSLINUX_CONF}" cp -f "${TEMPDIR}/${SYSLINUX_CONF}" "${DESTDIR}/boot/${SYSLINUX_DIR}/${SYSLINUX_CONF}"
cp "${DESTDIR}/usr/lib/syslinux"/*.c32 "${DESTDIR}/boot/${SYSLINUX_DIR}" cp -f "${DESTDIR}/usr/lib/syslinux"/*.c32 "${DESTDIR}/boot/${SYSLINUX_DIR}"
} }
# finish_syslinux # finish_syslinux
@ -3686,7 +3760,7 @@ finish_syslinux () {
return 1 return 1
fi fi
[[ -f "/src/boot/syslinux/splash.png" ]] && cp /src/boot/syslinux/splash.png "${DESTDIR}/boot/${SYSLINUX_DIR}" [[ -f "${_MEDIA}/boot/syslinux/splash.png" ]] && cp -f "${_MEDIA}/boot/syslinux/splash.png" "${DESTDIR}/boot/${SYSLINUX_DIR}"
chroot_umount chroot_umount
DIALOG --msgbox "${SYSLINUX} was successfully installed." 0 0 DIALOG --msgbox "${SYSLINUX} was successfully installed." 0 0
@ -4047,42 +4121,42 @@ dogrub2_config() {
######## ########
BOOT_PART_FS_UUID="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_uuid" "${DESTDIR}/boot" 2>/dev/null)" BOOT_PART_FS_UUID="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_uuid" "${DESTDIR}/boot" 2>/dev/null)"
BOOT_PART_FS="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs" "${DESTDIR}/boot" 2>/dev/null)" BOOT_PART_FS="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs" "${DESTDIR}/boot" 2>/dev/null)"
BOOT_PART_FS_LABEL="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_label" "${DESTDIR}/boot" 2>/dev/null)" BOOT_PART_FS_LABEL="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_label" "${DESTDIR}/boot" 2>/dev/null)"
BOOT_PART_DRIVE="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="drive" "${DESTDIR}/boot" 2>/dev/null)" BOOT_PART_DRIVE="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="drive" "${DESTDIR}/boot" 2>/dev/null)"
BOOT_PART_HINTS_STRING="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="hints_string" "${DESTDIR}/boot" 2>/dev/null)" BOOT_PART_HINTS_STRING="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="hints_string" "${DESTDIR}/boot" 2>/dev/null)"
######## ########
ROOT_PART_FS_UUID="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_uuid" "${DESTDIR}/" 2>/dev/null)" ROOT_PART_FS_UUID="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_uuid" "${DESTDIR}/" 2>/dev/null)"
ROOT_PART_FS="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs" "${DESTDIR}/" 2>/dev/null)" ROOT_PART_FS="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs" "${DESTDIR}/" 2>/dev/null)"
ROOT_PART_FS_LABEL="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_label" "${DESTDIR}/" 2>/dev/null)" ROOT_PART_FS_LABEL="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_label" "${DESTDIR}/" 2>/dev/null)"
ROOT_PART_DEVICE="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="device" "${DESTDIR}/" 2>/dev/null)" ROOT_PART_DEVICE="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="device" "${DESTDIR}/" 2>/dev/null)"
ROOT_PART_HINTS_STRING="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="hints_string" "${DESTDIR}/" 2>/dev/null)" ROOT_PART_HINTS_STRING="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="hints_string" "${DESTDIR}/" 2>/dev/null)"
######## ########
USR_PART_FS_UUID="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_uuid" "${DESTDIR}/usr" 2>/dev/null)" USR_PART_FS_UUID="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_uuid" "${DESTDIR}/usr" 2>/dev/null)"
USR_PART_FS="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs" "${DESTDIR}/usr" 2>/dev/null)" USR_PART_FS="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs" "${DESTDIR}/usr" 2>/dev/null)"
USR_PART_FS_LABEL="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_label" "${DESTDIR}/usr" 2>/dev/null)" USR_PART_FS_LABEL="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_label" "${DESTDIR}/usr" 2>/dev/null)"
USR_PART_HINTS_STRING="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="hints_string" "${DESTDIR}/usr" 2>/dev/null)" USR_PART_HINTS_STRING="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="hints_string" "${DESTDIR}/usr" 2>/dev/null)"
######## ########
if [[ "${GRUB2_UEFI}" == "1" ]]; then if [[ "${GRUB2_UEFI}" == "1" ]]; then
UEFISYS_PART_FS_UUID="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_uuid" "${DESTDIR}/boot/efi" 2>/dev/null)" UEFISYS_PART_FS_UUID="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_uuid" "${DESTDIR}/boot/efi" 2>/dev/null)"
UEFISYS_PART_FS_LABEL="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_label" "${DESTDIR}/boot/efi" 2>/dev/null)" UEFISYS_PART_FS_LABEL="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_label" "${DESTDIR}/boot/efi" 2>/dev/null)"
UEFISYS_PART_DRIVE="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="drive" "${DESTDIR}/boot/efi" 2>/dev/null)" UEFISYS_PART_DRIVE="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="drive" "${DESTDIR}/boot/efi" 2>/dev/null)"
UEFISYS_PART_HINTS_STRING="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="hints_string" "${DESTDIR}/boot/efi" 2>/dev/null)" UEFISYS_PART_HINTS_STRING="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="hints_string" "${DESTDIR}/boot/efi" 2>/dev/null)"
fi fi
######## ########
@ -4103,7 +4177,7 @@ dogrub2_config() {
######## ########
cp "${DESTDIR}/${GRUB2_PREFIX_DIR}/grub.cfg" "/tmp/.grub.cfg" cp -f "${DESTDIR}/${GRUB2_PREFIX_DIR}/grub.cfg" "/tmp/.grub.cfg"
# remove the default entries by truncating the file at our little tag (set default) # remove the default entries by truncating the file at our little tag (set default)
head -n $(cat /tmp/.grub.cfg | grep -n 'set default' | cut -d: -f 1) "/tmp/.grub.cfg" > "${DESTDIR}/${GRUB2_PREFIX_DIR}/grub.cfg" head -n $(cat /tmp/.grub.cfg | grep -n 'set default' | cut -d: -f 1) "/tmp/.grub.cfg" > "${DESTDIR}/${GRUB2_PREFIX_DIR}/grub.cfg"
rm -f "/tmp/.grub.cfg" rm -f "/tmp/.grub.cfg"
@ -4349,11 +4423,11 @@ dogrub2_common_after() {
fi fi
# Edit grub.cfg config file # Edit grub.cfg config file
DIALOG --msgbox "You must now review the grub2 configuration file.\n\nYou will now be put into the editor. After you save your changes and exit the editor, you can install GRUB2." 0 0 DIALOG --msgbox "You must now review the grub2 configuration file.\n\nYou will now be put into the editor. After you save your changes, exit the editor." 0 0
geteditor || return 1 geteditor || return 1
"${EDITOR}" "${DESTDIR}/${GRUB2_PREFIX_DIR}/grub.cfg" "${EDITOR}" "${DESTDIR}/${GRUB2_PREFIX_DIR}/grub.cfg"
cp "${DESTDIR}/usr/share/grub/unicode.pf2" "${DESTDIR}/${GRUB2_PREFIX_DIR}/" cp -f "${DESTDIR}/usr/share/grub/unicode.pf2" "${DESTDIR}/${GRUB2_PREFIX_DIR}/"
GRUB2_BIOS="" GRUB2_BIOS=""
GRUB2_UEFI="" GRUB2_UEFI=""
@ -4538,10 +4612,10 @@ dogrub2_uefi_common() {
mkdir -p "${DESTDIR}/boot/grub" mkdir -p "${DESTDIR}/boot/grub"
BOOT_PART_FS_UUID="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_uuid" "${DESTDIR}/boot" 2>/dev/null)" BOOT_PART_FS_UUID="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs_uuid" "${DESTDIR}/boot" 2>/dev/null)"
BOOT_PART_FS="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs" "${DESTDIR}/boot" 2>/dev/null)" BOOT_PART_FS="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="fs" "${DESTDIR}/boot" 2>/dev/null)"
BOOT_PART_HINTS_STRING="$(LD_LIBRARY_PATH="${DESTDIR}/lib:${DESTDIR}/usr/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="hints_string" "${DESTDIR}/boot" 2>/dev/null)" BOOT_PART_HINTS_STRING="$(LD_LIBRARY_PATH="${DESTDIR}/usr/lib:${DESTDIR}/lib" "${DESTDIR}/usr/sbin/grub-probe" --target="hints_string" "${DESTDIR}/boot" 2>/dev/null)"
[[ -e "${DESTDIR}/boot/grub/grub.cfg" ]] && mv "${DESTDIR}/boot/grub/grub.cfg" "${DESTDIR}/boot/grub/grub.cfg.save" [[ -e "${DESTDIR}/boot/grub/grub.cfg" ]] && mv "${DESTDIR}/boot/grub/grub.cfg" "${DESTDIR}/boot/grub/grub.cfg.save"
@ -4580,7 +4654,7 @@ fi
EOF EOF
cp "${DESTDIR}/boot/grub/grub.cfg" "${DESTDIR}/boot/efi/efi/arch_grub/grub${SPEC_UEFI_ARCH}_standalone.cfg" cp -f "${DESTDIR}/boot/grub/grub.cfg" "${DESTDIR}/boot/efi/efi/arch_grub/grub${SPEC_UEFI_ARCH}_standalone.cfg"
__WD="${PWD}/" __WD="${PWD}/"
@ -5257,7 +5331,7 @@ mainmenu() {
install_bootloader ;; install_bootloader ;;
"8") "8")
if [[ "${S_SRC}" = "1" && "${MODE}" = "media" ]]; then if [[ "${S_SRC}" = "1" && "${MODE}" = "media" ]]; then
umount /src >/dev/null 2>&1 umount "${_MEDIA}" >/dev/null 2>&1
fi fi
[[ -e /tmp/.setup-running ]] && rm /tmp/.setup-running [[ -e /tmp/.setup-running ]] && rm /tmp/.setup-running
clear clear