Fix: file permissions in the created user's home
This commit is contained in:
parent
0572d16454
commit
83743ec8c8
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
|
|
||||||
# immutable globals
|
# immutable globals
|
||||||
readonly VER="1.7.34" # Installer version
|
readonly VER="1.7.37" # Installer version
|
||||||
readonly DIST="ArchLabs" # Linux distributor
|
readonly DIST="ArchLabs" # Linux distributor
|
||||||
readonly MNT="/mnt" # Install mountpoint
|
readonly MNT="/mnt" # Install mountpoint
|
||||||
readonly ERR="/tmp/errlog" # Built-in error log
|
readonly ERR="/tmp/errlog" # Built-in error log
|
||||||
|
@ -1,21 +1,23 @@
|
|||||||
#!/usr/bin/bash
|
#!/usr/bin/bash
|
||||||
|
|
||||||
# vim:ft=sh:fdm=marker:fmr={,}
|
# vim:ft=sh:fdm=marker:fmr={,}
|
||||||
# shellcheck disable=2034
|
# shellcheck disable=2034,2154
|
||||||
|
|
||||||
# archlabs installer library script file
|
# archlabs installer library script file
|
||||||
# this file is not meant to be run directly
|
# this file is not meant to be run directly
|
||||||
# sourcing this file in a non bash shell is not advised
|
# sourcing this file in a non bash shell is not advised
|
||||||
|
|
||||||
# command used to install each bootloader, this can be modified later to fit the system
|
# command used to install each bootloader
|
||||||
declare -Ag BCMDS=(
|
declare -Ag BCMDS=(
|
||||||
[syslinux]="syslinux-install_update -iam"
|
[UEFI-syslinux]='efibootmgr -c -d $BOOT_DEVICE -p $BOOT_PART_NUM -l /EFI/syslinux/syslinux.efi -L $DIST'
|
||||||
[grub]="grub-install --recheck --force"
|
[BIOS-syslinux]='syslinux-install_update -iam'
|
||||||
[systemd-boot]="bootctl --path=/boot install"
|
[UEFI-grub]='grub-install --recheck --force --bootloader-id=$DIST && grub-mkconfig -o /boot/grub/grub.cfg'
|
||||||
|
[BIOS-grub]='grub-install --recheck --force --bootloader-id=$DIST --target=i386-pc $BOOT_DEVICE && grub-mkconfig -o /boot/grub/grub.cfg'
|
||||||
|
[systemd-boot]='bootctl --path=/boot install'
|
||||||
)
|
)
|
||||||
|
|
||||||
# readonly boot partition mount points for each bootloader
|
# boot partition mount points for each bootloader
|
||||||
declare -Agr BMNTS=(
|
declare -Ag BMNTS=(
|
||||||
[BIOS-grub]="/boot"
|
[BIOS-grub]="/boot"
|
||||||
[UEFI-grub]="/boot/efi"
|
[UEFI-grub]="/boot/efi"
|
||||||
[BIOS-syslinux]="/boot"
|
[BIOS-syslinux]="/boot"
|
||||||
@ -23,13 +25,40 @@ declare -Agr BMNTS=(
|
|||||||
[UEFI-systemd-boot]="/boot"
|
[UEFI-systemd-boot]="/boot"
|
||||||
)
|
)
|
||||||
|
|
||||||
# readonly bootloader options with respective boot partition mountpoint
|
# bootloader options with respective boot partition mountpoint
|
||||||
declare -Agr BOOTLDRS=(
|
declare -Ag BOOTLDRS=(
|
||||||
[BIOS]="grub ${BMNTS[BIOS-grub]} syslinux ${BMNTS[BIOS-syslinux]}"
|
[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]} syslinux ${BMNTS[UEFI-syslinux]}"
|
||||||
)
|
)
|
||||||
|
|
||||||
prep_for_grub()
|
pre_grub()
|
||||||
|
{
|
||||||
|
FILES[9]="/etc/default/grub"
|
||||||
|
|
||||||
|
if [[ $SYS == 'BIOS' && $BOOT_DEVICE == "" ]]; then
|
||||||
|
select_device 'boot' || return 1
|
||||||
|
elif [[ $SYS == 'UEFI' && $ROOT_PART =~ /dev/mapper && ! $LVM && ! $LUKS_PASS ]]; then
|
||||||
|
luks_pass "$_LuksOpen" "$ROOT_PART" || return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
pre_syslinux()
|
||||||
|
{
|
||||||
|
if [[ $SYS == 'BIOS' ]]; then
|
||||||
|
FILES[9]="/boot/syslinux/syslinux.cfg"
|
||||||
|
else
|
||||||
|
FILES[9]="/boot/EFI/syslinux/syslinux.cfg"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pre_systemd-boot()
|
||||||
|
{
|
||||||
|
FILES[9]="/boot/loader/entries/$DIST.conf"
|
||||||
|
}
|
||||||
|
|
||||||
|
prerun_grub()
|
||||||
{
|
{
|
||||||
local cfg="$MNT/etc/default/grub"
|
local cfg="$MNT/etc/default/grub"
|
||||||
sed -i "s/GRUB_DISTRIBUTOR=.*/GRUB_DISTRIBUTOR=\"${DIST}\"/g;
|
sed -i "s/GRUB_DISTRIBUTOR=.*/GRUB_DISTRIBUTOR=\"${DIST}\"/g;
|
||||||
@ -44,26 +73,22 @@ prep_for_grub()
|
|||||||
sed -i "s/GRUB_PRELOAD_MODULES=.*/GRUB_PRELOAD_MODULES=\"lvm\"/g" $cfg
|
sed -i "s/GRUB_PRELOAD_MODULES=.*/GRUB_PRELOAD_MODULES=\"lvm\"/g" $cfg
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# needed for os-prober module to work properly in the chroot
|
||||||
if [[ $SYS == 'UEFI' ]]; then
|
if [[ $SYS == 'UEFI' ]]; then
|
||||||
# needed for os-prober module to work properly in the chroot
|
# mkdir -p /run/lvm $MNT/hostrun/lvm
|
||||||
mkdir -p /run/lvm
|
# mount --bind /run/lvm $MNT/hostrun/lvm
|
||||||
mkdir -p /run/udev
|
mkdir -p /run/udev $MNT/hostrun/udev
|
||||||
mkdir -p $MNT/hostrun/lvm
|
|
||||||
mkdir -p $MNT/hostrun/udev
|
|
||||||
mount --bind /run/lvm $MNT/hostrun/lvm
|
|
||||||
mount --bind /run/udev $MNT/hostrun/udev
|
mount --bind /run/udev $MNT/hostrun/udev
|
||||||
BCMDS[grub]="mkdir -p /run/udev; mkdir -p /run/lvm; \
|
BCMDS[grub]="mkdir -p /run/udev &&
|
||||||
mount --bind /hostrun/udev /run/udev; \
|
mount --bind /hostrun/udev /run/udev &&
|
||||||
mount --bind /hostrun/lvm /run/lvm; \
|
${BCMDS[grub]} &&
|
||||||
${BCMDS[grub]}; \
|
umount /run/udev"
|
||||||
umount /run/udev; \
|
|
||||||
umount /run/lvm"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
prep_for_systemd-boot()
|
prerun_systemd-boot()
|
||||||
{
|
{
|
||||||
# no LVM then systemd-boot uses PARTUUID
|
# no LVM then systemd-boot uses PARTUUID
|
||||||
[[ $ROOT_PART =~ /dev/mapper ]] || ROOT_PART_ID="PART$ROOT_PART_ID"
|
[[ $ROOT_PART =~ /dev/mapper ]] || ROOT_PART_ID="PART$ROOT_PART_ID"
|
||||||
@ -99,7 +124,7 @@ EOF
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
prep_for_syslinux()
|
prerun_syslinux()
|
||||||
{
|
{
|
||||||
if [[ $SYS == 'UEFI' ]]; then
|
if [[ $SYS == 'UEFI' ]]; then
|
||||||
local cfgdir="${MNT}${BMNTS[$SYS-$BOOTLDR]}/EFI/syslinux"
|
local cfgdir="${MNT}${BMNTS[$SYS-$BOOTLDR]}/EFI/syslinux"
|
||||||
@ -151,16 +176,13 @@ install_bootloader()
|
|||||||
-type d -exec rm -rf '{}' \; >/dev/null 2>&1
|
-type d -exec rm -rf '{}' \; >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# sets up the bootloader configs and BCMD (boot command)
|
prerun_$BOOTLDR
|
||||||
prep_for_$BOOTLDR
|
|
||||||
|
|
||||||
# install/setup the bootloader by running the BCMD (boot command)
|
|
||||||
printf "\nInstalling and setting up $BOOTLDR in ${BMNTS[$SYS-$BOOTLDR]}\n\n"
|
printf "\nInstalling and setting up $BOOTLDR in ${BMNTS[$SYS-$BOOTLDR]}\n\n"
|
||||||
|
|
||||||
chrun "${BCMDS[$BOOTLDR]}"
|
chrun "eval ${BCMDS[$SYS-$BOOTLDR]}"
|
||||||
|
|
||||||
if [[ -d $MNT/hostrun ]]; then
|
if [[ -d $MNT/hostrun/udev ]]; then
|
||||||
umount $MNT/hostrun/lvm
|
|
||||||
umount $MNT/hostrun/udev
|
umount $MNT/hostrun/udev
|
||||||
rm -rf $MNT/hostrun
|
rm -rf $MNT/hostrun
|
||||||
fi
|
fi
|
||||||
@ -172,12 +194,12 @@ install_bootloader()
|
|||||||
|
|
||||||
uefi_boot_fallback()
|
uefi_boot_fallback()
|
||||||
{
|
{
|
||||||
# some UEFI firmware requires a directory in the ESP and a generic bootx64.efi
|
# some UEFI firmware requires a dir in the ESP with a generic bootx64.efi
|
||||||
# see: https://wiki.archlinux.org/index.php/GRUB#UEFI
|
# see: https://wiki.archlinux.org/index.php/GRUB#UEFI
|
||||||
# also: https://wiki.archlinux.org/index.php/syslinux#UEFI_Systems
|
# also: https://wiki.archlinux.org/index.php/syslinux#UEFI_Systems
|
||||||
|
|
||||||
local esp="${MNT}${BMNTS[$SYS-$BOOTLDR]}"
|
local esp="${MNT}${BMNTS[$SYS-$BOOTLDR]}"
|
||||||
local default="Boot"
|
local default="boot"
|
||||||
default="$(find $esp/EFI/ -maxdepth 1 -mindepth 1 \
|
default="$(find $esp/EFI/ -maxdepth 1 -mindepth 1 \
|
||||||
-name '[Bb][oO][oO][tT]' -type d)"
|
-name '[Bb][oO][oO][tT]' -type d)"
|
||||||
|
|
||||||
@ -197,6 +219,7 @@ uefi_boot_fallback()
|
|||||||
elif [[ $BOOTLDR == 'grub' ]]; then
|
elif [[ $BOOTLDR == 'grub' ]]; then
|
||||||
cp -f $esp/EFI/$DIST/grubia32.efi $esp/EFI/$default/bootia32.efi
|
cp -f $esp/EFI/$DIST/grubia32.efi $esp/EFI/$default/bootia32.efi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ declare -gA EDIT_FILES=(
|
|||||||
show_cfg()
|
show_cfg()
|
||||||
{
|
{
|
||||||
local cmd mnt pkgs
|
local cmd mnt pkgs
|
||||||
cmd="${BCMDS[$BOOTLDR]}"
|
cmd="$(eval echo ${BCMDS[$SYS-$BOOTLDR]})"
|
||||||
mnt="${BMNTS[$SYS-$BOOTLDR]}"
|
mnt="${BMNTS[$SYS-$BOOTLDR]}"
|
||||||
msgbox "$_PrepTitle" "
|
msgbox "$_PrepTitle" "
|
||||||
|
|
||||||
@ -406,9 +406,9 @@ select_packages()
|
|||||||
1) PACKAGES+=" $(select_browsers)" ;;
|
1) PACKAGES+=" $(select_browsers)" ;;
|
||||||
2) PACKAGES+=" $(select_editors)" ;;
|
2) PACKAGES+=" $(select_editors)" ;;
|
||||||
3) PACKAGES+=" $(select_terminals)" ;;
|
3) PACKAGES+=" $(select_terminals)" ;;
|
||||||
4) PACKAGES+=" $(select_music_and_video)" ;;
|
4) PACKAGES+=" $(select_multimedia)" ;;
|
||||||
5) PACKAGES+=" $(select_mail_and_chat)" ;;
|
5) PACKAGES+=" $(select_mailchat)" ;;
|
||||||
6) PACKAGES+=" $(select_office_and_editing)" ;;
|
6) PACKAGES+=" $(select_professional)" ;;
|
||||||
7) PACKAGES+=" $(select_managment)" ;;
|
7) PACKAGES+=" $(select_managment)" ;;
|
||||||
8) PACKAGES+=" $(select_extra)" ;;
|
8) PACKAGES+=" $(select_extra)" ;;
|
||||||
esac
|
esac
|
||||||
@ -422,7 +422,7 @@ select_packages()
|
|||||||
|
|
||||||
# add mksh to package list if it was chosen as the login shell
|
# add mksh to package list if it was chosen as the login shell
|
||||||
if [[ $MYSHELL == *mksh ]]; then
|
if [[ $MYSHELL == *mksh ]]; then
|
||||||
declare -g PACKAGES="mksh $PACKAGES"
|
PACKAGES+=" mksh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# remove duplicates and leading spaces
|
# remove duplicates and leading spaces
|
||||||
@ -521,7 +521,6 @@ edit_configs()
|
|||||||
edit_configs
|
edit_configs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# dialog helper functions
|
# dialog helper functions
|
||||||
|
|
||||||
msgbox()
|
msgbox()
|
||||||
|
@ -48,6 +48,9 @@ install()
|
|||||||
# set up user login.. MUST be done after package operation and user creation
|
# set up user login.. MUST be done after package operation and user creation
|
||||||
oneshot login_manager
|
oneshot login_manager
|
||||||
|
|
||||||
|
# fix any messed up file permissions from editing during install
|
||||||
|
chrun "chown -Rf $NEWUSER:users /home/$NEWUSER"
|
||||||
|
|
||||||
# drop off the user at the config editing menu
|
# drop off the user at the config editing menu
|
||||||
edit_configs
|
edit_configs
|
||||||
}
|
}
|
||||||
@ -193,7 +196,6 @@ create_user()
|
|||||||
# Create the user, set password, and make sure the ownership of ~/ is correct
|
# Create the user, set password, and make sure the ownership of ~/ is correct
|
||||||
chrun "useradd -m -u 1000 -g users -G $groups -s $MYSHELL $NEWUSER" 2>$ERR
|
chrun "useradd -m -u 1000 -g users -G $groups -s $MYSHELL $NEWUSER" 2>$ERR
|
||||||
chrun "chpasswd <<< '$NEWUSER:$USER_PASS'"
|
chrun "chpasswd <<< '$NEWUSER:$USER_PASS'"
|
||||||
chrun "chown -Rf $NEWUSER:users /home/$NEWUSER"
|
|
||||||
|
|
||||||
# for neovim set up ~/.config/nvim
|
# for neovim set up ~/.config/nvim
|
||||||
if [[ $PACKAGES =~ neovim ]]; then
|
if [[ $PACKAGES =~ neovim ]]; then
|
||||||
@ -309,7 +311,12 @@ run_mkinitcpio()
|
|||||||
{
|
{
|
||||||
local add=""
|
local add=""
|
||||||
# setup a keyfile for LUKS.. Only when choosing grub and system is UEFI
|
# setup a keyfile for LUKS.. Only when choosing grub and system is UEFI
|
||||||
[[ $LUKS && ! $LVM && $SYS == 'UEFI' && $BOOTLDR == 'grub' ]] && luks_keyfile
|
if [[ $LUKS && ! $LVM && $SYS == 'UEFI' && $BOOTLDR == 'grub' ]]; then
|
||||||
|
if [[ $LUKS_PASS ]]; then
|
||||||
|
luks_pass "$_LuksOpen" "$LUKS_NAME" || return 1
|
||||||
|
fi
|
||||||
|
luks_keyfile
|
||||||
|
fi
|
||||||
|
|
||||||
# new hooks needed in /etc/mkinitcpio.conf if we used LUKS and/or LVM
|
# new hooks needed in /etc/mkinitcpio.conf if we used LUKS and/or LVM
|
||||||
[[ $LVM ]] && add="lvm2"
|
[[ $LVM ]] && add="lvm2"
|
||||||
|
@ -178,10 +178,7 @@ luks_keyfile()
|
|||||||
# Without a keyfile, during boot the user will be asked
|
# Without a keyfile, during boot the user will be asked
|
||||||
# to enter password for decryption twice, this is annoying
|
# to enter password for decryption twice, this is annoying
|
||||||
|
|
||||||
if [[ ! -e $MNT/crypto_keyfile.bin ]]; then
|
if [[ ! -e $MNT/crypto_keyfile.bin && $LUKS_PASS && $LUKS_UUID ]]; then
|
||||||
infobox "$_LuksKeyFileTitle" "$_LuksKeyFileCreate" 0
|
|
||||||
printf "$_LuksKeyFileCreate"
|
|
||||||
|
|
||||||
local n
|
local n
|
||||||
n="$(lsblk -lno NAME,UUID,TYPE | awk "/$LUKS_UUID/"' && /part|crypt|lvm/ {print $1}')"
|
n="$(lsblk -lno NAME,UUID,TYPE | awk "/$LUKS_UUID/"' && /part|crypt|lvm/ {print $1}')"
|
||||||
|
|
||||||
|
@ -85,9 +85,22 @@ get_lv_size()
|
|||||||
# check whether the value is greater than or equal to the LV remaining Size.
|
# check whether the value is greater than or equal to the LV remaining Size.
|
||||||
# if not, convert into MB for VG space remaining.
|
# if not, convert into MB for VG space remaining.
|
||||||
case ${VOLUME_SIZE:$lv:1} in
|
case ${VOLUME_SIZE:$lv:1} in
|
||||||
[Gg]) (( m >= VOL_GROUP_MB )) && ERR_SIZE=1 || VOL_GROUP_MB=$((VOL_GROUP_MB - m)) ;;
|
[Gg])
|
||||||
[Mm]) (( ${VOLUME_SIZE:0:$lv} >= VOL_GROUP_MB )) && ERR_SIZE=1 || VOL_GROUP_MB=$((VOL_GROUP_MB - s)) ;;
|
if (( m >= VOL_GROUP_MB )); then
|
||||||
*) ERR_SIZE=1
|
ERR_SIZE=1
|
||||||
|
else
|
||||||
|
VOL_GROUP_MB=$((VOL_GROUP_MB - m))
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
[Mm])
|
||||||
|
if (( ${VOLUME_SIZE:0:$lv} >= VOL_GROUP_MB )); then
|
||||||
|
ERR_SIZE=1
|
||||||
|
else
|
||||||
|
VOL_GROUP_MB=$((VOL_GROUP_MB - s))
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
ERR_SIZE=1
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -197,14 +210,20 @@ lvm_create_group()
|
|||||||
done
|
done
|
||||||
|
|
||||||
# create it
|
# create it
|
||||||
infobox "$_LvmCreateVG" "$_LvmPvActBody1 $VOLUME_GROUP\n" 0
|
|
||||||
vgcreate -f "$VOLUME_GROUP" "$GROUP_PARTS" >/dev/null 2>$ERR
|
vgcreate -f "$VOLUME_GROUP" "$GROUP_PARTS" >/dev/null 2>$ERR
|
||||||
echeck "vgcreate -f $VOLUME_GROUP $GROUP_PARTS"
|
echeck "vgcreate -f $VOLUME_GROUP $GROUP_PARTS"
|
||||||
|
|
||||||
# get volume size size and transform size to MB if size is given in GB
|
GROUP_SIZE=$(vgdisplay "$VOLUME_GROUP" |
|
||||||
GROUP_SIZE=$(vgdisplay "$VOLUME_GROUP" | awk '/VG Size/ {print int($3)}')
|
awk '/VG Size/ {print int($3)}')
|
||||||
GROUP_SIZE_TYPE="$(vgdisplay "$VOLUME_GROUP" | awk '/VG Size/ {print substr($NF, 0, 1)}')"
|
|
||||||
[[ $GROUP_SIZE_TYPE == 'G' ]] && VOL_GROUP_MB=$((GROUP_SIZE * 1000)) || VOL_GROUP_MB=$GROUP_SIZE
|
GROUP_SIZE_TYPE="$(vgdisplay "$VOLUME_GROUP" |
|
||||||
|
awk '/VG Size/ {print substr($NF, 0, 1)}')"
|
||||||
|
|
||||||
|
if [[ $GROUP_SIZE_TYPE == 'G' ]]; then
|
||||||
|
VOL_GROUP_MB=$((GROUP_SIZE * 1000))
|
||||||
|
else
|
||||||
|
VOL_GROUP_MB=$GROUP_SIZE
|
||||||
|
fi
|
||||||
|
|
||||||
# finished volume group creation
|
# finished volume group creation
|
||||||
local msg="$_LvmPvDoneBody1 $VOLUME_GROUP ($GROUP_SIZE $GROUP_SIZE_TYPE)"
|
local msg="$_LvmPvDoneBody1 $VOLUME_GROUP ($GROUP_SIZE $GROUP_SIZE_TYPE)"
|
||||||
|
@ -42,7 +42,14 @@ mnt_menu()
|
|||||||
select_boot_partition || { BOOT_PART=""; return 1; }
|
select_boot_partition || { BOOT_PART=""; return 1; }
|
||||||
fi
|
fi
|
||||||
|
|
||||||
select_boot_setup || { BOOTLDR=""; return 1; }
|
if select_bootloader; then
|
||||||
|
if [[ $BOOT_PART != "" ]]; then
|
||||||
|
mount_boot_part || return 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
BOOTLDR=""
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
select_swap || return 1
|
select_swap || return 1
|
||||||
select_extra_partitions || return 1
|
select_extra_partitions || return 1
|
||||||
@ -53,9 +60,7 @@ select_swap()
|
|||||||
{
|
{
|
||||||
# Ask user to select partition or create swapfile
|
# Ask user to select partition or create swapfile
|
||||||
tput civis
|
tput civis
|
||||||
if ! SWAP_PART="$(menubox "$_SelSwpSetup" "$_SelSwpBody" 0 0 0 \
|
if ! SWAP_PART="$(menubox "$_SelSwpSetup" "$_SelSwpBody" 0 0 0 "$_SelSwpNone" "-" "$_SelSwpFile" "$SYS_MEM" $PARTS)" || [[ $SWAP_PART == "$_SelSwpNone" ]]; then
|
||||||
"$_SelSwpNone" "-" "$_SelSwpFile" "$SYS_MEM" $PARTS)" ||
|
|
||||||
[[ $SWAP_PART == "$_SelSwpNone" ]]; then
|
|
||||||
SWAP_PART=""
|
SWAP_PART=""
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
@ -63,7 +68,6 @@ select_swap()
|
|||||||
if [[ $SWAP_PART == "$_SelSwpFile" ]]; then
|
if [[ $SWAP_PART == "$_SelSwpFile" ]]; then
|
||||||
tput cnorm
|
tput cnorm
|
||||||
local i=0
|
local i=0
|
||||||
|
|
||||||
while ! [[ ${SWAP_SIZE:0:1} =~ [1-9] && ${SWAP_SIZE: -1} =~ (M|G) ]]; do
|
while ! [[ ${SWAP_SIZE:0:1} =~ [1-9] && ${SWAP_SIZE: -1} =~ (M|G) ]]; do
|
||||||
(( i > 0 )) && msgbox "$_SelSwpSetup Error" "\n$_SelSwpErr $SWAP_SIZE\n"
|
(( i > 0 )) && msgbox "$_SelSwpSetup Error" "\n$_SelSwpErr $SWAP_SIZE\n"
|
||||||
if ! SWAP_SIZE="$(getinput "$_SelSwpSetup" "$_SelSwpSize" "$SYS_MEM")"; then
|
if ! SWAP_SIZE="$(getinput "$_SelSwpSetup" "$_SelSwpSize" "$SYS_MEM")"; then
|
||||||
@ -100,56 +104,15 @@ select_mountpoint()
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
select_boot_setup()
|
select_bootloader()
|
||||||
{
|
{
|
||||||
# choose bootloader and mountpoint (if needed)
|
|
||||||
tput civis
|
tput civis
|
||||||
if ! BOOTLDR="$(menubox "$_PrepMount" "$_MntBootBody" 0 0 0 ${BOOTLDRS[$SYS]})"; then
|
if ! BOOTLDR="$(menubox "$_PrepMount" "$_MntBootBody" 0 0 0 ${BOOTLDRS[$SYS]})"; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# grub on BIOS needs an install device, NOT partition eg. /dev/sda
|
[[ $BOOT_PART ]] && setup_boot_device
|
||||||
if [[ $SYS == 'BIOS' && $BOOTLDR == 'grub' && $BOOT_DEVICE == "" ]]; then
|
pre_${BOOTLDR} || return 1
|
||||||
select_device 'boot' || return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $BOOTLDR == 'systemd-boot' ]]; then
|
|
||||||
FILES[9]="/boot/loader/entries/$DIST.conf"
|
|
||||||
elif [[ $BOOTLDR == 'syslinux' ]]; then
|
|
||||||
if [[ $SYS == 'BIOS' ]]; then
|
|
||||||
FILES[9]="/boot/syslinux/syslinux.cfg"
|
|
||||||
if ! BCMDS[$BOOTLDR]="$(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
|
|
||||||
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
|
|
||||||
else
|
|
||||||
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-grub]} --bootloader-id=$DIST"
|
|
||||||
else
|
|
||||||
BCMDS[grub]+=" --target=i386-pc $BOOT_DEVICE"
|
|
||||||
fi
|
|
||||||
BCMDS[grub]+=" && grub-mkconfig -o /boot/grub/grub.cfg"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $BOOT_PART != "" ]]; then
|
|
||||||
infobox "$_PrepMount" "\nSetting up for the bootloader and mounting the boot partition.\n" 1
|
|
||||||
setup_boot_device
|
|
||||||
if ! mount_partition "$BOOT_PART" "${BMNTS[$SYS-$BOOTLDR]}"; then
|
|
||||||
src /usr/share/archlabs/installer/lib/boot.sh
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
SEPERATE_BOOT=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
select_mount_opts()
|
select_mount_opts()
|
||||||
|
@ -66,7 +66,7 @@ select_terminals()
|
|||||||
printf "%s" "$pkgs"
|
printf "%s" "$pkgs"
|
||||||
}
|
}
|
||||||
|
|
||||||
select_music_and_video()
|
select_multimedia()
|
||||||
{
|
{
|
||||||
local pkgs=""
|
local pkgs=""
|
||||||
pkgs="$(checkbox "$_Packages" "$_PackageBody" 0 0 0 \
|
pkgs="$(checkbox "$_Packages" "$_PackageBody" 0 0 0 \
|
||||||
@ -84,7 +84,7 @@ select_music_and_video()
|
|||||||
printf "%s" "$pkgs"
|
printf "%s" "$pkgs"
|
||||||
}
|
}
|
||||||
|
|
||||||
select_mail_and_chat()
|
select_mailchat()
|
||||||
{
|
{
|
||||||
local pkgs=""
|
local pkgs=""
|
||||||
pkgs="$(checkbox "$_Packages" "$_PackageBody" 0 0 0 \
|
pkgs="$(checkbox "$_Packages" "$_PackageBody" 0 0 0 \
|
||||||
@ -99,7 +99,7 @@ select_mail_and_chat()
|
|||||||
printf "%s" "$pkgs"
|
printf "%s" "$pkgs"
|
||||||
}
|
}
|
||||||
|
|
||||||
select_office_and_editing()
|
select_professional()
|
||||||
{
|
{
|
||||||
local pkgs=""
|
local pkgs=""
|
||||||
pkgs="$(checkbox "$_Packages" "$_PackageBody" 0 0 0 \
|
pkgs="$(checkbox "$_Packages" "$_PackageBody" 0 0 0 \
|
||||||
@ -155,7 +155,7 @@ select_extra()
|
|||||||
"gpick" "Advanced color picker using GTK+ toolkit" off \
|
"gpick" "Advanced color picker using GTK+ toolkit" off \
|
||||||
"gcolor2" "A simple GTK+2 color selector" off \
|
"gcolor2" "A simple GTK+2 color selector" off \
|
||||||
"plank" "An elegant, simple, and clean dock" off \
|
"plank" "An elegant, simple, and clean dock" off \
|
||||||
"docky" "Full fledged dock that makes opening applications and managing windows faster and easier" off \
|
"docky" "Full fledged dock for opening applications and managing windows" off \
|
||||||
"cairo-dock" "Light eye-candy fully themable animated dock" off)"
|
"cairo-dock" "Light eye-candy fully themable animated dock" off)"
|
||||||
printf "%s" "$pkgs"
|
printf "%s" "$pkgs"
|
||||||
}
|
}
|
||||||
|
@ -290,6 +290,16 @@ mount_partition()
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mount_boot_part()
|
||||||
|
{
|
||||||
|
if ! mount_partition "$BOOT_PART" "${BMNTS[$SYS-$BOOTLDR]}"; then
|
||||||
|
src /usr/share/archlabs/installer/lib/boot.sh
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
SEPERATE_BOOT=true
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
find_partitions()
|
find_partitions()
|
||||||
{
|
{
|
||||||
local str="$1"
|
local str="$1"
|
||||||
@ -333,6 +343,8 @@ find_partitions()
|
|||||||
|
|
||||||
setup_boot_device()
|
setup_boot_device()
|
||||||
{
|
{
|
||||||
|
infobox "$_PrepMount" "\nSetting device flags for: $BOOT_PART\n" 1
|
||||||
|
|
||||||
if [[ $BOOT_PART = /dev/nvme* ]]; then
|
if [[ $BOOT_PART = /dev/nvme* ]]; then
|
||||||
BOOT_DEVICE="${BOOT_PART%p[1-9]}"
|
BOOT_DEVICE="${BOOT_PART%p[1-9]}"
|
||||||
else
|
else
|
||||||
|
@ -25,7 +25,7 @@ json()
|
|||||||
src()
|
src()
|
||||||
{
|
{
|
||||||
# source a file ($1), if it fails we die with an error message
|
# source a file ($1), if it fails we die with an error message
|
||||||
. "$1" || { printf "\nFailed to source file %s\n" "$1"; die 1; }
|
. "$1" 2>/dev/null || { printf "\nFailed to source file %s\n" "$1"; die 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
ssd()
|
ssd()
|
||||||
@ -40,18 +40,22 @@ ssd()
|
|||||||
dev=${dev%[0-9]*}
|
dev=${dev%[0-9]*}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[[ $(cat /sys/block/$dev/queue/rotational) -eq 0 ]] || return 1
|
local i
|
||||||
|
i=$(cat /sys/block/$dev/queue/rotational 2>/dev/null)
|
||||||
|
[[ $i && $i -eq 0 ]] || return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
die()
|
die()
|
||||||
{
|
{
|
||||||
|
|
||||||
if (( $# >= 1 )); then
|
if (( $# >= 1 )); then
|
||||||
local exitcode=$1
|
local exitcode=$1
|
||||||
else
|
else
|
||||||
local exitcode=0
|
local exitcode=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# reset SIGINT
|
||||||
|
trap - INT
|
||||||
|
|
||||||
tput cnorm
|
tput cnorm
|
||||||
if [[ -d $MNT ]] && command cd /; then
|
if [[ -d $MNT ]] && command cd /; then
|
||||||
umount_dir $MNT
|
umount_dir $MNT
|
||||||
@ -223,8 +227,6 @@ echeck()
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
die 1
|
die 1
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
debug()
|
debug()
|
||||||
@ -238,6 +240,8 @@ debug()
|
|||||||
umount_dir()
|
umount_dir()
|
||||||
{
|
{
|
||||||
swapoff -a
|
swapoff -a
|
||||||
[[ -d $1 ]] && umount -R $1 >/dev/null 2>&1
|
if [[ -d $1 ]]; then
|
||||||
|
umount -R $1 >/dev/null 2>&1
|
||||||
|
fi
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user