Updated the ISO base according to archiso 65-1
This commit is contained in:
parent
7eef98d76b
commit
1e929c8a6e
|
@ -1 +1 @@
|
||||||
LANG=en_US.UTF-8
|
LANG=C.UTF-8
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
# remove from airootfs!
|
|
||||||
[Trigger]
|
|
||||||
Operation = Install
|
|
||||||
Type = Package
|
|
||||||
Target = glibc
|
|
||||||
|
|
||||||
[Action]
|
|
||||||
Description = Uncommenting en_US.UTF-8 locale and running locale-gen...
|
|
||||||
When = PostTransaction
|
|
||||||
Depends = glibc
|
|
||||||
Depends = sed
|
|
||||||
Depends = sh
|
|
||||||
Exec = /bin/sh -c "sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen && locale-gen"
|
|
|
@ -0,0 +1 @@
|
||||||
|
/dev/null
|
|
@ -2,7 +2,7 @@
|
||||||
Description=Temporary /etc/pacman.d/gnupg directory
|
Description=Temporary /etc/pacman.d/gnupg directory
|
||||||
|
|
||||||
[Mount]
|
[Mount]
|
||||||
What=tmpfs
|
What=ramfs
|
||||||
Where=/etc/pacman.d/gnupg
|
Where=/etc/pacman.d/gnupg
|
||||||
Type=tmpfs
|
Type=ramfs
|
||||||
Options=mode=0755
|
Options=mode=0755
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
/usr/lib/systemd/system/hv_fcopy_daemon.service
|
|
@ -0,0 +1 @@
|
||||||
|
/usr/lib/systemd/system/hv_kvp_daemon.service
|
|
@ -0,0 +1 @@
|
||||||
|
/usr/lib/systemd/system/hv_vss_daemon.service
|
|
@ -0,0 +1 @@
|
||||||
|
/usr/lib/systemd/system/vmtoolsd.service
|
|
@ -0,0 +1 @@
|
||||||
|
/usr/lib/systemd/system/vmware-vmblock-fuse.service
|
|
@ -1,6 +1,8 @@
|
||||||
# Reflector configuration file for the systemd service.
|
# Reflector configuration file for the systemd service.
|
||||||
|
|
||||||
--save /etc/pacman.d/mirrorlist
|
--save /etc/pacman.d/mirrorlist
|
||||||
|
--ipv4
|
||||||
|
--ipv6
|
||||||
--protocol https
|
--protocol https
|
||||||
--latest 20
|
--latest 20
|
||||||
--sort rate
|
--sort rate
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
title Boot Archcraft (64bit, UEFI)
|
title Boot Archcraft (64bit, UEFI)
|
||||||
|
sort-key 01
|
||||||
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||||
initrd /%INSTALL_DIR%/boot/intel-ucode.img
|
initrd /%INSTALL_DIR%/boot/intel-ucode.img
|
||||||
initrd /%INSTALL_DIR%/boot/amd-ucode.img
|
initrd /%INSTALL_DIR%/boot/amd-ucode.img
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
title Boot Archcraft (64bit, UEFI, Copy to RAM)
|
title Boot Archcraft (64bit, UEFI, Copy to RAM)
|
||||||
|
sort-key 02
|
||||||
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||||
initrd /%INSTALL_DIR%/boot/intel-ucode.img
|
initrd /%INSTALL_DIR%/boot/intel-ucode.img
|
||||||
initrd /%INSTALL_DIR%/boot/amd-ucode.img
|
initrd /%INSTALL_DIR%/boot/amd-ucode.img
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
title Boot Archcraft (64bit, UEFI, NVIDIA)
|
title Boot Archcraft (64bit, UEFI, NVIDIA)
|
||||||
|
sort-key 03
|
||||||
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||||
initrd /%INSTALL_DIR%/boot/intel-ucode.img
|
initrd /%INSTALL_DIR%/boot/intel-ucode.img
|
||||||
initrd /%INSTALL_DIR%/boot/amd-ucode.img
|
initrd /%INSTALL_DIR%/boot/amd-ucode.img
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
timeout 5
|
timeout 10
|
||||||
default 01-archcraftiso-x86_64-linux.conf
|
default 01-archcraftiso-x86_64-linux.conf
|
||||||
|
beep on
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
# Load partition table and file system modules
|
||||||
|
insmod part_gpt
|
||||||
|
insmod part_msdos
|
||||||
|
insmod fat
|
||||||
|
insmod iso9660
|
||||||
|
|
||||||
|
# Use graphics-mode output
|
||||||
|
insmod all_video
|
||||||
|
insmod font
|
||||||
|
if loadfont "${prefix}/fonts/unicode.pf2" ; then
|
||||||
|
insmod gfxterm
|
||||||
|
set gfxmode="auto"
|
||||||
|
terminal_input console
|
||||||
|
terminal_output gfxterm
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Enable serial console
|
||||||
|
if serial --unit=0 --speed=115200; then
|
||||||
|
terminal_input --append serial
|
||||||
|
terminal_output --append serial
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set default menu entry
|
||||||
|
default=archcraft
|
||||||
|
timeout=10
|
||||||
|
timeout_style=menu
|
||||||
|
|
||||||
|
# Menu entries
|
||||||
|
|
||||||
|
menuentry "Boot Archcraft (64bit, UEFI)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraft' {
|
||||||
|
set gfxpayload=keep
|
||||||
|
search --no-floppy --set=root --label %ARCHISO_LABEL%
|
||||||
|
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G
|
||||||
|
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "Boot Archcraft (64bit, UEFI, Copy to RAM)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraft-ctr' {
|
||||||
|
set gfxpayload=keep
|
||||||
|
search --no-floppy --set=root --label %ARCHISO_LABEL%
|
||||||
|
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=1G
|
||||||
|
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "Boot Archcraft (64bit, UEFI, NVIDIA)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraft-nvidia' {
|
||||||
|
set gfxpayload=keep
|
||||||
|
search --no-floppy --set=root --label %ARCHISO_LABEL%
|
||||||
|
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G nouveau.modeset=0 modprobe.blacklist=nouveau nvidia i915.modeset=1 radeon.modeset=1
|
||||||
|
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "${grub_platform}" == "efi" ]; then
|
||||||
|
if [ "${grub_cpu}" == "x86_64" ]; then
|
||||||
|
menuentry "UEFI Shell" --class recovery {
|
||||||
|
insmod chain
|
||||||
|
search --no-floppy --set=root --label %ARCHISO_LABEL%
|
||||||
|
chainloader /shellx64.efi
|
||||||
|
}
|
||||||
|
elif [ "${grub_cpu}" == "i386" ]; then
|
||||||
|
menuentry "UEFI Shell" --class recovery {
|
||||||
|
insmod chain
|
||||||
|
search --no-floppy --set=root --label %ARCHISO_LABEL%
|
||||||
|
chainloader /shellia32.efi
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
menuentry 'UEFI Firmware Settings' --class recovery --id 'uefi-firmware' {
|
||||||
|
fwsetup
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
menuentry "System shutdown" --class shutdown --class poweroff {
|
||||||
|
halt
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "System restart" --class restart --class reboot {
|
||||||
|
reboot
|
||||||
|
}
|
310
mkarchcraftiso
310
mkarchcraftiso
|
@ -6,7 +6,7 @@ set -e -u
|
||||||
|
|
||||||
# Control the environment
|
# Control the environment
|
||||||
umask 0022
|
umask 0022
|
||||||
export LC_ALL="C"
|
export LC_ALL="C.UTF-8"
|
||||||
[[ -v SOURCE_DATE_EPOCH ]] || printf -v SOURCE_DATE_EPOCH '%(%s)T' -1
|
[[ -v SOURCE_DATE_EPOCH ]] || printf -v SOURCE_DATE_EPOCH '%(%s)T' -1
|
||||||
export SOURCE_DATE_EPOCH
|
export SOURCE_DATE_EPOCH
|
||||||
|
|
||||||
|
@ -510,71 +510,91 @@ _make_boot_on_fat() {
|
||||||
# Create a FAT image (efiboot.img) which will serve as the EFI system partition
|
# Create a FAT image (efiboot.img) which will serve as the EFI system partition
|
||||||
# $1: image size in bytes
|
# $1: image size in bytes
|
||||||
_make_efibootimg() {
|
_make_efibootimg() {
|
||||||
local imgsize="0"
|
local imgsize_kib="0"
|
||||||
|
local imgsize_bytes=${1}
|
||||||
|
|
||||||
|
if (( imgsize_bytes < 2*1024*1024 )); then
|
||||||
|
_msg_info "Validating '${bootmode}': efiboot.img size is ${imgsize_bytes} bytes is less than 2 MiB! Bumping up to 2 MiB"
|
||||||
|
imgsize_bytes=$((2*1024*1024))
|
||||||
|
fi
|
||||||
|
|
||||||
# Convert from bytes to KiB and round up to the next full MiB with an additional MiB for reserved sectors.
|
# Convert from bytes to KiB and round up to the next full MiB with an additional MiB for reserved sectors.
|
||||||
imgsize="$(awk 'function ceil(x){return int(x)+(x>int(x))}
|
imgsize_kib="$(awk 'function ceil(x){return int(x)+(x>int(x))}
|
||||||
function byte_to_kib(x){return x/1024}
|
function byte_to_kib(x){return x/1024}
|
||||||
function mib_to_kib(x){return x*1024}
|
function mib_to_kib(x){return x*1024}
|
||||||
END {print mib_to_kib(ceil((byte_to_kib($1)+1024)/1024))}' <<< "${1}"
|
END {print mib_to_kib(ceil((byte_to_kib($1)+1024)/1024))}' <<< "${imgsize_bytes}"
|
||||||
)"
|
)"
|
||||||
# The FAT image must be created with mkfs.fat not mformat, as some systems have issues with mformat made images:
|
# The FAT image must be created with mkfs.fat not mformat, as some systems have issues with mformat made images:
|
||||||
# https://lists.gnu.org/archive/html/grub-devel/2019-04/msg00099.html
|
# https://lists.gnu.org/archive/html/grub-devel/2019-04/msg00099.html
|
||||||
rm -f -- "${work_dir}/efiboot.img"
|
rm -f -- "${work_dir}/efiboot.img"
|
||||||
_msg_info "Creating FAT image of size: ${imgsize} KiB..."
|
_msg_info "Creating FAT image of size: ${imgsize_kib} KiB..."
|
||||||
if [[ "${quiet}" == "y" ]]; then
|
if [[ "${quiet}" == "y" ]]; then
|
||||||
# mkfs.fat does not have a -q/--quiet option, so redirect stdout to /dev/null instead
|
# mkfs.fat does not have a -q/--quiet option, so redirect stdout to /dev/null instead
|
||||||
# https://github.com/dosfstools/dosfstools/issues/103
|
# https://github.com/dosfstools/dosfstools/issues/103
|
||||||
mkfs.fat -C -n ARCHISO_EFI "${work_dir}/efiboot.img" "${imgsize}" > /dev/null
|
mkfs.fat -C -n ARCHISO_EFI "${work_dir}/efiboot.img" "${imgsize_kib}" > /dev/null
|
||||||
else
|
else
|
||||||
mkfs.fat -C -n ARCHISO_EFI "${work_dir}/efiboot.img" "${imgsize}"
|
mkfs.fat -C -n ARCHISO_EFI "${work_dir}/efiboot.img" "${imgsize_kib}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create the default/fallback boot path in which a boot loaders will be placed later.
|
# Create the default/fallback boot path in which a boot loaders will be placed later.
|
||||||
mmd -i "${work_dir}/efiboot.img" ::/EFI ::/EFI/BOOT
|
mmd -i "${work_dir}/efiboot.img" ::/EFI ::/EFI/BOOT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Copy the grub.cfg file in efiboot.img which is used by both IA32 UEFI and x64 UEFI.
|
||||||
|
_make_efibootimg_grubcfg() {
|
||||||
|
mcopy -i "${work_dir}/efiboot.img" \
|
||||||
|
"${work_dir}/grub.cfg" ::/EFI/BOOT/grub.cfg
|
||||||
|
}
|
||||||
|
|
||||||
_make_bootmode_uefi-ia32.grub.esp() {
|
_make_bootmode_uefi-ia32.grub.esp() {
|
||||||
# Fill Grub configuration files
|
# Fill GRUB configuration files
|
||||||
sed "s|%ARCHISO_LABEL%|${iso_label}|g;
|
sed "s|%ARCHISO_LABEL%|${iso_label}|g;
|
||||||
s|%INSTALL_DIR%|${install_dir}|g;
|
s|%INSTALL_DIR%|${install_dir}|g;
|
||||||
s|%ARCH%|${arch}|g" \
|
s|%ARCH%|${arch}|g" \
|
||||||
"${profile}/grub/grub.cfg" > "${work_dir}/grub.cfg"
|
"${profile}/grub/grub.cfg" > "${work_dir}/grub.cfg"
|
||||||
|
|
||||||
# shellcheck disable=SC2016
|
IFS='' read -r -d '' grubembedcfg <<'EOF' || true
|
||||||
printf 'configfile ${cmdpath}/grub.cfg\n' > "${work_dir}/grub-embed.cfg"
|
if ! [ -d "$cmdpath" ]; then
|
||||||
|
# On some firmware, GRUB has a wrong cmdpath when booted from an optical disc.
|
||||||
|
# https://gitlab.archlinux.org/archlinux/archiso/-/issues/183
|
||||||
|
if regexp --set=1:isodevice '^(\([^)]+\))\/?[Ee][Ff][Ii]\/[Bb][Oo][Oo][Tt]\/?$' "$cmdpath"; then
|
||||||
|
cmdpath="${isodevice}/EFI/BOOT"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
configfile "${cmdpath}/grub.cfg"
|
||||||
|
EOF
|
||||||
|
printf '%s\n' "$grubembedcfg" > "${work_dir}/grub-embed.cfg"
|
||||||
|
|
||||||
# Create EFI file
|
# Create EFI binary
|
||||||
grub-mkstandalone -O i386-efi \
|
grub-mkstandalone -O i386-efi \
|
||||||
--modules="part_gpt part_msdos fat iso9660" \
|
--modules="part_gpt part_msdos fat iso9660" \
|
||||||
--locales="en@quot" \
|
--locales="en@quot" \
|
||||||
--themes="" \
|
--themes="" \
|
||||||
|
--sbat=/usr/share/grub/sbat.csv \
|
||||||
-o "${work_dir}/BOOTIA32.EFI" "boot/grub/grub.cfg=${work_dir}/grub-embed.cfg"
|
-o "${work_dir}/BOOTIA32.EFI" "boot/grub/grub.cfg=${work_dir}/grub-embed.cfg"
|
||||||
# Add GRUB to the list of files used to calculate the required FAT image size.
|
# Add GRUB to the list of files used to calculate the required FAT image size.
|
||||||
efiboot_files+=("${work_dir}/BOOTIA32.EFI"
|
efiboot_files+=("${work_dir}/BOOTIA32.EFI"
|
||||||
"${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi")
|
"${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi")
|
||||||
|
|
||||||
if [[ ! " ${bootmodes[*]} " =~ uefi-x64.systemd-boot.esp ]]; then
|
if [[ " ${bootmodes[*]} " =~ uefi-x64.systemd-boot.esp ]]; then
|
||||||
efiboot_files+=("${pacstrap_dir}/boot/vmlinuz-"*
|
# TODO: Remove this branch.
|
||||||
"${pacstrap_dir}/boot/initramfs-"*".img")
|
_run_once _make_bootmode_uefi-x64.systemd-boot.esp
|
||||||
|
elif [[ " ${bootmodes[*]} " =~ uefi-x64.grub.esp ]]; then
|
||||||
|
_run_once _make_bootmode_uefi-x64.grub.esp
|
||||||
|
else
|
||||||
efiboot_imgsize="$(du -bc "${efiboot_files[@]}" \
|
efiboot_imgsize="$(du -bc "${efiboot_files[@]}" \
|
||||||
2>/dev/null | awk 'END { print $1 }')"
|
2>/dev/null | awk 'END { print $1 }')"
|
||||||
# Create a FAT image for the EFI system partition
|
# Create a FAT image for the EFI system partition
|
||||||
_make_efibootimg "$efiboot_imgsize"
|
_make_efibootimg "$efiboot_imgsize"
|
||||||
else
|
|
||||||
_run_once _make_bootmode_uefi-x64.systemd-boot.esp
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Copy grub EFI binary to the default/fallback boot path
|
# Copy GRUB EFI binary to the default/fallback boot path
|
||||||
mcopy -i "${work_dir}/efiboot.img" \
|
mcopy -i "${work_dir}/efiboot.img" \
|
||||||
"${work_dir}/BOOTIA32.EFI" ::/EFI/BOOT/BOOTIA32.EFI
|
"${work_dir}/BOOTIA32.EFI" ::/EFI/BOOT/BOOTIA32.EFI
|
||||||
|
|
||||||
# Copy GRUB configuration files
|
# Copy GRUB configuration files
|
||||||
mcopy -i "${work_dir}/efiboot.img" \
|
_run_once _make_efibootimg_grubcfg
|
||||||
"${work_dir}/grub.cfg" ::/EFI/BOOT/grub.cfg
|
|
||||||
|
|
||||||
# shellia32.efi is picked up automatically when on /
|
|
||||||
if [[ -e "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi" ]]; then
|
if [[ -e "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi" ]]; then
|
||||||
mcopy -i "${work_dir}/efiboot.img" \
|
mcopy -i "${work_dir}/efiboot.img" \
|
||||||
"${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi" ::/shellia32.efi
|
"${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi" ::/shellia32.efi
|
||||||
|
@ -589,7 +609,7 @@ _make_bootmode_uefi-ia32.grub.eltorito() {
|
||||||
# uefi-ia32.grub.eltorito has the same requirements as uefi-ia32.grub.esp
|
# uefi-ia32.grub.eltorito has the same requirements as uefi-ia32.grub.esp
|
||||||
_run_once _make_bootmode_uefi-ia32.grub.esp
|
_run_once _make_bootmode_uefi-ia32.grub.esp
|
||||||
|
|
||||||
# Additionally set up system-boot in ISO 9660. This allows creating a medium for the live environment by using
|
# Additionally set up systemd-boot in ISO 9660. This allows creating a medium for the live environment by using
|
||||||
# manual partitioning and simply copying the ISO 9660 file system contents.
|
# manual partitioning and simply copying the ISO 9660 file system contents.
|
||||||
# This is not related to El Torito booting and no firmware uses these files.
|
# This is not related to El Torito booting and no firmware uses these files.
|
||||||
_msg_info "Preparing an /EFI directory for the ISO 9660 file system..."
|
_msg_info "Preparing an /EFI directory for the ISO 9660 file system..."
|
||||||
|
@ -603,7 +623,6 @@ _make_bootmode_uefi-ia32.grub.eltorito() {
|
||||||
install -m 0644 -- "${work_dir}/grub.cfg" "${isofs_dir}/EFI/BOOT/grub.cfg"
|
install -m 0644 -- "${work_dir}/grub.cfg" "${isofs_dir}/EFI/BOOT/grub.cfg"
|
||||||
|
|
||||||
# edk2-shell based UEFI shell
|
# edk2-shell based UEFI shell
|
||||||
# shellia32.efi is picked up automatically when on /
|
|
||||||
if [[ -e "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi" ]]; then
|
if [[ -e "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi" ]]; then
|
||||||
install -m 0644 -- "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi" \
|
install -m 0644 -- "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi" \
|
||||||
"${isofs_dir}/shellia32.efi"
|
"${isofs_dir}/shellia32.efi"
|
||||||
|
@ -612,7 +631,84 @@ _make_bootmode_uefi-ia32.grub.eltorito() {
|
||||||
_msg_info "Done!"
|
_msg_info "Done!"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Prepare system-boot for booting when written to a disk (isohybrid)
|
_make_bootmode_uefi-x64.grub.esp() {
|
||||||
|
# Fill Grub configuration files
|
||||||
|
sed "s|%ARCHISO_LABEL%|${iso_label}|g;
|
||||||
|
s|%INSTALL_DIR%|${install_dir}|g;
|
||||||
|
s|%ARCH%|${arch}|g" \
|
||||||
|
"${profile}/grub/grub.cfg" > "${work_dir}/grub.cfg"
|
||||||
|
|
||||||
|
IFS='' read -r -d '' grubembedcfg <<'EOF' || true
|
||||||
|
if ! [ -d "$cmdpath" ]; then
|
||||||
|
# On some firmware, GRUB has a wrong cmdpath when booted from an optical disc.
|
||||||
|
# https://gitlab.archlinux.org/archlinux/archiso/-/issues/183
|
||||||
|
if regexp --set=1:isodevice '^(\([^)]+\))\/?[Ee][Ff][Ii]\/[Bb][Oo][Oo][Tt]\/?$' "$cmdpath"; then
|
||||||
|
cmdpath="${isodevice}/EFI/BOOT"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
configfile "${cmdpath}/grub.cfg"
|
||||||
|
EOF
|
||||||
|
printf '%s\n' "$grubembedcfg" > "${work_dir}/grub-embed.cfg"
|
||||||
|
|
||||||
|
# Create EFI binary
|
||||||
|
grub-mkstandalone -O x86_64-efi \
|
||||||
|
--modules="part_gpt part_msdos fat iso9660" \
|
||||||
|
--locales="en@quot" \
|
||||||
|
--themes="" \
|
||||||
|
--sbat=/usr/share/grub/sbat.csv \
|
||||||
|
-o "${work_dir}/BOOTx64.EFI" "boot/grub/grub.cfg=${work_dir}/grub-embed.cfg"
|
||||||
|
# Add GRUB to the list of files used to calculate the required FAT image size.
|
||||||
|
efiboot_files+=("${work_dir}/BOOTx64.EFI"
|
||||||
|
"${pacstrap_dir}/usr/share/edk2-shell/x64/Shell_Full.efi")
|
||||||
|
|
||||||
|
efiboot_imgsize="$(du -bc "${efiboot_files[@]}" \
|
||||||
|
2>/dev/null | awk 'END { print $1 }')"
|
||||||
|
|
||||||
|
# Create a FAT image for the EFI system partition
|
||||||
|
_make_efibootimg "$efiboot_imgsize"
|
||||||
|
|
||||||
|
# Copy grub EFI binary to the default/fallback boot path
|
||||||
|
mcopy -i "${work_dir}/efiboot.img" \
|
||||||
|
"${work_dir}/BOOTx64.EFI" ::/EFI/BOOT/BOOTx64.EFI
|
||||||
|
|
||||||
|
_run_once _make_efibootimg_grubcfg
|
||||||
|
|
||||||
|
if [[ -e "${pacstrap_dir}/usr/share/edk2-shell/x64/Shell_Full.efi" ]]; then
|
||||||
|
mcopy -i "${work_dir}/efiboot.img" \
|
||||||
|
"${pacstrap_dir}/usr/share/edk2-shell/x64/Shell_Full.efi" ::/shellx64.efi
|
||||||
|
fi
|
||||||
|
|
||||||
|
_msg_info "Done! GRUB set up for UEFI booting successfully."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prepare GRUB for El Torito booting
|
||||||
|
_make_bootmode_uefi-x64.grub.eltorito() {
|
||||||
|
# El Torito UEFI boot requires an image containing the EFI system partition.
|
||||||
|
# uefi-x64.grub.eltorito has the same requirements as uefi-x64.grub.esp
|
||||||
|
_run_once _make_bootmode_uefi-x64.grub.esp
|
||||||
|
|
||||||
|
# Additionally set up systemd-boot in ISO 9660. This allows creating a medium for the live environment by using
|
||||||
|
# manual partitioning and simply copying the ISO 9660 file system contents.
|
||||||
|
# This is not related to El Torito booting and no firmware uses these files.
|
||||||
|
_msg_info "Preparing an /EFI directory for the ISO 9660 file system..."
|
||||||
|
install -d -m 0755 -- "${isofs_dir}/EFI/BOOT"
|
||||||
|
|
||||||
|
# Copy GRUB EFI binary to the default/fallback boot path
|
||||||
|
install -m 0644 -- "${work_dir}/BOOTx64.EFI" \
|
||||||
|
"${isofs_dir}/EFI/BOOT/BOOTx64.EFI"
|
||||||
|
|
||||||
|
# Copy GRUB configuration files
|
||||||
|
install -m 0644 -- "${work_dir}/grub.cfg" "${isofs_dir}/EFI/BOOT"
|
||||||
|
|
||||||
|
# edk2-shell based UEFI shell
|
||||||
|
if [[ -e "${pacstrap_dir}/usr/share/edk2-shell/x64/Shell_Full.efi" ]]; then
|
||||||
|
install -m 0644 -- "${pacstrap_dir}/usr/share/edk2-shell/x64/Shell_Full.efi" "${isofs_dir}/shellx64.efi"
|
||||||
|
fi
|
||||||
|
|
||||||
|
_msg_info "Done!"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prepare systemd-boot for booting when written to a disk (isohybrid)
|
||||||
_make_bootmode_uefi-x64.systemd-boot.esp() {
|
_make_bootmode_uefi-x64.systemd-boot.esp() {
|
||||||
local _file efiboot_imgsize
|
local _file efiboot_imgsize
|
||||||
local _available_ucodes=()
|
local _available_ucodes=()
|
||||||
|
@ -662,13 +758,13 @@ _make_bootmode_uefi-x64.systemd-boot.esp() {
|
||||||
_msg_info "Done! systemd-boot set up for UEFI booting successfully."
|
_msg_info "Done! systemd-boot set up for UEFI booting successfully."
|
||||||
}
|
}
|
||||||
|
|
||||||
# Prepare system-boot for El Torito booting
|
# Prepare systemd-boot for El Torito booting
|
||||||
_make_bootmode_uefi-x64.systemd-boot.eltorito() {
|
_make_bootmode_uefi-x64.systemd-boot.eltorito() {
|
||||||
# El Torito UEFI boot requires an image containing the EFI system partition.
|
# El Torito UEFI boot requires an image containing the EFI system partition.
|
||||||
# uefi-x64.systemd-boot.eltorito has the same requirements as uefi-x64.systemd-boot.esp
|
# uefi-x64.systemd-boot.eltorito has the same requirements as uefi-x64.systemd-boot.esp
|
||||||
_run_once _make_bootmode_uefi-x64.systemd-boot.esp
|
_run_once _make_bootmode_uefi-x64.systemd-boot.esp
|
||||||
|
|
||||||
# Additionally set up system-boot in ISO 9660. This allows creating a medium for the live environment by using
|
# Additionally set up systemd-boot in ISO 9660. This allows creating a medium for the live environment by using
|
||||||
# manual partitioning and simply copying the ISO 9660 file system contents.
|
# manual partitioning and simply copying the ISO 9660 file system contents.
|
||||||
# This is not related to El Torito booting and no firmware uses these files.
|
# This is not related to El Torito booting and no firmware uses these files.
|
||||||
_msg_info "Preparing an /EFI directory for the ISO 9660 file system..."
|
_msg_info "Preparing an /EFI directory for the ISO 9660 file system..."
|
||||||
|
@ -741,6 +837,11 @@ _validate_requirements_bootmode_bios.syslinux.eltorito() {
|
||||||
}
|
}
|
||||||
|
|
||||||
_validate_requirements_bootmode_uefi-x64.systemd-boot.esp() {
|
_validate_requirements_bootmode_uefi-x64.systemd-boot.esp() {
|
||||||
|
# shellcheck disable=SC2076
|
||||||
|
if [[ " ${bootmodes[*]} " =~ ' uefi-x64.grub.esp ' ]]; then
|
||||||
|
_msg_error "Validating '${bootmode}': cannot be used with bootmode uefi-x64.grub.esp!" 0
|
||||||
|
fi
|
||||||
|
|
||||||
# Check if mkfs.fat is available
|
# Check if mkfs.fat is available
|
||||||
if ! command -v mkfs.fat &> /dev/null; then
|
if ! command -v mkfs.fat &> /dev/null; then
|
||||||
(( validation_error=validation_error+1 ))
|
(( validation_error=validation_error+1 ))
|
||||||
|
@ -781,6 +882,11 @@ _validate_requirements_bootmode_uefi-x64.systemd-boot.esp() {
|
||||||
}
|
}
|
||||||
|
|
||||||
_validate_requirements_bootmode_uefi-x64.systemd-boot.eltorito() {
|
_validate_requirements_bootmode_uefi-x64.systemd-boot.eltorito() {
|
||||||
|
# shellcheck disable=SC2076
|
||||||
|
if [[ " ${bootmodes[*]} " =~ ' uefi-x64.grub.eltorito ' ]]; then
|
||||||
|
_msg_error "Validating '${bootmode}': cannot be used with bootmode uefi-x64.grub.eltorito!" 0
|
||||||
|
fi
|
||||||
|
|
||||||
# uefi-x64.systemd-boot.eltorito has the exact same requirements as uefi-x64.systemd-boot.esp
|
# uefi-x64.systemd-boot.eltorito has the exact same requirements as uefi-x64.systemd-boot.esp
|
||||||
_validate_requirements_bootmode_uefi-x64.systemd-boot.esp
|
_validate_requirements_bootmode_uefi-x64.systemd-boot.esp
|
||||||
}
|
}
|
||||||
|
@ -791,7 +897,15 @@ _validate_requirements_bootmode_uefi-ia32.grub.esp() {
|
||||||
(( validation_error=validation_error+1 ))
|
(( validation_error=validation_error+1 ))
|
||||||
_msg_error "Validating '${bootmode}': grub-install is not available on this host. Install 'grub'!" 0
|
_msg_error "Validating '${bootmode}': grub-install is not available on this host. Install 'grub'!" 0
|
||||||
fi
|
fi
|
||||||
_validate_requirements_bootmode_uefi-x64.systemd-boot.esp
|
|
||||||
|
# shellcheck disable=SC2076
|
||||||
|
if [[ " ${bootmodes[*]} " =~ ' uefi-x64.systemd-boot.esp ' ]]; then
|
||||||
|
_validate_requirements_bootmode_uefi-x64.systemd-boot.esp
|
||||||
|
elif [[ " ${bootmodes[*]} " =~ ' uefi-x64.grub.esp ' ]]; then
|
||||||
|
_validate_requirements_bootmode_uefi-x64.grub.esp
|
||||||
|
else
|
||||||
|
_msg_error "Validating '${bootmode}': requires one of bootmode uefi-x64.systemd-boot.esp or uefi-x64.grub.esp" 0
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
_validate_requirements_bootmode_uefi-ia32.grub.eltorito() {
|
_validate_requirements_bootmode_uefi-ia32.grub.eltorito() {
|
||||||
|
@ -799,6 +913,65 @@ _validate_requirements_bootmode_uefi-ia32.grub.eltorito() {
|
||||||
_validate_requirements_bootmode_uefi-ia32.grub.esp
|
_validate_requirements_bootmode_uefi-ia32.grub.esp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_validate_requirements_bootmode_uefi-x64.grub.esp() {
|
||||||
|
# shellcheck disable=SC2076
|
||||||
|
if [[ " ${bootmodes[*]} " =~ ' uefi-x64.systemd-boot.esp ' ]]; then
|
||||||
|
_msg_error "Validating '${bootmode}': cannot be used with bootmode uefi-x64.systemd-boot.esp!" 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if GRUB is available
|
||||||
|
if ! command -v grub-mkstandalone &> /dev/null; then
|
||||||
|
(( validation_error=validation_error+1 ))
|
||||||
|
_msg_error "Validating '${bootmode}': grub-install is not available on this host. Install 'grub'!" 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if mkfs.fat is available
|
||||||
|
if ! command -v mkfs.fat &> /dev/null; then
|
||||||
|
(( validation_error=validation_error+1 ))
|
||||||
|
_msg_error "Validating '${bootmode}': mkfs.fat is not available on this host. Install 'dosfstools'!" 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if mmd and mcopy are available
|
||||||
|
if ! { command -v mmd &> /dev/null && command -v mcopy &> /dev/null; }; then
|
||||||
|
_msg_error "Validating '${bootmode}': mmd and/or mcopy are not available on this host. Install 'mtools'!" 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if GRUB configuration files exist
|
||||||
|
if [[ ! -d "${profile}/grub" ]]; then
|
||||||
|
(( validation_error=validation_error+1 ))
|
||||||
|
_msg_error "Validating '${bootmode}': The '${profile}/grub' directory is missing!" 0
|
||||||
|
else
|
||||||
|
if [[ ! -e "${profile}/grub/grub.cfg" ]]; then
|
||||||
|
(( validation_error=validation_error+1 ))
|
||||||
|
_msg_error "Validating '${bootmode}': File '${profile}/grub/grub.cfg' not found!" 0
|
||||||
|
fi
|
||||||
|
local conffile
|
||||||
|
for conffile in "${profile}/grub/"*'.cfg'; do
|
||||||
|
if [[ -e "${conffile}" ]]; then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
(( validation_error=validation_error+1 ))
|
||||||
|
_msg_error "Validating '${bootmode}': No configuration file found in '${profile}/grub/'!" 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for optional packages
|
||||||
|
# shellcheck disable=SC2076
|
||||||
|
if [[ ! " ${pkg_list[*]} " =~ ' edk2-shell ' ]]; then
|
||||||
|
_msg_info "'edk2-shell' is not in the package list. The ISO will not contain a bootable UEFI shell."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_validate_requirements_bootmode_uefi-x64.grub.eltorito() {
|
||||||
|
# shellcheck disable=SC2076
|
||||||
|
if [[ " ${bootmodes[*]} " =~ ' uefi-x64.systemd-boot.eltorito ' ]]; then
|
||||||
|
_msg_error "Validating '${bootmode}': cannot be used with bootmode uefi-x64.systemd-boot.eltorito!" 0
|
||||||
|
fi
|
||||||
|
# uefi-x64.grub.eltorito has the exact same requirements as uefi-x64.grub.esp
|
||||||
|
_validate_requirements_bootmode_uefi-x64.grub.esp
|
||||||
|
}
|
||||||
|
|
||||||
# Build airootfs filesystem image
|
# Build airootfs filesystem image
|
||||||
_prepare_airootfs_image() {
|
_prepare_airootfs_image() {
|
||||||
_run_once "_mkairootfs_${airootfs_image_type}"
|
_run_once "_mkairootfs_${airootfs_image_type}"
|
||||||
|
@ -1019,17 +1192,20 @@ _add_xorrisofs_options_bios.syslinux.mbr() {
|
||||||
|
|
||||||
# GRUB in an attached EFI system partition
|
# GRUB in an attached EFI system partition
|
||||||
_add_xorrisofs_options_uefi-ia32.grub.esp() {
|
_add_xorrisofs_options_uefi-ia32.grub.esp() {
|
||||||
|
# TODO: how does the bootmodes systemd-boot vs x64.grub affect ${bootmodes[*]} tests in _add_xorrisofs_options_uefi-x64.systemd-boot.esp etc?
|
||||||
# shellcheck disable=SC2076
|
# shellcheck disable=SC2076
|
||||||
if [[ ! " ${bootmodes[*]} " =~ ' uefi-x64.systemd-boot.esp ' ]]; then
|
if [[ ! " ${bootmodes[*]} " =~ ' uefi-x64.systemd-boot.esp ' && ! " ${bootmodes[*]} " =~ ' uefi-x64.grub.esp ' ]]; then
|
||||||
_add_xorrisofs_options_uefi-x64.systemd-boot.esp
|
# _add_xorrisofs_options_uefi-x64.systemd-boot.esp
|
||||||
|
_add_xorrisofs_options_uefi-x64.grub.esp
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# GRUB via El Torito
|
# GRUB via El Torito
|
||||||
_add_xorrisofs_options_uefi-ia32.grub.eltorito() {
|
_add_xorrisofs_options_uefi-ia32.grub.eltorito() {
|
||||||
# shellcheck disable=SC2076
|
# shellcheck disable=SC2076
|
||||||
if [[ ! " ${bootmodes[*]} " =~ ' uefi-x64.systemd-boot.eltorito ' ]]; then
|
if [[ ! " ${bootmodes[*]} " =~ ' uefi-x64.systemd-boot.eltorito ' && ! " ${bootmodes[*]} " =~ ' uefi-x64.grub.eltorito ' ]]; then
|
||||||
_add_xorrisofs_options_uefi-x64.systemd-boot.eltorito
|
# _add_xorrisofs_options_uefi-x64.systemd-boot.eltorito
|
||||||
|
_add_xorrisofs_options_uefi-x64.grub.eltorito
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1103,6 +1279,78 @@ _add_xorrisofs_options_uefi-x64.systemd-boot.eltorito() {
|
||||||
[[ " ${bootmodes[*]} " =~ ' bios.' ]] || xorrisofs_options+=('-eltorito-catalog' 'EFI/boot.cat')
|
[[ " ${bootmodes[*]} " =~ ' bios.' ]] || xorrisofs_options+=('-eltorito-catalog' 'EFI/boot.cat')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# GRUB in an attached EFI system partition.
|
||||||
|
# Same as _add_xorrisofs_options_uefi-x64.systemd-boot.esp.
|
||||||
|
_add_xorrisofs_options_uefi-x64.grub.esp() {
|
||||||
|
# Move the first partition away from the start of the ISO, otherwise the GPT will not be valid and ISO 9660
|
||||||
|
# partition will not be mountable
|
||||||
|
# shellcheck disable=SC2076
|
||||||
|
[[ " ${xorrisofs_options[*]} " =~ ' -partition_offset ' ]] || xorrisofs_options+=('-partition_offset' '16')
|
||||||
|
# Attach efiboot.img as a second partition and set its partition type to "EFI system partition"
|
||||||
|
xorrisofs_options+=('-append_partition' '2' 'C12A7328-F81F-11D2-BA4B-00A0C93EC93B' "${work_dir}/efiboot.img")
|
||||||
|
# Ensure GPT is used as some systems do not support UEFI booting without it
|
||||||
|
# shellcheck disable=SC2076
|
||||||
|
if [[ " ${bootmodes[*]} " =~ ' bios.syslinux.mbr ' ]]; then
|
||||||
|
# A valid GPT prevents BIOS booting on some systems, instead use an invalid GPT (without a protective MBR).
|
||||||
|
# The attached partition will have the EFI system partition type code in MBR, but in the invalid GPT it will
|
||||||
|
# have a Microsoft basic partition type code.
|
||||||
|
if [[ ! " ${bootmodes[*]} " =~ ' uefi-x64.grub.eltorito ' && ! " ${bootmodes[*]} " =~ ' uefi-ia32.grub.eltorito ' ]]; then
|
||||||
|
# If '-isohybrid-gpt-basdat' is specified before '-e', then the appended EFI system partition will have the
|
||||||
|
# EFI system partition type ID/GUID in both MBR and GPT. If '-isohybrid-gpt-basdat' is specified after '-e',
|
||||||
|
# the appended EFI system partition will have the Microsoft basic data type GUID in GPT.
|
||||||
|
if [[ ! " ${xorrisofs_options[*]} " =~ ' -isohybrid-gpt-basdat ' ]]; then
|
||||||
|
xorrisofs_options+=('-isohybrid-gpt-basdat')
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Use valid GPT if BIOS booting support will not be required
|
||||||
|
xorrisofs_options+=('-appended_part_as_gpt')
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# GRUB via El Torito
|
||||||
|
# Same as _add_xorrisofs_options_uefi-x64.systemd-boot.eltorito.
|
||||||
|
_add_xorrisofs_options_uefi-x64.grub.eltorito() {
|
||||||
|
# shellcheck disable=SC2076
|
||||||
|
if [[ " ${bootmodes[*]} " =~ ' uefi-x64.grub.esp ' || " ${bootmodes[*]} " =~ ' uefi-ia32.grub.esp ' ]]; then
|
||||||
|
# grub in an attached EFI system partition via El Torito
|
||||||
|
xorrisofs_options+=(
|
||||||
|
# Start a new El Torito boot entry for UEFI
|
||||||
|
'-eltorito-alt-boot'
|
||||||
|
# Set the second partition as the El Torito UEFI boot image
|
||||||
|
'-e' '--interval:appended_partition_2:all::'
|
||||||
|
# Boot image is not emulating floppy or hard disk; required for all known boot loaders
|
||||||
|
'-no-emul-boot'
|
||||||
|
)
|
||||||
|
# A valid GPT prevents BIOS booting on some systems, use an invalid GPT instead.
|
||||||
|
if [[ " ${bootmodes[*]} " =~ ' bios.syslinux.mbr ' ]]; then
|
||||||
|
# If '-isohybrid-gpt-basdat' is specified before '-e', then the appended EFI system partition will have the
|
||||||
|
# EFI system partition type ID/GUID in both MBR and GPT. If '-isohybrid-gpt-basdat' is specified after '-e',
|
||||||
|
# the appended EFI system partition will have the Microsoft basic data type GUID in GPT.
|
||||||
|
if [[ ! " ${xorrisofs_options[*]} " =~ ' -isohybrid-gpt-basdat ' ]]; then
|
||||||
|
xorrisofs_options+=('-isohybrid-gpt-basdat')
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# The ISO will not contain a GPT partition table, so to be able to reference efiboot.img, place it as a
|
||||||
|
# file inside the ISO 9660 file system
|
||||||
|
install -d -m 0755 -- "${isofs_dir}/EFI/archiso"
|
||||||
|
cp -a -- "${work_dir}/efiboot.img" "${isofs_dir}/EFI/archiso/efiboot.img"
|
||||||
|
# grub in an embedded efiboot.img via El Torito
|
||||||
|
xorrisofs_options+=(
|
||||||
|
# Start a new El Torito boot entry for UEFI
|
||||||
|
'-eltorito-alt-boot'
|
||||||
|
# Set efiboot.img as the El Torito UEFI boot image
|
||||||
|
'-e' 'EFI/archiso/efiboot.img'
|
||||||
|
# Boot image is not emulating floppy or hard disk; required for all known boot loaders
|
||||||
|
'-no-emul-boot'
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
# Specify where to save the El Torito boot catalog file in case it is not already set by bios.syslinux.eltorito
|
||||||
|
# shellcheck disable=SC2076
|
||||||
|
[[ " ${bootmodes[*]} " =~ ' bios.' ]] || xorrisofs_options+=('-eltorito-catalog' 'EFI/boot.cat')
|
||||||
|
}
|
||||||
|
|
||||||
# Build bootstrap image
|
# Build bootstrap image
|
||||||
_build_bootstrap_image() {
|
_build_bootstrap_image() {
|
||||||
local _bootstrap_parent
|
local _bootstrap_parent
|
||||||
|
|
|
@ -6,19 +6,19 @@ arch-install-scripts
|
||||||
archinstall
|
archinstall
|
||||||
b43-fwcutter
|
b43-fwcutter
|
||||||
base
|
base
|
||||||
bind-tools
|
bind
|
||||||
brltty
|
brltty
|
||||||
broadcom-wl
|
broadcom-wl
|
||||||
btrfs-progs
|
btrfs-progs
|
||||||
clonezilla
|
clonezilla
|
||||||
cloud-init
|
cloud-init
|
||||||
crda
|
|
||||||
cryptsetup
|
cryptsetup
|
||||||
darkhttpd
|
darkhttpd
|
||||||
ddrescue
|
ddrescue
|
||||||
dhclient
|
dhclient
|
||||||
dhcpcd
|
dhcpcd
|
||||||
diffutils
|
diffutils
|
||||||
|
dmidecode
|
||||||
dmraid
|
dmraid
|
||||||
dnsmasq
|
dnsmasq
|
||||||
dosfstools
|
dosfstools
|
||||||
|
@ -38,6 +38,7 @@ gptfdisk
|
||||||
#grml-zsh-config
|
#grml-zsh-config
|
||||||
#grub
|
#grub
|
||||||
hdparm
|
hdparm
|
||||||
|
hyperv
|
||||||
intel-ucode
|
intel-ucode
|
||||||
ipw2100-fw
|
ipw2100-fw
|
||||||
ipw2200-fw
|
ipw2200-fw
|
||||||
|
@ -66,6 +67,7 @@ mdadm
|
||||||
mkinitcpio
|
mkinitcpio
|
||||||
mkinitcpio-archiso
|
mkinitcpio-archiso
|
||||||
mkinitcpio-nfs-utils
|
mkinitcpio-nfs-utils
|
||||||
|
mkinitcpio-firmware
|
||||||
modemmanager
|
modemmanager
|
||||||
mtools
|
mtools
|
||||||
nano
|
nano
|
||||||
|
@ -76,6 +78,8 @@ nilfs-utils
|
||||||
nmap
|
nmap
|
||||||
ntfs-3g
|
ntfs-3g
|
||||||
nvme-cli
|
nvme-cli
|
||||||
|
open-iscsi
|
||||||
|
open-vm-tools
|
||||||
openconnect
|
openconnect
|
||||||
openssh
|
openssh
|
||||||
openvpn
|
openvpn
|
||||||
|
@ -123,18 +127,19 @@ xl2tpd
|
||||||
zsh
|
zsh
|
||||||
|
|
||||||
##-------- Xorg Packages ---------------------##
|
##-------- Xorg Packages ---------------------##
|
||||||
xorg-server
|
xorg
|
||||||
xorg-xbacklight
|
#xorg-server
|
||||||
xorg-fonts-misc
|
#xorg-xbacklight
|
||||||
xorg-xfd
|
#xorg-fonts-misc
|
||||||
xorg-xkill
|
#xorg-xfd
|
||||||
xorg-xrandr
|
#xorg-xkill
|
||||||
xorg-xrdb
|
#xorg-xrandr
|
||||||
xorg-xset
|
#xorg-xrdb
|
||||||
xorg-xev
|
#xorg-xset
|
||||||
xorg-xmodmap
|
#xorg-xev
|
||||||
xorg-xwininfo
|
#xorg-xmodmap
|
||||||
xorg-xsetroot
|
#xorg-xwininfo
|
||||||
|
#xorg-xsetroot
|
||||||
|
|
||||||
##-------- Touchpad and Mouse ----------------##
|
##-------- Touchpad and Mouse ----------------##
|
||||||
xorg-xinput
|
xorg-xinput
|
||||||
|
|
|
@ -8,7 +8,9 @@ iso_application="Archcraft Live/Installation/Rescue CD"
|
||||||
iso_version="$(date +%Y.%m.%d)"
|
iso_version="$(date +%Y.%m.%d)"
|
||||||
install_dir="arch"
|
install_dir="arch"
|
||||||
buildmodes=('iso')
|
buildmodes=('iso')
|
||||||
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' 'uefi-x64.systemd-boot.esp' 'uefi-x64.systemd-boot.eltorito')
|
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito'
|
||||||
|
'uefi-ia32.grub.esp' 'uefi-x64.grub.esp'
|
||||||
|
'uefi-ia32.grub.eltorito' 'uefi-x64.grub.eltorito')
|
||||||
arch="x86_64"
|
arch="x86_64"
|
||||||
pacman_conf="pacman.conf"
|
pacman_conf="pacman.conf"
|
||||||
airootfs_image_type="squashfs"
|
airootfs_image_type="squashfs"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
INCLUDE archcraftiso_head.cfg
|
INCLUDE archcraftiso_head.cfg
|
||||||
|
|
||||||
DEFAULT arch64
|
DEFAULT arch64
|
||||||
TIMEOUT 50
|
TIMEOUT 100
|
||||||
|
|
||||||
INCLUDE archcraftiso_sys-linux.cfg
|
INCLUDE archcraftiso_sys-linux.cfg
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue