# check for syntax errors
# set -n
-VER=2.0.94
+VER=2.0.95
# default values {
8 "* System configuration" \
9 "Select window manager or desktop" \
10 "Select additional packages" \
- 11 "View configuration selections" \
- 12 "Run a command on the installed system" \
+ 11 "Run a command on the installed system" \
+ 12 "View configuration and command selections" \
13 "* Confirm choices and start the installation" 2> "$ANS"
read -r SEL < "$ANS"
8) prechecks 2 && { select_config || (( SEL-- )); } ;;
9) prechecks 3 && { select_sessions || (( SEL-- )); } ;;
10) prechecks 3 && { select_packages || (( SEL-- )); } ;;
- 11) prechecks 3 && select_show ;;
- 12) prechecks 3 && select_usercmd ;;
+ 11) prechecks 3 && select_usercmd ;;
+ 12) prechecks 3 && select_show ;;
13) prechecks 3 && install_main ;;
*) yesno "Exit" "\nUnmount partitions (if any) and exit the installer?\n" && die 0
esac
Hostname: ${MYHOST:-none}
Timezone: ${ZONE:-none}/${SUBZ:-none}
+ Chroot cmd: ${USER_CMD:-none}
+
------------ USER CONFIGURATION ---------------
Username: ${NEWUSER:-none}
"sddm" "Simple desktop display manager" || return 1
case $LOGIN_TYPE in
- ly) EDIT_FILES[login]="/etc/ly/config.ini" ;;
gdm|sddm) EDIT_FILES[login]="" ;;
+ ly) EDIT_FILES[login]="/etc/ly/config.ini" ;;
lightdm) EDIT_FILES[login]="/etc/lightdm/lightdm.conf /etc/lightdm/lightdm-gtk-greeter.conf" ;;
xinit) EDIT_FILES[login]="/home/$NEWUSER/.xinitrc /home/$NEWUSER/.xprofile"
if (( $(wc -w <<< "$INSTALL_WMS") > 1 )); then
choice=""
dlg choice menu "Edit Partitions" "$_part\n\n$(lsblk -no NAME,MODEL,SIZE,TYPE,FSTYPE $device)" \
"auto" "Whole device automatic partitioning" \
- "shrink" "Shrink an existing ext or ntfs partition" \
"cfdisk" "Curses based variant of fdisk" \
"parted" "GNU partition editor" \
"fdisk" "Dialog-driven creation and manipulation of partitions" \
"done" "Return to the main menu"
+ # "shrink" "Shrink an existing ext or ntfs partition" \
if [[ -z $choice || $choice == 'done' ]]; then
return 0
part_find()
{
local regexp="$1" err=''
+ local pts dev size isize ptcount=0
# string of partitions as /TYPE/PART SIZE.. eg. /dev/sda1 256G
if [[ $IGNORE_DEV ]]; then
# ensure we have enough partitions for the system and action were trying to do
COUNT=$(wc -l <<< "$PARTS")
+
+ while read -r dev size; do # walk partition list and skip ones that are too small
+ [[ $dev && $size ]] || continue
+ size_t="${size: -1:1}"
+ isize=${size:0:-1}
+ isize=${isize%.*}
+ [[ $size_t == 'K' || ($size_t == 'M' && $isize -lt 100) ]] || { pts+="$dev $size "; (( ptcount++ )); }
+ done <<< "$PARTS"
+
case "$regexp" in
- 'part|lvm|crypt') [[ $COUNT -lt 1 || ($SYS == 'UEFI' && $COUNT -lt 2) ]] && err="$_errpart" ;;
- 'part|crypt') (( COUNT < 1 )) && err="$_lvmerr" ;;
- 'part|lvm') (( COUNT < 2 )) && err="$_lukserr" ;;
+ 'part|lvm|crypt') [[ $ptcount -lt 1 || ($SYS == 'UEFI' && $COUNT -lt 2) ]] && err="$_errpart" ;;
+ 'part|crypt') (( ptcount < 1 )) && err="$_lvmerr" ;;
+ 'part|lvm') (( ptcount < 2 )) && err="$_lukserr" ;;
esac
if [[ $err ]]; then
mount_menu()
{
+ msg "Mount Menu" "\nGathering device and partition information.\n" 0
no_bg_install || return 0
lvm_detect
umount_dir "$MNT"
lvm_detect()
{
- local v pv
- pv="$(pvs -o pv_name --noheading 2> /dev/null)"
- v="$(lvs -o vg_name,lv_name --noheading --separator - 2> /dev/null)"
- VGROUP="$(vgs -o vg_name --noheading 2> /dev/null)"
-
- if [[ $VGROUP && $v && $pv ]]; then
- msg "LVM Setup" "\nActivating existing logical volume management.\n" 0
- modprobe dm-mod > /dev/null 2> "$ERR"
- errshow 'modprobe dm-mod'
- vgscan > /dev/null 2>&1
- vgchange -ay > /dev/null 2>&1
+ if [[ $(vgs -o vg_name --noheading 2> /dev/null) ]]; then
+ if [[ $(lvs -o vg_name,lv_name --noheading --separator - 2> /dev/null) && $(pvs -o pv_name --noheading 2> /dev/null) ]]; then
+ msg "LVM Setup" "\nActivating existing logical volume management.\n" 0
+ modprobe dm-mod > /dev/null 2> "$ERR"
+ errshow 'modprobe dm-mod'
+ vgscan > /dev/null 2>&1
+ vgchange -ay > /dev/null 2>&1
+ fi
fi
}