You've already forked al-installer
Remove syslinux UEFI install
This commit is contained in:
@ -10,7 +10,7 @@
|
||||
|
||||
|
||||
# immutable globals
|
||||
readonly VER="1.7.40" # Installer version
|
||||
readonly VER="1.7.43" # Installer version
|
||||
readonly DIST="ArchLabs" # Linux distributor
|
||||
readonly MNT="/mnt" # Install mountpoint
|
||||
readonly ERR="/tmp/errlog" # Built-in error log
|
||||
@ -18,13 +18,13 @@ readonly DBG="/tmp/debuglog" # Built-in error log
|
||||
|
||||
main()
|
||||
{
|
||||
if [[ $CURRENT_MENU != "main" ]]; then
|
||||
if [[ $CURRENT_MENU != "main" && $SAVED ]]; then
|
||||
CURRENT_MENU="main"
|
||||
SELECTED=$((SAVED + 1))
|
||||
unset SAVED
|
||||
elif [[ $CURRENT_MENU != "main" ]]; then
|
||||
SELECTED=1
|
||||
CURRENT_MENU="main"
|
||||
if [[ $SAVED ]]; then
|
||||
SELECTED=$((SAVED + 1))
|
||||
unset SAVED
|
||||
fi
|
||||
elif (( SELECTED < 8 )); then
|
||||
((SELECTED++)) # increment the highlighted menu item
|
||||
fi
|
||||
@ -33,31 +33,29 @@ main()
|
||||
SELECTED=$(dialog --cr-wrap --stdout --backtitle "$BT" \
|
||||
--title " $_PrepTitle " --default-item $SELECTED \
|
||||
--cancel-label "Exit" --menu "$_PrepBody" 0 0 0 \
|
||||
"1" "$_PrepShowDev" "2" "$_PrepParts" \
|
||||
"3" "$_PrepLUKS" "4" "$_PrepLVM" \
|
||||
"5" "$_PrepMount" "6" "$_PrepConfig" \
|
||||
"7" "Check Choices" "8" "$_PrepInstall")
|
||||
"1" "$_PrepShowDev" \
|
||||
"2" "$_PrepParts" \
|
||||
"3" "$_PrepLUKS" \
|
||||
"4" "$_PrepLVM" \
|
||||
"5" "$_PrepMount" \
|
||||
"6" "$_PrepConfig" \
|
||||
"7" "Check Choices" \
|
||||
"8" "$_PrepInstall")
|
||||
|
||||
if [[ $SELECTED ]]; then
|
||||
if (( SELECTED == 8 )); then
|
||||
preinstall_checks 1 || return 1
|
||||
elif (( SELECTED == 6 )); then
|
||||
preinstall_checks || return 1
|
||||
elif [[ $WARN != true ]] && (( SELECTED == 2 || SELECTED == 5 )); then
|
||||
msgbox "$_PrepTitle" "$_WarnMount"
|
||||
WARN=true
|
||||
fi
|
||||
if [[ $WARN != true && $SELECTED =~ (2|5) ]]; then
|
||||
WARN=true
|
||||
msgbox "$_PrepTitle" "$_WarnMount"
|
||||
fi
|
||||
|
||||
case $SELECTED in
|
||||
1) device_tree ;;
|
||||
2) partition || SELECTED=$((SELECTED - 1)) ;;
|
||||
3) luks_menu || SELECTED=$((SELECTED - 1)) ;;
|
||||
4) lvm_menu || SELECTED=$((SELECTED - 1)) ;;
|
||||
5) mnt_menu || SELECTED=$((SELECTED - 1)) ;;
|
||||
6) cfg_menu || SELECTED=$((SELECTED - 1)) ;;
|
||||
4) lvm_menu || SELECTED=$((SELECTED - 1)) ;;
|
||||
5) mnt_menu || SELECTED=$((SELECTED - 1)) ;;
|
||||
6) preinstall_checks && { cfg_menu || SELECTED=$((SELECTED - 1)); } ;;
|
||||
7) show_cfg ;;
|
||||
8) install ;;
|
||||
8) preinstall_checks 1 && install ;;
|
||||
*) yesno "$_CloseInst" "$_CloseInstBody" "Exit" "Back" && die
|
||||
esac
|
||||
}
|
||||
|
@ -19,14 +19,13 @@ declare -Ag BMNTS=(
|
||||
[BIOS-grub]="/boot"
|
||||
[UEFI-grub]="/boot/efi"
|
||||
[BIOS-syslinux]="/boot"
|
||||
[UEFI-syslinux]="/boot"
|
||||
[UEFI-systemd-boot]="/boot"
|
||||
)
|
||||
|
||||
# bootloader options with respective boot partition mountpoint
|
||||
declare -Ag BOOTLDRS=(
|
||||
[BIOS]="grub ${BMNTS[BIOS-grub]} syslinux ${BMNTS[BIOS-syslinux]}"
|
||||
[UEFI]="systemd-boot ${BMNTS[UEFI-systemd-boot]} grub ${BMNTS[UEFI-grub]} syslinux ${BMNTS[UEFI-syslinux]}"
|
||||
[UEFI]="systemd-boot ${BMNTS[UEFI-systemd-boot]} grub ${BMNTS[UEFI-grub]}"
|
||||
)
|
||||
|
||||
setup_boot()
|
||||
@ -58,16 +57,10 @@ setup_grub()
|
||||
luks_pass "$_LuksOpen" "$ROOT_PART" || return 1
|
||||
fi
|
||||
|
||||
if [[ $IS_64BIT == true ]]; then
|
||||
local ttype='x86_64-efi'
|
||||
else
|
||||
local ttype="i386-efi"
|
||||
fi
|
||||
|
||||
# the mount mess is needed for os-prober to work properly in the chroot
|
||||
BCMDS[grub]="mkdir -p /run/udev && mkdir -p /run/lvm &&
|
||||
mount --bind /hostrun/udev /run/udev && mount --bind /hostrun/lvm /run/lvm &&
|
||||
${BCMDS[grub]} --target=$ttype --efi-directory=${BMNTS[UEFI-grub]} --bootloader-id=$DIST &&
|
||||
${BCMDS[grub]} --efi-directory=${BMNTS[UEFI-grub]} --bootloader-id=$DIST &&
|
||||
grub-mkconfig -o /boot/grub/grub.cfg &&
|
||||
umount /run/udev && umount /run/lvm"
|
||||
fi
|
||||
@ -77,17 +70,7 @@ setup_grub()
|
||||
|
||||
setup_syslinux()
|
||||
{
|
||||
if [[ $SYS == 'BIOS' ]]; then
|
||||
EDIT_FILES[9]="/boot/syslinux/syslinux.cfg"
|
||||
if ! BCMDS[syslinux]="$(menubox "$_InstSysTitle" "$_InstSysBody" 0 0 0 \
|
||||
"syslinux-install_update -iam" "Install to MBR (Master Boot Record)" \
|
||||
"syslinux-install_update -i" "Install to root partition (/)")"; then
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
EDIT_FILES[9]="/boot/EFI/syslinux/syslinux.cfg"
|
||||
BCMDS[syslinux]="efibootmgr -c -d $BOOT_DEVICE -p $BOOT_PART_NUM -l /EFI/syslinux/syslinux.efi -L $DIST"
|
||||
fi
|
||||
EDIT_FILES[9]="/boot/syslinux/syslinux.cfg"
|
||||
}
|
||||
|
||||
setup_systemd-boot()
|
||||
@ -148,13 +131,13 @@ prerun_systemd-boot()
|
||||
[[ $ROOT_PART =~ /dev/mapper ]] || ROOT_PART_ID="PART$ROOT_PART_ID"
|
||||
|
||||
# create the boot entry configs
|
||||
mkdir -p ${MNT}${BMNTS[$SYS-$BOOTLDR]}/loader/entries
|
||||
cat > ${MNT}${BMNTS[$SYS-$BOOTLDR]}/loader/loader.conf << EOF
|
||||
mkdir -p ${MNT}${BMNTS[$SYS-systemd-boot]}/loader/entries
|
||||
cat > ${MNT}${BMNTS[$SYS-systemd-boot]}/loader/loader.conf << EOF
|
||||
default $DIST
|
||||
timeout 5
|
||||
editor no
|
||||
EOF
|
||||
cat > ${MNT}${BMNTS[$SYS-$BOOTLDR]}/loader/entries/${DIST}.conf << EOF
|
||||
cat > ${MNT}${BMNTS[$SYS-systemd-boot]}/loader/entries/${DIST}.conf << EOF
|
||||
title $DIST Linux
|
||||
linux /vmlinuz-${KERNEL}$([[ $UCODE ]] && printf "\ninitrd %s" "/${UCODE}.img")
|
||||
initrd /initramfs-$KERNEL.img
|
||||
@ -180,17 +163,9 @@ EOF
|
||||
|
||||
prerun_syslinux()
|
||||
{
|
||||
if [[ $SYS == 'UEFI' ]]; then
|
||||
local cfgdir="${MNT}${BMNTS[$SYS-$BOOTLDR]}/EFI/syslinux"
|
||||
local cfgsrcdir="/usr/lib/syslinux/efi32"
|
||||
[[ $IS_64BIT == true ]] && cfgsrcdir="/usr/lib/syslinux/efi64/"
|
||||
else
|
||||
local cfgdir="$MNT${BMNTS[$SYS-$BOOTLDR]}/syslinux"
|
||||
local cfgsrcdir="/usr/lib/syslinux/bios"
|
||||
fi
|
||||
mkdir -pv $MNT${BMNTS[$SYS-syslinux]}/syslinux
|
||||
cp -rfv /usr/lib/syslinux/bios/* $MNT${BMNTS[$SYS-syslinux]}/syslinux/
|
||||
|
||||
mkdir -p $cfgdir
|
||||
cp -rf $cfgsrcdir/* $cfgdir/
|
||||
cat > $cfgdir/syslinux.cfg << EOF
|
||||
UI menu.c32
|
||||
PROMPT 0
|
||||
@ -217,11 +192,7 @@ EOF
|
||||
install_bootloader()
|
||||
{
|
||||
if ! [[ $ROOT_PART =~ /dev/mapper ]]; then
|
||||
if [[ $BOOTLDR == 'syslinux' ]]; then
|
||||
ROOT_PART_ID="UUID=$(blkid -s UUID -o value $ROOT_PART)"
|
||||
else
|
||||
ROOT_PART_ID="UUID=$(blkid -s PARTUUID -o value $ROOT_PART)"
|
||||
fi
|
||||
ROOT_PART_ID="UUID=$(blkid -s PARTUUID -o value $ROOT_PART)"
|
||||
else
|
||||
# for LVM we just use the partition label
|
||||
ROOT_PART_ID="$ROOT_PART"
|
||||
@ -232,7 +203,7 @@ install_bootloader()
|
||||
|
||||
# remove old UEFI boot entries
|
||||
if [[ $SYS == 'UEFI' ]]; then
|
||||
find ${MNT}${BMNTS[$SYS-$BOOTLDR]}/EFI/ \
|
||||
find ${MNT}${BMNTS[UEFI-$BOOTLDR]}/EFI/ \
|
||||
-maxdepth 1 -mindepth 1 -name '[aA][rR][cC][hH][lL]abs' \
|
||||
-type d -exec rm -rf '{}' \; >/dev/null 2>&1
|
||||
fi
|
||||
@ -249,7 +220,7 @@ install_bootloader()
|
||||
fi
|
||||
|
||||
# copy efi stub to generic catch all
|
||||
if [[ $SYS == 'UEFI' && ($BOOTLDR == 'grub' || $BOOTLDR == 'syslinux') ]]; then
|
||||
if [[ $SYS == 'UEFI' && $BOOTLDR == 'grub' ]]; then
|
||||
uefi_boot_fallback
|
||||
fi
|
||||
|
||||
@ -260,36 +231,24 @@ uefi_boot_fallback()
|
||||
{
|
||||
# some UEFI firmware requires a dir in the ESP with a generic bootx64.efi
|
||||
# see: https://wiki.archlinux.org/index.php/GRUB#UEFI
|
||||
# also: https://wiki.archlinux.org/index.php/syslinux#UEFI_Systems
|
||||
|
||||
local esp="${MNT}${BMNTS[$SYS-$BOOTLDR]}"
|
||||
local esp="${MNT}${BMNTS[UEFI-grub]}"
|
||||
local default="boot"
|
||||
default="$(find $esp/EFI/ -maxdepth 1 -mindepth 1 -name '[Bb][oO][oO][tT]' -type d)"
|
||||
default="$(basename $default)"
|
||||
|
||||
if [[ -d $esp/EFI/$default ]]; then
|
||||
rm -rf $esp/EFI/$default/*
|
||||
rm -rfv $esp/EFI/$default/*
|
||||
else
|
||||
mkdir -p $esp/EFI/$default
|
||||
mkdir -pv $esp/EFI/$default
|
||||
fi
|
||||
|
||||
if [[ $BOOTLDR == 'syslinux' ]]; then
|
||||
cp -rf $esp/EFI/syslinux/* $esp/EFI/$default/
|
||||
cp -f $esp/EFI/syslinux/syslinux.efi $esp/EFI/$default/bootx64.efi
|
||||
elif [[ $BOOTLDR == 'grub' && $IS_64BIT == true ]]; then
|
||||
cp -f $esp/EFI/$DIST/grubx64.efi $esp/EFI/$default/bootx64.efi
|
||||
elif [[ $BOOTLDR == 'grub' ]]; then
|
||||
cp -f $esp/EFI/$DIST/grubia32.efi $esp/EFI/$default/bootia32.efi
|
||||
fi
|
||||
cp -fv $esp/EFI/$DIST/grubx64.efi $esp/EFI/$default/bootx64.efi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
shim_secure_boot()
|
||||
{
|
||||
# still a W.I.P
|
||||
local shim_file="shim.efi"
|
||||
[[ $IS_64BIT == true ]] && shim_file="shim64.efi"
|
||||
efibootmgr -c -w -L $DIST -d $BOOT_DEVICE -p $BOOT_PART_NUM -l ${MNT}${BMNTS[$SYS-$BOOTLDR]}/$shim_file
|
||||
return 0
|
||||
efibootmgr -c -w -L $DIST -d $BOOT_DEVICE -p $BOOT_PART_NUM -l ${MNT}${BMNTS[$SYS-$BOOTLDR]}/shim64.efi
|
||||
}
|
||||
|
@ -164,13 +164,18 @@ select_language()
|
||||
{
|
||||
tput civis
|
||||
local lang
|
||||
local title="\nLanguage - sprache - taal - språk - lingua - idioma - nyelv - língua\n"
|
||||
lang=$(menubox "Select Language" "$title" 0 0 0 \
|
||||
"1" "English (en_**)" "2" "Español (es_ES)" \
|
||||
"3" "Português [Brasil] (pt_BR)" "4" "Português (pt_PT)" \
|
||||
"5" "Français (fr_FR)" "6" "Russkiy (ru_RU)" \
|
||||
"7" "Italiano (it_IT)" "8" "Nederlands (nl_NL)" \
|
||||
"9" "Magyar (hu_HU)" "10" "Chinese (zh_CN)")
|
||||
lang=$(menubox "Select Language" \
|
||||
"\nLanguage - sprache - taal - språk - lingua - idioma - nyelv - língua\n" 0 0 0 \
|
||||
"1" "English (en_**)" \
|
||||
"2" "Español (es_ES)" \
|
||||
"3" "Português [Brasil] (pt_BR)" \
|
||||
"4" "Português (pt_PT)" \
|
||||
"5" "Français (fr_FR)" \
|
||||
"6" "Russkiy (ru_RU)" \
|
||||
"7" "Italiano (it_IT)" \
|
||||
"8" "Nederlands (nl_NL)" \
|
||||
"9" "Magyar (hu_HU)" \
|
||||
"10" "Chinese (zh_CN)")
|
||||
|
||||
local srcdir="/usr/share/archlabs/installer/lang"
|
||||
src $srcdir/english.trans
|
||||
@ -395,11 +400,18 @@ select_packages()
|
||||
fi
|
||||
|
||||
tput civis
|
||||
SELECTED=$(dialog --cr-wrap --stdout --backtitle "$BT" --title " $_Packages " \
|
||||
--default-item $SELECTED --menu "$_PackageMenu" 0 0 0 \
|
||||
"1" "Browsers" "2" "Editors" "3" "Terminals" \
|
||||
"4" "Multimedia" "5" "Chat/Mail" "6" "Professional" \
|
||||
"7" "System" "8" "Miscellaneous" "9" "$_Done")
|
||||
SELECTED=$(dialog --cr-wrap --stdout --backtitle "$BT" \
|
||||
--title " $_Packages " --default-item $SELECTED \
|
||||
--menu "$_PackageMenu" 0 0 0 \
|
||||
"1" "Browsers" \
|
||||
"2" "Editors" \
|
||||
"3" "Terminals" \
|
||||
"4" "Multimedia" \
|
||||
"5" "Chat/Mail" \
|
||||
"6" "Professional" \
|
||||
"7" "System" \
|
||||
"8" "Miscellaneous" \
|
||||
"9" "$_Done")
|
||||
|
||||
if [[ $SELECTED -lt 9 ]]; then
|
||||
case $SELECTED in
|
||||
@ -488,11 +500,19 @@ edit_configs()
|
||||
fi
|
||||
|
||||
SELECTED=$(dialog --cr-wrap --stdout --backtitle "$BT" \
|
||||
--title " $_EditTitle " --default-item $SELECTED --menu "$_EditBody" 0 0 0 \
|
||||
"1" "$exitstr" "2" "${EDIT_FILES[2]}" "3" "${EDIT_FILES[3]}" \
|
||||
"4" "${EDIT_FILES[4]}" "5" "${EDIT_FILES[5]}" "6" "${EDIT_FILES[6]}" \
|
||||
"7" "${EDIT_FILES[7]}" "8" "${EDIT_FILES[8]}" "9" "${EDIT_FILES[9]}" \
|
||||
"10" "${EDIT_FILES[10]}" "11" "${EDIT_FILES[11]}")
|
||||
--title " $_EditTitle " --default-item $SELECTED \
|
||||
--menu "$_EditBody" 0 0 0 \
|
||||
"1" "$exitstr" \
|
||||
"2" "${EDIT_FILES[2]}" \
|
||||
"3" "${EDIT_FILES[3]}" \
|
||||
"4" "${EDIT_FILES[4]}" \
|
||||
"5" "${EDIT_FILES[5]}" \
|
||||
"6" "${EDIT_FILES[6]}" \
|
||||
"7" "${EDIT_FILES[7]}" \
|
||||
"8" "${EDIT_FILES[8]}" \
|
||||
"9" "${EDIT_FILES[9]}" \
|
||||
"10" "${EDIT_FILES[10]}" \
|
||||
"11" "${EDIT_FILES[11]}")
|
||||
|
||||
if [[ ! $SELECTED || $SELECTED -eq 1 ]]; then
|
||||
[[ $DEBUG == true && -r $DBG ]] && vim $DBG
|
||||
|
@ -23,7 +23,6 @@ install()
|
||||
oneshot install_base
|
||||
|
||||
# generate /etc/fstab and touch it up if we used a swapfile
|
||||
printf "\n\n"
|
||||
genfstab -U $MNT > $MNT/etc/fstab 2>$ERR
|
||||
echeck "genfstab -U $MNT > $MNT/etc/fstab"
|
||||
[[ -f $MNT/swapfile ]] && sed -i "s~${MNT}~~" $MNT/etc/fstab
|
||||
@ -57,43 +56,30 @@ install()
|
||||
|
||||
install_base()
|
||||
{
|
||||
# compressed image?
|
||||
if [[ -e /run/archiso/sfs/airootfs/etc/skel ]]; then
|
||||
printf "\n\nUnpacking base system --- Total: ~ 2.6G\n\n"
|
||||
printf "\n\nUnpacking base system --- Total: ~ 2.6G\n"
|
||||
rsync -ah --info=progress2 /run/archiso/sfs/airootfs/ $MNT/
|
||||
else
|
||||
# update the mirrorlist.. MUST be done before pacstrapping or it may be slow
|
||||
oneshot mirrorlist_sort
|
||||
|
||||
printf "\nPacstrapping the base system.\n\n"
|
||||
local vmpkgs
|
||||
if [[ $VM && $KERNEL == 'linux-lts' ]]; then
|
||||
vmpkgs="virtualbox-guest-utils virtualbox-guest-dkms linux-lts-headers"
|
||||
elif [[ $VM && $KERNEL == 'linux' ]]; then
|
||||
vmpkgs="virtualbox-guest-utils virtualbox-guest-modules-arch"
|
||||
fi
|
||||
|
||||
local packages
|
||||
packages="$(grep -hv '^#' /usr/share/archlabs/installer/packages.txt)"
|
||||
|
||||
pacstrap $MNT base $KERNEL $UCODE $packages $vmpkgs
|
||||
fi
|
||||
|
||||
# remove archiso init files and clean up install files
|
||||
rm -rf $MNT/etc/mkinitcpio-archiso.conf
|
||||
find $MNT/usr/lib/initcpio -name 'archiso*' -type f -exec rm '{}' \;
|
||||
|
||||
# journal
|
||||
sed -i 's/volatile/auto/g' $MNT/etc/systemd/journald.conf
|
||||
|
||||
# allow members of group 'wheel' to execute sudo commands
|
||||
sed -i "s/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/g" $MNT/etc/sudoers
|
||||
|
||||
if [[ $VM ]]; then
|
||||
# in a VM remove xorg configs, these cause issues
|
||||
rm -rf $MNT/etc/X11/xorg.conf.d
|
||||
rm -rfv $MNT/etc/X11/xorg.conf.d/*?.conf
|
||||
elif [[ $(lspci | grep ' VGA ' | grep 'Intel') != "" ]]; then
|
||||
# xorg config for intel, this should never happen in a VM
|
||||
cat > $MNT/etc/X11/xorg.conf.d/20-intel.conf <<EOF
|
||||
Section "Device"
|
||||
Identifier "Intel Graphics"
|
||||
@ -104,22 +90,15 @@ EOF
|
||||
fi
|
||||
|
||||
if [[ -e /run/archiso/sfs/airootfs ]]; then
|
||||
# copy the kernel image for the regular kernel
|
||||
[[ $KERNEL != 'linux-lts' ]] && cp -f $RUN/x86_64/vmlinuz $MNT/boot/vmlinuz-linux
|
||||
|
||||
# copy CPU micro-code if set. manufacturer_ucode.img -> manufacturer-ucode.img
|
||||
[[ $UCODE ]] && cp -f $RUN/${UCODE/-/_}.img $MNT/boot/${UCODE}.img
|
||||
[[ $KERNEL != 'linux-lts' ]] && cp -vf $RUN/x86_64/vmlinuz $MNT/boot/vmlinuz-linux
|
||||
[[ $UCODE && ! $VM ]] && cp -vf $RUN/${UCODE/-/_}.img $MNT/boot/${UCODE}.img
|
||||
fi
|
||||
|
||||
# copy network settings
|
||||
if [[ -e /etc/NetworkManager/system-connections ]]; then
|
||||
cp -rf /etc/NetworkManager/system-connections $MNT/etc/NetworkManager/
|
||||
cp -rvf /etc/NetworkManager/system-connections $MNT/etc/NetworkManager/
|
||||
fi
|
||||
cp -f /etc/resolv.conf $MNT/etc/
|
||||
cp -fv /etc/resolv.conf $MNT/etc/
|
||||
|
||||
|
||||
# set the locale
|
||||
printf "\n\n"
|
||||
cat > $MNT/etc/locale.conf << EOF
|
||||
LANG=$LOCALE
|
||||
EOF
|
||||
@ -127,18 +106,15 @@ EOF
|
||||
LANG=$LOCALE
|
||||
EOF
|
||||
sed -i "s/#en_US.UTF-8/en_US.UTF-8/g; s/#${LOCALE}/${LOCALE}/g" $MNT/etc/locale.gen
|
||||
chrun "locale-gen" 2>/dev/null
|
||||
chrun "echo && locale-gen" 2>/dev/null
|
||||
|
||||
# set the timezone
|
||||
chrun "ln -sf /usr/share/zoneinfo/$ZONE/$SUBZONE /etc/localtime" 2>/dev/null
|
||||
chrun "ln -svf /usr/share/zoneinfo/$ZONE/$SUBZONE /etc/localtime" 2>/dev/null
|
||||
|
||||
if [[ $BROADCOM_WL == true ]]; then
|
||||
echo 'blacklist bcma' >> $MNT/etc/modprobe.d/blacklist.conf
|
||||
rm -f $MNT/etc/modprobe/
|
||||
fi
|
||||
|
||||
# set the keymaps
|
||||
mkdir -p $MNT/etc/X11/xorg.conf.d
|
||||
cat > $MNT/etc/X11/xorg.conf.d/00-keyboard.conf <<EOF
|
||||
# Use localectl(1) to instruct systemd-localed to update it.
|
||||
Section "InputClass"
|
||||
@ -156,16 +132,10 @@ XKBVARIANT=""
|
||||
XKBOPTIONS=""
|
||||
BACKSPACE="guess"
|
||||
EOF
|
||||
|
||||
|
||||
# console keymap
|
||||
cat > $MNT/etc/vconsole.conf <<EOF
|
||||
KEYMAP=$CMAP
|
||||
FONT=$FONT
|
||||
EOF
|
||||
|
||||
|
||||
# set the hostname
|
||||
cat > $MNT/etc/hostname << EOF
|
||||
$HOSTNAME
|
||||
EOF
|
||||
@ -186,7 +156,7 @@ create_user()
|
||||
|
||||
if [[ $MYSHELL != *zsh ]]; then
|
||||
chrun "usermod -s $MYSHELL root"
|
||||
cp -f $MNT/etc/skel/.mkshrc /root/.mkshrc
|
||||
cp -fv $MNT/etc/skel/.mkshrc /root/.mkshrc
|
||||
fi
|
||||
|
||||
local groups='audio,autologin,floppy,log,network,rfkill,scanner,storage,optical,power,wheel'
|
||||
@ -201,8 +171,8 @@ create_user()
|
||||
# for neovim set up ~/.config/nvim
|
||||
if [[ $PACKAGES =~ neovim ]]; then
|
||||
mkdir -p $MNT/home/$NEWUSER/.config/nvim
|
||||
cp -f $MNT/home/$NEWUSER/.vimrc $MNT/home/$NEWUSER/.config/nvim/init.vim
|
||||
cp -rf $MNT/home/$NEWUSER/.vim/colors $MNT/home/$NEWUSER/.config/nvim/colors
|
||||
cp -fv $MNT/home/$NEWUSER/.vimrc $MNT/home/$NEWUSER/.config/nvim/init.vim
|
||||
cp -rfv $MNT/home/$NEWUSER/.vim/colors $MNT/home/$NEWUSER/.config/nvim/colors
|
||||
fi
|
||||
|
||||
[[ $INSTALL_WMS =~ dwm ]] && suckless_install
|
||||
@ -313,9 +283,6 @@ run_mkinitcpio()
|
||||
local add=""
|
||||
# setup a keyfile for LUKS.. Only when choosing grub and system is UEFI
|
||||
if [[ $LUKS && ! $LVM && $SYS == 'UEFI' && $BOOTLDR == 'grub' ]]; then
|
||||
if [[ $LUKS_PASS ]]; then
|
||||
luks_pass "$_LuksOpen" "$LUKS_NAME" || return 1
|
||||
fi
|
||||
luks_keyfile
|
||||
fi
|
||||
|
||||
|
@ -9,8 +9,8 @@
|
||||
# shellcheck disable=2154,2034
|
||||
|
||||
declare -g LVM=""
|
||||
declare -g GROUP_PARTS=""
|
||||
declare -g VOL_GROUP_MB=0
|
||||
declare -g GROUP_PARTS=0
|
||||
|
||||
lvm_detect()
|
||||
{
|
||||
|
@ -8,7 +8,9 @@
|
||||
|
||||
# shellcheck disable=2154,2153,2046,2034
|
||||
|
||||
readonly SYS_MEM="$(awk '/MemTotal/ {print int($2 / 1024)"M"}' /proc/meminfo)"
|
||||
readonly SYS_MEM="$(awk '/MemTotal/ {
|
||||
print int($2 / 1024)"M"
|
||||
}' /proc/meminfo)"
|
||||
|
||||
readonly LOCALES="$(awk '/\.UTF-8/ {
|
||||
gsub(/# .*|#/, "")
|
||||
@ -121,19 +123,44 @@ select_mount_opts()
|
||||
select_filesystem()
|
||||
{
|
||||
local part="$1"
|
||||
local fs cur_fs str title
|
||||
local fs
|
||||
|
||||
local cur_fs
|
||||
cur_fs="$(lsblk -lno FSTYPE $part)"
|
||||
str="$([[ $cur_fs && $part != "$ROOT_PART" ]] && printf "\nExisting Filesystem: %s" "$cur_fs")"
|
||||
|
||||
local title="\nSelect which filesystem you want to use for $part\n\nPartition Name: "
|
||||
|
||||
tput civis
|
||||
|
||||
title="\nSelect which filesystem you want to use for $part\n\nPartition Name: "
|
||||
fs="$(menubox "$_FSTitle: $part" "${title}${part}${str}$_FSBody" 0 0 0 \
|
||||
$([[ $cur_fs && $part != "$ROOT_PART" ]] && printf "%s" "$_Skip -") \
|
||||
"ext4" "${FS_CMDS[ext4]}" "ext3" "${FS_CMDS[ext3]}" \
|
||||
"ext2" "${FS_CMDS[ext2]}" "vfat" "${FS_CMDS[vfat]}" \
|
||||
"ntfs" "${FS_CMDS[ntfs]}" "f2fs" "${FS_CMDS[f2fs]}" \
|
||||
"jfs" "${FS_CMDS[jfs]}" "nilfs2" "${FS_CMDS[nilfs2]}" \
|
||||
"reiserfs" "${FS_CMDS[reiserfs]}" "xfs" "${FS_CMDS[xfs]}")"
|
||||
if [[ $cur_fs && $part != "$ROOT_PART" ]]; then
|
||||
fs="$(menubox "$_FSTitle: $part" \
|
||||
"${title}${part}\nExisting Filesystem: ${cur_fs}$_FSBody" 0 0 0 \
|
||||
"$_Skip" "-" \
|
||||
"ext4" "${FS_CMDS[ext4]}" \
|
||||
"ext3" "${FS_CMDS[ext3]}" \
|
||||
"ext2" "${FS_CMDS[ext2]}" \
|
||||
"vfat" "${FS_CMDS[vfat]}" \
|
||||
"ntfs" "${FS_CMDS[ntfs]}" \
|
||||
"f2fs" "${FS_CMDS[f2fs]}" \
|
||||
"jfs" "${FS_CMDS[jfs]}" \
|
||||
"nilfs2" "${FS_CMDS[nilfs2]}" \
|
||||
"reiserfs" "${FS_CMDS[reiserfs]}" \
|
||||
"xfs" "${FS_CMDS[xfs]}")"
|
||||
else
|
||||
fs="$(menubox "$_FSTitle: $part" \
|
||||
"${title}${part}$_FSBody" 0 0 0 \
|
||||
"ext4" "${FS_CMDS[ext4]}" \
|
||||
"ext3" "${FS_CMDS[ext3]}" \
|
||||
"ext2" "${FS_CMDS[ext2]}" \
|
||||
"vfat" "${FS_CMDS[vfat]}" \
|
||||
"ntfs" "${FS_CMDS[ntfs]}" \
|
||||
"f2fs" "${FS_CMDS[f2fs]}" \
|
||||
"jfs" "${FS_CMDS[jfs]}" \
|
||||
"nilfs2" "${FS_CMDS[nilfs2]}" \
|
||||
"reiserfs" "${FS_CMDS[reiserfs]}" \
|
||||
"xfs" "${FS_CMDS[xfs]}")"
|
||||
fi
|
||||
|
||||
[[ $fs == "$_Skip" ]] && return 0 || { [[ $fs == "" ]] && return 1; }
|
||||
|
||||
if yesno "$_FSTitle" "\nFormat $part as $fs?\n" "Format" "Go Back"; then
|
||||
@ -141,6 +168,7 @@ select_filesystem()
|
||||
else
|
||||
select_filesystem $part || return 1
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
@ -150,16 +178,15 @@ select_efi_partition()
|
||||
if (( COUNT == 1 )); then
|
||||
BOOT_PART="$(awk 'NF > 0 {print $1}' <<< "$PARTS")"
|
||||
infobox "$_PrepMount" "$_OnlyOne for EFI: $BOOT_PART\n" 1
|
||||
else
|
||||
if ! BOOT_PART="$(menubox "$_PrepMount" "$_SelUefiBody" 0 0 0 $PARTS)"; then
|
||||
return 1
|
||||
fi
|
||||
elif ! BOOT_PART="$(menubox "$_PrepMount" "$_SelUefiBody" 0 0 0 $PARTS)"; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
if grep -q 'fat' <<< "$(fsck -N "$BOOT_PART")"; then
|
||||
local msg="$_FormUefiBody $BOOT_PART $_FormUefiBody2"
|
||||
yesno "$_PrepMount" "$msg" "Format $BOOT_PART" "Do Not Format" "no" &&
|
||||
if yesno "$_PrepMount" "$msg" "Format $BOOT_PART" "Do Not Format" "no"; then
|
||||
format "$BOOT_PART" "vfat"
|
||||
fi
|
||||
else
|
||||
format "$BOOT_PART" "vfat"
|
||||
fi
|
||||
@ -189,8 +216,12 @@ select_root_partition()
|
||||
ROOT_PART="/dev/mapper/$LUKS_NAME"
|
||||
decr_count "$LUKS_PART"
|
||||
elif [[ $LVM ]]; then
|
||||
[[ $LUKS ]] && decr_count "$LUKS_PART"
|
||||
for part in $(printf "%s" "$GROUP_PARTS"); do decr_count "$part"; done
|
||||
if [[ $LUKS ]]; then
|
||||
decr_count "$LUKS_PART"
|
||||
fi
|
||||
for part in $(printf "%s" "$GROUP_PARTS"); do
|
||||
decr_count "$part"
|
||||
done
|
||||
ROOT_PART=""
|
||||
fi
|
||||
|
||||
@ -203,8 +234,7 @@ select_root_partition()
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
local msg="\nUsing${LUKS} root partition:" # $LUKS might just be an empty string
|
||||
infobox "$_PrepMount" "$msg $ROOT_PART\n" 1
|
||||
infobox "$_PrepMount" "\nUsing${LUKS} root partition: $ROOT_PART\n" 1
|
||||
fi
|
||||
|
||||
select_filesystem "$ROOT_PART" || { ROOT_PART=""; return 1; }
|
||||
@ -219,17 +249,17 @@ select_extra_partitions()
|
||||
local part
|
||||
if ! part="$(menubox "$_PrepMount " "$_ExtPartBody" 0 0 0 "$_Done" "-" $PARTS)" || [[ $part == "$_Done" ]]; then
|
||||
break
|
||||
elif ! select_filesystem "$part"; then
|
||||
break
|
||||
return 1
|
||||
elif ! select_mountpoint; then
|
||||
break
|
||||
return 1
|
||||
elif ! mount_partition "$part" "$EXTRA_MNT"; then
|
||||
break
|
||||
return 1
|
||||
fi
|
||||
|
||||
# choose what filesystem and get the mountpoint
|
||||
select_filesystem "$part" || { break; return 1; }
|
||||
select_mountpoint || { break; return 1; }
|
||||
|
||||
# mount it
|
||||
mount_partition "$part" "$EXTRA_MNT" || { break; return 1; }
|
||||
EXTRA_MNTS="$EXTRA_MNTS $part: $EXTRA_MNT"
|
||||
|
||||
# if the mountpoint was /usr add 'usr' to MKINIT_HOOKS
|
||||
[[ $EXTRA_MNT == "/usr" && $MKINIT_HOOKS != *usr* ]] && MKINIT_HOOKS="usr $MKINIT_HOOKS"
|
||||
done
|
||||
|
||||
|
@ -8,22 +8,24 @@
|
||||
|
||||
# shellcheck disable=2154,2153,2046,2034
|
||||
|
||||
# package extras
|
||||
# if you add a package to $PACKAGES in any dialog and it uses or requires some
|
||||
# additional packages, you can add them here to keep it simple for the end user
|
||||
|
||||
# PKG_EXT: if you add a package to $PACKAGES in any dialog
|
||||
# and it uses/requires some additional packages,
|
||||
# you can add them here to keep it simple: [package]="extra"
|
||||
# duplicates are removed with `uniq` before install
|
||||
declare -gA PKG_EXT=(
|
||||
[vlc]="qt4"
|
||||
[mpd]="mpc"
|
||||
[mupdf]="mupdf-tools"
|
||||
[qt5ct]="qt5-styleplugins"
|
||||
[zathura]="zathura-pdf-poppler"
|
||||
[cairo-dock]="cairo-dock-plug-ins"
|
||||
[noto-fonts]="noto-fonts-emoji"
|
||||
[kdenlive]="kdebase-runtime dvdauthor frei0r-plugins breeze breeze-gtk"
|
||||
[vlc]="qt5ct qt5-styleplugins"
|
||||
[kdenlive]="qt5ct qt5-styleplugins" # duplicates are stripped with `uniq` later
|
||||
[zathura]="zathura-pdf-poppler"
|
||||
[noto-fonts]="noto-fonts-emoji"
|
||||
[cairo-dock]="cairo-dock-plug-ins"
|
||||
[kdenlive]="qt5ct qt5-styleplugins"
|
||||
[qbittorrent]="qt5ct qt5-styleplugins"
|
||||
[qutebrowser]="qt5ct qt5-styleplugins"
|
||||
[kdenlive]="kdebase-runtime dvdauthor frei0r-plugins breeze breeze-gtk"
|
||||
)
|
||||
|
||||
select_browsers()
|
||||
|
@ -203,23 +203,22 @@ auto_partition()
|
||||
{
|
||||
local device="$1"
|
||||
local size
|
||||
size=$(lsblk -lno SIZE $device |
|
||||
awk 'NR == 1 {
|
||||
if ($1 ~ "G") {
|
||||
sub(/G/, ""); print ($1 * 1000 - 512) / 1000"G"
|
||||
} else {
|
||||
sub(/M/, ""); print ($1 - 512)"M"
|
||||
}
|
||||
}')
|
||||
|
||||
local msg="$_PartBody2"
|
||||
local table="gpt"
|
||||
local fs="fat32";
|
||||
size=$(lsblk -lno SIZE $device | awk 'NR == 1 {
|
||||
if ($1 ~ "G") {
|
||||
sub(/G/, ""); print ($1 * 1000 - 512) / 1000"G"
|
||||
} else {
|
||||
sub(/M/, ""); print ($1 - 512)"M"
|
||||
}
|
||||
}')
|
||||
|
||||
if [[ $SYS == 'BIOS' ]]; then
|
||||
msg="$(sed 's|vfat/fat32|ext4|' <<< "$msg")"
|
||||
table="msdos"
|
||||
fs="ext4"
|
||||
local msg="$(sed 's|vfat/fat32|ext4|' <<< "$_PartBody2")"
|
||||
local table="msdos"
|
||||
local fs="ext4"
|
||||
else
|
||||
local msg="$_PartBody2"
|
||||
local table="gpt"
|
||||
local fs="fat32";
|
||||
fi
|
||||
|
||||
# confirm or bail
|
||||
@ -231,10 +230,9 @@ auto_partition()
|
||||
dev_info="$(parted -s $device print)"
|
||||
|
||||
# walk the partitions on the device in reverse order and delete them
|
||||
# shellcheck disable=2013
|
||||
for i in $(awk '/^ [1-9][0-9]?/ {print $1}' <<< "$dev_info" | sort -r); do
|
||||
while read -r i; do
|
||||
parted -s $device rm $i >/dev/null 2>&1
|
||||
done
|
||||
done <<< "$(awk '/^ [1-9][0-9]?/ {print $1}' <<< "$dev_info" | sort -r)"
|
||||
|
||||
if [[ $(awk '/Table:/ {print $3}' <<< "$dev_info") != "$table" ]]; then
|
||||
parted -s $device mklabel $table >/dev/null 2>&1
|
||||
@ -338,4 +336,5 @@ find_partitions()
|
||||
fi
|
||||
|
||||
return 0
|
||||
|
||||
}
|
||||
|
@ -129,7 +129,6 @@ system_devices()
|
||||
|
||||
system_identify()
|
||||
{
|
||||
declare -g IS_64BIT=false
|
||||
local efidir="/sys/firmware/efi"
|
||||
|
||||
if grep -q 'GenuineIntel' /proc/cpuinfo; then
|
||||
@ -146,8 +145,6 @@ system_identify()
|
||||
|
||||
if [[ -d $efidir ]]; then
|
||||
SYS="UEFI"
|
||||
[[ $(cat $efidir/fw_platform_size) == 64 ]] && IS_64BIT=true
|
||||
|
||||
if ! grep -q $efidir/efivars <<< "$(mount)"; then
|
||||
mount -t efivarfs efivarfs $efidir/efivars
|
||||
fi
|
||||
|
@ -1,68 +1,35 @@
|
||||
# base
|
||||
acpid
|
||||
arch-install-scripts
|
||||
b43-firmware
|
||||
b43-fwcutter
|
||||
bridge-utils
|
||||
broadcom-wl
|
||||
btrfs-progs
|
||||
clonezilla
|
||||
crda
|
||||
darkhttpd
|
||||
ddrescue
|
||||
dhclient
|
||||
dhcpcd
|
||||
dmidecode
|
||||
dmraid
|
||||
dnsmasq
|
||||
dnsutils
|
||||
ethtool
|
||||
exfat-utils
|
||||
f2fs-tools
|
||||
fakeroot
|
||||
fsarchiver
|
||||
gnu-netcat
|
||||
gpm
|
||||
gptfdisk
|
||||
grub
|
||||
vim
|
||||
hdparm
|
||||
ipw2100-fw
|
||||
ipw2200-fw
|
||||
irssi
|
||||
laptop-detect
|
||||
lftp
|
||||
lsscsi
|
||||
mtools
|
||||
ndisc6
|
||||
nfs-utils
|
||||
nilfs-utils
|
||||
nmap
|
||||
ntfs-3g
|
||||
openconnect
|
||||
openssh
|
||||
openvpn
|
||||
pacman-contrib
|
||||
partclone
|
||||
parted
|
||||
partimage
|
||||
ppp
|
||||
pptpclient
|
||||
refind-efi
|
||||
rp-pppoe
|
||||
rsync
|
||||
sdparm
|
||||
sg3_utils
|
||||
smartmontools
|
||||
sudo
|
||||
tcpdump
|
||||
testdisk
|
||||
usb_modeswitch
|
||||
vpnc
|
||||
wget
|
||||
wireless_tools
|
||||
wpa_actiond
|
||||
wvdial
|
||||
xl2tpd
|
||||
|
||||
# xorg
|
||||
@ -72,10 +39,8 @@ xorg-drivers
|
||||
xorg-server
|
||||
xorg-xinit
|
||||
|
||||
# installer
|
||||
dialog
|
||||
# install
|
||||
os-prober
|
||||
wipe
|
||||
|
||||
# codecs
|
||||
alsa-firmware
|
||||
@ -94,7 +59,6 @@ pulseaudio-alsa
|
||||
# xfce
|
||||
xfce4-settings
|
||||
xfce4-power-manager
|
||||
gtk-engines
|
||||
gtk-engine-murrine
|
||||
|
||||
# network
|
||||
@ -108,13 +72,9 @@ gvfs-afc
|
||||
gvfs-mtp
|
||||
gvfs-nfs
|
||||
tumbler
|
||||
xdg-user-dirs-gtk
|
||||
|
||||
# utilities
|
||||
gnome-keyring
|
||||
imagemagick
|
||||
jsoncpp
|
||||
libmpdclient
|
||||
lm_sensors
|
||||
lsb-release
|
||||
numlockx
|
||||
@ -129,31 +89,19 @@ volumeicon
|
||||
wmctrl
|
||||
xclip
|
||||
xdotool
|
||||
zenity
|
||||
|
||||
# applications
|
||||
arandr
|
||||
compton
|
||||
dunst
|
||||
feh
|
||||
file-roller
|
||||
gparted
|
||||
gsimplecal
|
||||
htop
|
||||
mpv
|
||||
nitrogen
|
||||
pavucontrol
|
||||
ranger
|
||||
w3m
|
||||
xterm
|
||||
|
||||
# default WM
|
||||
openbox
|
||||
|
||||
# fonts
|
||||
terminus-font
|
||||
ttf-roboto
|
||||
ttf-ubuntu-font-family
|
||||
|
||||
# archlabs
|
||||
archlabs_unstable/archlabs
|
||||
ttf-dejavu
|
||||
|
Reference in New Issue
Block a user