Large update and cleanup, attempted fix for grub-install
This commit is contained in:
parent
f96435486a
commit
a3c3ec6730
@ -119,10 +119,6 @@ _ExtPartBody1="\nWhere do you want the partition mounted?\n\nEnsure the name beg
|
||||
_KernelTitle="Choose Kernel"
|
||||
_KernelBody="\nSelect which kernel to use for the install."
|
||||
|
||||
# base-devel
|
||||
_DevelTitle="Install base-devel packages"
|
||||
_DevelBody="\nDo you want base-devel installed for compiling and building packages?"
|
||||
|
||||
# shell
|
||||
_ShellTitle="Choose Login Shell"
|
||||
_ShellBody="\nSelect which shell to use as the new user's login shell."
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
|
||||
# immutable globals
|
||||
readonly VER="1.7.29" # Installer version
|
||||
readonly VER="1.7.30" # Installer version
|
||||
readonly DIST="ArchLabs" # Linux distributor
|
||||
readonly MNT="/mnt" # Install mountpoint
|
||||
readonly ERR="/tmp/errlog" # Built-in error log
|
||||
|
@ -137,7 +137,10 @@ install_bootloader()
|
||||
|
||||
# install/setup the bootloader by running the BCMD (boot command)
|
||||
printf "\nInstalling and setting up $BOOTLDR in ${BMNTS[$SYS-$BOOTLDR]}\n\n"
|
||||
chrun "${BCMDS[$BOOTLDR]}"
|
||||
|
||||
mkdir -p $MNT/{hostrun,run/udev}
|
||||
mount --bind /run $MNT/hostrun
|
||||
chrun "mount --bind /hostrun/lvm /run/lvm; mount --bind /hostrun/udev /run/udev ${BCMDS[$BOOTLDR]}; umount /run/lvm; umount /run/udev"
|
||||
echeck "${BCMDS[$BOOTLDR]}"
|
||||
|
||||
# copy efi stub to generic catch all
|
||||
|
@ -153,13 +153,10 @@ cfg_menu()
|
||||
fi
|
||||
|
||||
select_mirrorcmd || return 1
|
||||
|
||||
yesno "$_DevelTitle" "$_DevelBody" && BASEDEV=true || BASEDEV=false
|
||||
|
||||
select_wm_or_de || return 1
|
||||
select_packages || return 1
|
||||
|
||||
export CONFIG_DONE=true
|
||||
CONFIG_DONE=true
|
||||
return 0
|
||||
}
|
||||
|
||||
@ -250,9 +247,9 @@ user_creation()
|
||||
# recursively loop back unless the user cancels
|
||||
user || return 1
|
||||
else
|
||||
export NEWUSER="$user"
|
||||
export USER_PASS="$pass"
|
||||
export ROOT_PASS="$rpass"
|
||||
NEWUSER="$user"
|
||||
USER_PASS="$pass"
|
||||
ROOT_PASS="$rpass"
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
@ -9,6 +9,7 @@
|
||||
# shellcheck disable=2153
|
||||
|
||||
readonly RUN="/run/archiso/bootmnt/arch/boot"
|
||||
readonly SERVICE="$MNT/etc/systemd/system/getty@tty1.service.d"
|
||||
readonly VM="$(dmesg | grep -i "hypervisor")"
|
||||
|
||||
install()
|
||||
@ -116,6 +117,7 @@ EOF
|
||||
|
||||
|
||||
# set the locale
|
||||
printf "\n\n"
|
||||
cat > $MNT/etc/locale.conf << EOF
|
||||
LANG=$LOCALE
|
||||
EOF
|
||||
@ -201,20 +203,76 @@ create_user()
|
||||
return 0
|
||||
}
|
||||
|
||||
login_manager()
|
||||
setup_xinit()
|
||||
{
|
||||
local service="$MNT/etc/systemd/system/getty@tty1.service.d"
|
||||
if [[ -e $MNT/home/$NEWUSER/.xinitrc ]]; then
|
||||
sed -i "s/openbox-session/${LOGIN_WM}/g" $MNT/home/$NEWUSER/.xinitrc
|
||||
else
|
||||
printf "%s\n" "exec $LOGIN_WM" > $MNT/home/$NEWUSER/.xinitrc
|
||||
fi
|
||||
|
||||
# remove welcome message
|
||||
sed -i '/printf/d' $MNT/root/.zshrc
|
||||
# automatic startx for login shells
|
||||
local loginrc
|
||||
case $MYSHELL in
|
||||
*bash)
|
||||
loginrc=".bash_profile"
|
||||
rm -rf $MNT/home/$NEWUSER/.{z,mksh}*
|
||||
;;
|
||||
*mksh)
|
||||
loginrc=".profile"
|
||||
rm -rf $MNT/home/$NEWUSER/.{z,bash}*
|
||||
cat >> $MNT/home/$NEWUSER/.mkshrc << EOF
|
||||
|
||||
# colors in less (manpager)
|
||||
export LESS_TERMCAP_mb=$'\e[01;31m'
|
||||
export LESS_TERMCAP_md=$'\e[01;31m'
|
||||
export LESS_TERMCAP_me=$'\e[0m'
|
||||
export LESS_TERMCAP_se=$'\e[0m'
|
||||
export LESS_TERMCAP_so=$'\e[01;44;33m'
|
||||
export LESS_TERMCAP_ue=$'\e[0m'
|
||||
export LESS_TERMCAP_us=$'\e[01;32m'
|
||||
|
||||
if [[ $LOGIN_TYPE == 'lightdm' ]]; then
|
||||
export EDITOR=vim
|
||||
export MANWIDTH=100
|
||||
|
||||
rm -rf $service
|
||||
chrun 'systemctl enable lightdm.service && systemctl set-default graphical.target'
|
||||
# source shell configs
|
||||
for f in "\$HOME/.mksh/"*?.sh; do
|
||||
. "\$f"
|
||||
done
|
||||
|
||||
cat > $MNT/etc/lightdm/lightdm-gtk-greeter.conf << EOF
|
||||
al-info
|
||||
|
||||
EOF
|
||||
;;
|
||||
*)
|
||||
loginrc=".zprofile"
|
||||
rm -rf $MNT/home/$NEWUSER/.{bash,mksh}*
|
||||
esac
|
||||
|
||||
# add the shell login file to the edit list after install
|
||||
EDIT_FILES[11]+=" /home/$NEWUSER/$loginrc"
|
||||
|
||||
cat >> $MNT/home/$NEWUSER/$loginrc << EOF
|
||||
# ~/$loginrc
|
||||
# sourced by $(basename $MYSHELL) when used as a login shell
|
||||
|
||||
# automatically run startx when logging in on tty1
|
||||
if [ -z "\$DISPLAY" ] && [ \$XDG_VTNR -eq 1 ]; then
|
||||
exec startx -- vt1 >/dev/null 2>&1
|
||||
fi
|
||||
EOF
|
||||
if [[ $AUTOLOGIN == true ]]; then
|
||||
sed -i "s/root/${NEWUSER}/g" $SERVICE/autologin.conf
|
||||
else
|
||||
rm -rf $SERVICE
|
||||
fi
|
||||
}
|
||||
|
||||
setup_lightdm()
|
||||
{
|
||||
rm -rf $SERVICE
|
||||
chrun 'systemctl set-default graphical.target && systemctl enable lightdm.service'
|
||||
cat > $MNT/etc/lightdm/lightdm-gtk-greeter.conf << EOF
|
||||
# LightDM GTK+ Configuration
|
||||
|
||||
[greeter]
|
||||
@ -226,39 +284,18 @@ icon-theme-name=Adwaita
|
||||
font-name=DejaVu Sans Mono 11
|
||||
position=30%,end 50%,end
|
||||
EOF
|
||||
}
|
||||
|
||||
else # xinit login
|
||||
login_manager()
|
||||
{
|
||||
|
||||
if [[ -e $MNT/home/$NEWUSER/.xinitrc ]]; then
|
||||
sed -i "s/openbox-session/${LOGIN_WM}/g" $MNT/home/$NEWUSER/.xinitrc
|
||||
else
|
||||
printf "%s\n" "exec $LOGIN_WM" > $MNT/home/$NEWUSER/.xinitrc
|
||||
fi
|
||||
# remove welcome message
|
||||
sed -i '/printf/d' $MNT/root/.zshrc
|
||||
|
||||
# automatic startx for login shells
|
||||
case $MYSHELL in
|
||||
*bash) local loginrc=".bash_profile" ;;
|
||||
*zsh) local loginrc=".zprofile" ;;
|
||||
*mksh) local loginrc=".profile" ;;
|
||||
esac
|
||||
|
||||
# add the shell login file to the edit list after install
|
||||
EDIT_FILES[11]+=" /home/$NEWUSER/$loginrc"
|
||||
|
||||
cat >> $MNT/home/$NEWUSER/$loginrc << EOF
|
||||
# ~/$loginrc
|
||||
# sourced by $(basename $MYSHELL) when used as a login shell
|
||||
|
||||
# automatically run startx when logging in on tty1
|
||||
if [ -z "\$DISPLAY" ] && [ \$XDG_VTNR -eq 1 ]; then
|
||||
exec startx -- vt1 >/dev/null 2>&1
|
||||
fi
|
||||
EOF
|
||||
if [[ $AUTOLOGIN == true ]]; then
|
||||
sed -i "s/root/${NEWUSER}/g" $service/autologin.conf
|
||||
else
|
||||
rm -rf $service
|
||||
fi
|
||||
if [[ $LOGIN_TYPE == 'lightdm' ]]; then
|
||||
setup_lightdm
|
||||
else
|
||||
setup_shell_xinit
|
||||
fi
|
||||
}
|
||||
|
||||
@ -326,22 +363,9 @@ package_operations()
|
||||
fi
|
||||
|
||||
chrun "pacman -Syyu --noconfirm"
|
||||
|
||||
# base-devel and git are the users choice
|
||||
if [[ $BASEDEV == true ]]; then
|
||||
chrun "pacman -S iputils --noconfirm" 2>/dev/null
|
||||
chrun "pacman -S base-devel git --needed --noconfirm" 2>/dev/null
|
||||
elif [[ $INSTALL_WMS =~ dwm ]]; then
|
||||
chrun "pacman -S iputils git make --noconfirm" 2>/dev/null
|
||||
else
|
||||
# iputils is needed and should always be installed
|
||||
chrun "pacman -S iputils --noconfirm" 2>/dev/null
|
||||
fi
|
||||
|
||||
# install chosen packages
|
||||
chrun "pacman -S iputils --noconfirm" 2>/dev/null
|
||||
chrun "pacman -S base-devel git --needed --noconfirm" 2>/dev/null
|
||||
chrun "pacman -S $inpkg --needed --noconfirm"
|
||||
|
||||
# remove packages: installer, linux?, grub?
|
||||
chrun "pacman -Rs $rmpkg --noconfirm"
|
||||
|
||||
return 0
|
||||
|
@ -117,7 +117,7 @@ luks_default()
|
||||
cryptsetup open $LUKS_PART "$LUKS_NAME" <<< "$LUKS_PASS" 2>$ERR
|
||||
echeck "cryptsetup open $LUKS_PART $LUKS_NAME"
|
||||
|
||||
export LUKS=' encrypted'
|
||||
LUKS=' encrypted'
|
||||
luks_show
|
||||
return 0
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
# this file is not meant to be run directly
|
||||
# sourcing this file in a non bash shell is not advised
|
||||
|
||||
# shellcheck disable=2154
|
||||
# shellcheck disable=2154,2034
|
||||
|
||||
declare -g LVM=""
|
||||
declare -g VOL_GROUP_MB=0
|
||||
@ -264,7 +264,7 @@ lvm_del_all()
|
||||
for i in $PHYSICAL_VOLUMES; do
|
||||
pvremove -f "$i" >/dev/null 2>&1
|
||||
done
|
||||
export LVM=' logical volume'
|
||||
LVM=' logical volume'
|
||||
fi
|
||||
|
||||
return 0
|
||||
|
@ -6,16 +6,21 @@
|
||||
# this file is not meant to be run directly
|
||||
# sourcing this file in a non bash shell is not advised
|
||||
|
||||
# shellcheck disable=2154,2153,2046
|
||||
# shellcheck disable=2154,2153,2046,2034
|
||||
|
||||
readonly SYS_MEM="$(awk '/MemTotal/ {print int($2 / 1024)"M"}' /proc/meminfo)"
|
||||
readonly LOCALES="$(awk '/\.UTF-8/ { gsub(/# .*|#/, "")
|
||||
|
||||
readonly LOCALES="$(awk '/\.UTF-8/ {
|
||||
gsub(/# .*|#/, "")
|
||||
if ($1) {
|
||||
print $1 " -"
|
||||
}
|
||||
}' /etc/locale.gen)"
|
||||
readonly CMAPS="$(find /usr/share/kbd/keymaps -name '*.map.gz' |
|
||||
awk '{gsub(/\.map\.gz|.*\//, ""); print $1 " -"}')"
|
||||
|
||||
readonly CMAPS="$(find /usr/share/kbd/keymaps -name '*.map.gz' | awk '{
|
||||
gsub(/\.map\.gz|.*\//, "")
|
||||
print $1 " -"
|
||||
}')"
|
||||
|
||||
mnt_menu()
|
||||
{
|
||||
@ -123,11 +128,11 @@ select_boot_setup()
|
||||
BCMDS[syslinux]="efibootmgr -c -d $BOOT_DEVICE -p $BOOT_PART_NUM -l /EFI/syslinux/syslinux.efi -L $DIST"
|
||||
fi
|
||||
else
|
||||
export FILES[9]="/etc/default/grub"
|
||||
FILES[9]="/etc/default/grub"
|
||||
if [[ $SYS == 'UEFI' ]]; then
|
||||
local ttype="i386-efi"
|
||||
[[ $IS_64BIT == true ]] && ttype='x86_64-efi'
|
||||
BCMDS[grub]+=" --target=$ttype --efi-directory=${BMNTS[$SYS-$BOOTLDR]} --bootloader-id=$DIST"
|
||||
BCMDS[grub]+=" --target=$ttype --efi-directory=${BMNTS[$SYS-grub]} --bootloader-id=$DIST"
|
||||
else
|
||||
BCMDS[grub]+=" --target=i386-pc $BOOT_DEVICE"
|
||||
fi
|
||||
@ -141,7 +146,7 @@ select_boot_setup()
|
||||
src /usr/share/archlabs/installer/lib/boot.sh
|
||||
return 1
|
||||
fi
|
||||
export SEPERATE_BOOT=true
|
||||
SEPERATE_BOOT=true
|
||||
fi
|
||||
|
||||
return 0
|
||||
|
@ -6,7 +6,7 @@
|
||||
# this file is not meant to be run directly
|
||||
# sourcing this file in a non bash shell is not advised
|
||||
|
||||
# shellcheck disable=2154,2155,2153,2046
|
||||
# shellcheck disable=2154,2155,2153,2046,2034
|
||||
|
||||
declare -Agr FS_CMDS=(
|
||||
[ext2]="mkfs.ext2 -q" [ext3]="mkfs.ext3 -q" [ext4]="mkfs.ext4 -q"
|
||||
@ -179,7 +179,7 @@ check_cryptlvm()
|
||||
done
|
||||
|
||||
elif [[ $(lsblk -lno TYPE "$part") =~ 'lvm' ]]; then
|
||||
export LVM=' logical volume'
|
||||
LVM=' logical volume'
|
||||
VOLUME_NAME="${part#/dev/mapper/}"
|
||||
|
||||
for dev in $(awk '/crypt/ && /lvm2_member/ {print "/dev/mapper/"$1}' <<< "$devs" | uniq); do
|
||||
@ -192,7 +192,7 @@ check_cryptlvm()
|
||||
if grep -q "$LUKS_NAME" <<< "$(lsblk -lno NAME "$dev")"; then
|
||||
LUKS_UUID="$(lsblk -lno UUID,TYPE,FSTYPE "$dev" | awk '/part/ && /crypto_LUKS/ {print $1}')"
|
||||
LUKS_DEV="$LUKS_DEV cryptdevice=UUID=$LUKS_UUID:$LUKS_NAME"
|
||||
export LUKS=' encrypted'
|
||||
LUKS=' encrypted'
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
@ -142,7 +142,7 @@ system_identify()
|
||||
|
||||
if [[ -d $efidir ]]; then
|
||||
SYS="UEFI"
|
||||
[[ $(cat $efidir/fw_platform_size) == 64 ]] && export IS_64BIT=true
|
||||
[[ $(cat $efidir/fw_platform_size) == 64 ]] && IS_64BIT=true
|
||||
|
||||
if ! grep -q $efidir/efivars <<< "$(mount)"; then
|
||||
mount -t efivarfs efivarfs $efidir/efivars
|
||||
@ -232,7 +232,7 @@ debug()
|
||||
set -x
|
||||
exec 3>| $DBG
|
||||
BASH_XTRACEFD=3
|
||||
export DEBUG=true
|
||||
DEBUG=true
|
||||
}
|
||||
|
||||
umount_dir()
|
||||
|
Reference in New Issue
Block a user