Update filesystem selection to use looping instead of recursion

This commit is contained in:
natemaia
2019-01-19 16:04:57 -08:00
parent 1e6f7a1438
commit 1e93f2b6c5
2 changed files with 173 additions and 142 deletions

View File

@ -8,7 +8,7 @@
# Some ideas and code reworked from other resources
# AIF, Cnichi, Calamares, Arch Wiki.. Credit where credit is due
VER="1.8.42" # version
VER="1.8.44" # version
DIST="ArchLabs" # distributor
MNT="/mnt" # install mountpoint
@ -20,8 +20,8 @@ ROOT_PART="" # root partition
BOOT_PART="" # boot partition
BOOT_DEVICE="" # device used for BIOS grub install
BOOTLDR="" # bootloader selected
EXTRA_MNT="" # holder for additional partitions while mounting
EXTRA_MNTS="" # when an extra partition is mounted append it's info
EXMNT="" # holder for additional partitions while mounting
EXMNTS="" # when an extra partition is mounted append it's info
SWAP_PART="" # swap partition or file path
SWAP_SIZE="" # when using a swapfile use this size
NEWUSER="" # username for the primary user
@ -30,7 +30,7 @@ ROOT_PASS="" # root password
LOGIN_WM="" # default login session
LOGIN_TYPE="" # login manager can be lightdm or xinit
INSTALL_WMS="" # space separated list of chosen wm/de
KERNEL="linux" # kernel can be linux or linux-lts
KERNEL="linux" # can be linux, linux-lts, linux-zen, or linux-hardened
MYSHELL="" # login shell for root and the primary user
PACKAGES="" # list of all packages to install including WM_PACKAGES
USER_PKGS="" # packages selected by the user during install
@ -57,7 +57,7 @@ CONFIG_DONE=false # basic configuration is finished
BROADCOM_WL=false # fixes for broadcom cards eg. BCM4352
CHECKED_NET=false # have we checked the network connection already
AUTO_ROOT_PART="" # values from auto partition
AUTO_ROOT_PART="" # values from auto partition
AUTO_BOOT_PART=""
# sane baseline
@ -67,7 +67,7 @@ BASE_PKGS+="playerctl ffmpeg gstreamer libmad libmatroska gst-libav gst-plugins-
# sane extras for window managers
WM_BASE_PKGS="arandr archlabs-networkmanager-dmenu xdg-user-dirs nitrogen polkit-gnome volumeicon xclip exo "
WM_BASE_PKGS+="xdotool compton gnome-keyring dunst feh gsimplecal xfce4-power-manager xfce4-settings laptop-detect"
WM_BASE_PKGS+="xdotool compton wmctrl gnome-keyring dunst feh gsimplecal xfce4-power-manager xfce4-settings laptop-detect"
SEL=0 # currently selected menu item
ERR="/tmp/errlog" # error log used internally
@ -109,7 +109,7 @@ CMAPS="$(find /usr/share/kbd/keymaps -name '*.map.gz' | awk '{
# command used to install each bootloader
declare -A BCMDS=(
[grub]="grub-install --recheck --force"
[syslinux]="syslinux-install_update -iam"
[syslinux]="syslinux-install_update -i -a -m"
[systemd-boot]="bootctl --path=/boot install"
)
@ -273,54 +273,56 @@ show_cfg()
---------- PARTITION CONFIGURATION ------------
Root: ${ROOT_PART:-None}
Boot: ${BOOT_PART:-${BOOT_DEVICE:-None}}
Root: ${ROOT_PART:-none}
Boot: ${BOOT_PART:-${BOOT_DEVICE:-none}}
Swap: ${SWAP_PART:-None}
Size: ${SWAP_SIZE:-None}
Swap: ${SWAP_PART:-none}
Size: ${SWAP_SIZE:-none}
LVM: ${LVM:-None}
LUKS: ${LUKS:-None}
LVM: ${LVM:-none}
LUKS: ${LUKS:-none}
Extra Mounts: ${EXTRA_MNTS:-${EXTRA_MNT:-None}}
Mkinit Hooks: ${HOOKS:-None}
Extra Mounts: ${EXMNTS:-${EXMNT:-none}}
Mkinit Hooks: ${HOOKS:-none}
---------- BOOTLOADER CONFIGURATION -----------
Bootloader: ${BOOTLDR:-None}
Mountpoint: ${mnt:-None}
Command: ${cmd:-None}
Bootloader: ${BOOTLDR:-none}
Mountpoint: ${mnt:-none}
Command: ${cmd:-none}
------------ SYSTEM CONFIGURATION -------------
Locale: ${LOCALE:-None}
Keymap: ${KEYMAP:-None}
Hostname: ${HOSTNAME:-None}
Timezone: ${ZONE:-None}/${SUBZONE:-None}
Locale: ${LOCALE:-none}
Keymap: ${KEYMAP:-none}
Hostname: ${HOSTNAME:-none}
Timezone: ${ZONE:-none}/${SUBZONE:-none}
------------ USER CONFIGURATION --------------
User: ${NEWUSER:-None}
Shell: ${MYSHELL:-None}
Session: ${LOGIN_WM:-None}
Autologin: ${AUTOLOGIN:-None}
Login Method: ${LOGIN_TYPE:-None}
User: ${NEWUSER:-none}
Shell: ${MYSHELL:-none}
Session: ${LOGIN_WM:-none}
Autologin: ${AUTOLOGIN:-none}
Login Method: ${LOGIN_TYPE:-none}
------------ PACKAGES AND MIRRORS -------------
Kernel: ${KERNEL:-None}
Sessions: ${INSTALL_WMS:-None}
Mirrors: ${MIRROR_CMD:-None}
Packages: $(print4 "${pkgs:-None}")
Kernel: ${KERNEL:-none}
Sessions: ${INSTALL_WMS:-none}
Mirrors: ${MIRROR_CMD:-none}
Packages: $(print4 "${pkgs:-none}")
"
}
cfg_menu()
{
local err=0
tput civis
if ! MYSHELL="$(menubox "$_ShellTitle" "$_ShellBody" '/usr/bin/zsh' '-' '/bin/bash' '-' '/usr/bin/mksh' '-')"; then
return 1
@ -335,9 +337,13 @@ cfg_menu()
return 1
fi
select_timezone || return 1
if ! KERNEL="$(menubox "$_KernelTitle" "$_KernelBody" 'linux' '-' 'linux-lts' '-')"; then
return 1
fi
KERNEL="$(menubox "$_KernelTitle" "$_KernelBody" \
'linux' 'Vanilla Linux kernel and modules, with a few patches applied.' \
'linux-lts' 'Long-term support (LTS) Linux kernel and modules.' \
'linux-zen' 'A collaborative effort of kernel hackers to provide the best Linux kernel for everyday systems' \
'linux-hardened' 'A security-focused Linux kernel with hardening patches to mitigate kernel and userspace exploits')"
err=$?
(( err == 0 )) || return 1
select_mirrorcmd || return 1
CONFIG_DONE=true
return 0
@ -887,9 +893,9 @@ partition_menu()
local root_size msg ret table boot_fs
root_size=$(lsblk -lno SIZE "$device" | awk 'NR == 1 {
if ($1 ~ "G") {
sub(/G/, ""); print ($1 * 1000 - 512) / 1000"G"
sub(/G/, ""); print ($1 * 1000 - 512) / 1000 "G"
} else {
sub(/M/, ""); print ($1 - 512)"M"
sub(/M/, ""); print ($1 - 512) "M"
}
}')
@ -899,7 +905,7 @@ partition_menu()
msg="$_PartBody2"; table="gpt"; boot_fs="fat32"
fi
if yesno "$_PrepParts" "$_PartBody1 $device $msg ($size)$_PartBody3"; then
if yesno "$_PrepParts" "$_PartBody1 $device $msg ($root_size)$_PartBody3"; then
auto_partition "$device" "$table" "$boot_fs" "$root_size" || return 1
else
partition_menu "$device"
@ -916,15 +922,6 @@ format_as()
errshow "${FS_CMDS[$2]} $1"
}
decr_count()
{
# remove a partition from the dialog list and decrement the number partitions left
local p="$1"
PARTS="$(sed "s~${p} [0-9]*[G-M]~~; s~${p} [0-9]*\.[0-9]*[G-M]~~" <<< "$PARTS")"
(( COUNT > 0 )) && (( COUNT-- ))
return 0
}
enable_swap()
{
if [[ $1 == "$MNT/swapfile" && $SWAP_SIZE ]]; then
@ -983,12 +980,12 @@ confirm_mount()
[[ $mount == "$MNT" ]] && local m="/ (root)" || local m="${mount#$MNT}"
if [[ $(mount) == *"$mount"* ]]; then
infobox "$_MntTitle" "$_MntSucc\nPartition: $part\nMountpoint: $m\n" 1
decr_count "$part"
PARTS="$(sed "s~${part} [0-9]*[G-M]~~; s~${part} [0-9]*\.[0-9]*[G-M]~~" <<< "$PARTS")"
(( COUNT > 0 )) && (( COUNT-- ))
else
infobox "$_MntTitle" "$_MntFail\n$msg\n" 1
return 1
fi
return 0
}
@ -1203,7 +1200,8 @@ select_swap()
SWAP_PART="/swapfile"
else
enable_swap "$SWAP_PART"
decr_count "$SWAP_PART"
PARTS="$(sed "s~${SWAP_PART} [0-9]*[G-M]~~; s~${SWAP_PART} [0-9]*\.[0-9]*[G-M]~~" <<< "$PARTS")"
(( COUNT > 0 )) && (( COUNT-- ))
SWAP_SIZE="$(lsblk -lno SIZE $SWAP_PART)"
fi
return 0
@ -1211,72 +1209,92 @@ select_swap()
select_mountpoint()
{
local err=0
tput cnorm
EXTRA_MNT="$(getinput "$_PrepMount $part" "$_ExtPartBody1" "/" nolimit)" || return 1
if [[ ${EXTRA_MNT:0:1} != "/" || ${#EXTRA_MNT} -le 1 || $EXTRA_MNT =~ \ |\' || $EXTRA_MNTS == *"$EXTRA_MNT"* ]]; then
msgbox "$_ErrTitle" "$_ExtErrBody"
select_mountpoint || return 1
fi
return 0
while true; do
EXMNT="$(getinput "$_PrepMount $part" "$_ExtPartBody1" "/" nolimit)"
err=$?
(( err == 0 )) || break
if [[ ${EXMNT:0:1} != "/" || ${#EXMNT} -le 1 || $EXMNT =~ \ |\' || $EXMNTS == *"$EXMNT"* ]]; then
msgbox "$_ErrTitle" "$_ExtErrBody"
else
break
fi
done
return $err
}
select_mount_opts()
{
local part="$1"
local fs="$2"
local part="$1" fs="$2" err=0
local title="${fs^} Mount Options"
local opts="${FS_OPTS[$fs]}"
tput civis
is_ssd "$part" >/dev/null 2>&1 && opts=$(sed 's/discard - off/discard - on/' <<< "$opts")
MNT_OPTS="$(dialog --cr-wrap --stdout --backtitle "$BT" --title " $title " --checklist "$_MntBody" 0 0 0 $opts)"
[[ $MNT_OPTS ]] && MNT_OPTS="$(sed 's/ /,/g; $s/,$//' <<< "$MNT_OPTS" )" || return 1
yesno "$title" "$_MntConfBody $MNT_OPTS\n" || { select_mount_opts "$part" "$fs" || return 1; }
if is_ssd "$part" >/dev/null 2>&1; then
opts=$(sed 's/discard - off/discard - on/' <<< "$opts")
fi
return 0
tput civis
while true; do
MNT_OPTS="$(dialog --cr-wrap --stdout --backtitle "$BT" \
--title " $title " --checklist "$_MntBody" 0 0 0 $opts)"
if [[ $MNT_OPTS ]]; then
MNT_OPTS="$(sed 's/ /,/g; $s/,$//' <<< "$MNT_OPTS" )"
yesno "$title" "$_MntConfBody $MNT_OPTS\n" && break
else
err=1; break
fi
done
return $err
}
select_filesystem()
{
local part="$1"
local fs cur_fs
local part="$1" fs="" cur_fs="" err=0
cur_fs="$(lsblk -lno FSTYPE "$part" 2>/dev/null)"
local msg="\nSelect which filesystem to use for: $part\n\nCurrent: ${cur_fs:-None}\nDefault: ext4"
local msg="\nSelect which filesystem to use for: $part\n\nCurrent: ${cur_fs:-none}\nDefault: ext4"
[[ $part == $ROOT_PART && $ROOT_PART == $AUTO_ROOT_PART && $LUKS == "" && $LVM == "" ]] && return 0
tput civis
if [[ $cur_fs && $part != "$ROOT_PART" ]]; then
fs="$(menubox "$_FSTitle: $part" "$msg" \
"$_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]}" \
"xfs" "${FS_CMDS[xfs]}"\
"nilfs2" "${FS_CMDS[nilfs2]}" \
"reiserfs" "${FS_CMDS[reiserfs]}")"
[[ $fs == "$_Skip" ]] && return 0
else
fs="$(menubox "$_FSTitle: $part" "$msg" \
"ext4" "${FS_CMDS[ext4]}" \
"ext3" "${FS_CMDS[ext3]}" \
"ext2" "${FS_CMDS[ext2]}" \
"ntfs" "${FS_CMDS[ntfs]}" \
"f2fs" "${FS_CMDS[f2fs]}" \
"jfs" "${FS_CMDS[jfs]}" \
"xfs" "${FS_CMDS[xfs]}" \
"nilfs2" "${FS_CMDS[nilfs2]}" \
"reiserfs" "${FS_CMDS[reiserfs]}")"
fi
[[ $fs ]] || return 1
if yesno "$_FSTitle" "\nFormat $part as $fs?\n"; then
format_as "$part" "$fs" || return 1
else
select_filesystem "$part" || return 1
fi
return 0
while true; do
tput civis
if [[ $cur_fs && $part != "$ROOT_PART" ]]; then
fs="$(menubox "$_FSTitle: $part" "$msg" \
"$_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]}" \
"xfs" "${FS_CMDS[xfs]}"\
"nilfs2" "${FS_CMDS[nilfs2]}" \
"reiserfs" "${FS_CMDS[reiserfs]}")"
[[ $fs == "$_Skip" ]] && break
else
fs="$(menubox "$_FSTitle: $part" "$msg" \
"ext4" "${FS_CMDS[ext4]}" \
"ext3" "${FS_CMDS[ext3]}" \
"ext2" "${FS_CMDS[ext2]}" \
"ntfs" "${FS_CMDS[ntfs]}" \
"f2fs" "${FS_CMDS[f2fs]}" \
"jfs" "${FS_CMDS[jfs]}" \
"xfs" "${FS_CMDS[xfs]}" \
"nilfs2" "${FS_CMDS[nilfs2]}" \
"reiserfs" "${FS_CMDS[reiserfs]}")"
fi
[[ $fs ]] || { err=1; break; }
yesno "$_FSTitle" "\nFormat $part as $fs?\n" && break
done
(( err == 0 )) || return $err
[[ $fs == "$_Skip" ]] || format_as "$part" "$fs"
}
select_efi_partition()
@ -1311,7 +1329,7 @@ select_efi_partition()
select_boot_partition()
{
tput civis
if [[ $AUTO_BOOT_PART == "$BOOT_PART" ]]; then
if [[ $AUTO_BOOT_PART && $AUTO_BOOT_PART == "$BOOT_PART" ]]; then
BOOT_PART="$AUTO_BOOT_PART"
return 0 # were done here
else
@ -1353,13 +1371,13 @@ select_extra_partitions()
while (( COUNT > 0 )); do
tput civis
part="$(menubox "$_PrepMount " "$_ExtPartBody" "$_Done" "Return to the last menu" $PARTS)"
part="$(menubox "$_PrepMount " "$_ExtPartBody" "$_Done" "Return to the main menu" $PARTS)"
if [[ $part == "$_Done" || $part == "" ]]; then
break
elif select_filesystem "$part" && select_mountpoint && mount_partition "$part" "$EXTRA_MNT"; then
EXTRA_MNTS="$EXTRA_MNTS $part: $EXTRA_MNT"
[[ $EXTRA_MNT == '/usr' && $HOOKS != *usr* ]] && HOOKS="usr $HOOKS"
elif select_filesystem "$part" && select_mountpoint && mount_partition "$part" "$EXMNT"; then
EXMNTS="$EXMNTS $part: $EXMNT"
[[ $EXMNT == '/usr' && $HOOKS != *usr* ]] && HOOKS="usr $HOOKS"
else
break; return 1
fi
@ -1427,7 +1445,7 @@ EOF
if [[ -e /run/archiso/sfs/airootfs ]]; then
printf "Copying vmlinuz and ucode to /boot\n"
[[ $KERNEL != 'linux-lts' ]] && cp -vf $RUN/x86_64/vmlinuz $MNT/boot/vmlinuz-linux
[[ $KERNEL == 'linux' ]] && cp -vf $RUN/x86_64/vmlinuz $MNT/boot/vmlinuz-linux
[[ $UCODE && ! $VM ]] && cp -vf $RUN/${UCODE/-/_}.img $MNT/boot/${UCODE}.img
fi
@ -1530,7 +1548,7 @@ setup_xinit()
if [[ -e $MNT/home/$NEWUSER/.xinitrc ]] && grep -q 'exec' $MNT/home/$NEWUSER/.xinitrc; then
sed -i "/exec/ c exec ${LOGIN_WM}" $MNT/home/$NEWUSER/.xinitrc
else
printf "exec %s\n" "$LOGIN_WM" > $MNT/home/$NEWUSER/.xinitrc
printf "exec %s\n" "$LOGIN_WM" >> $MNT/home/$NEWUSER/.xinitrc
fi
# automatic startx for login shells
@ -1567,10 +1585,7 @@ EOF
loginrc=".zprofile"
esac
if ! [[ ${EDIT_FILES[login]} =~ $loginrc ]]; then
# add the shell login file to the edit list after install
EDIT_FILES[login]+=" /home/$NEWUSER/$loginrc"
fi
[[ ${EDIT_FILES[login]} == *"$loginrc"* ]] || EDIT_FILES[login]+=" /home/$NEWUSER/$loginrc"
if [[ $AUTOLOGIN == true ]]; then
sed -i "s/root/${NEWUSER}/g" $SERVICE/autologin.conf
@ -1666,7 +1681,19 @@ package_operations()
[[ $MYSHELL == *mksh* ]] && inpkg+=" mksh"
[[ $BOOTLDR == 'grub' ]] && inpkg+=" grub"
[[ $KERNEL == 'linux-lts' ]] && { inpkg+=" linux-lts"; rmpkg+=" linux"; }
if [[ $KERNEL == 'linux-lts' ]]; then
inpkg+=" linux-lts"; rmpkg+=" linux"
elif [[ $KERNEL == 'linux-zen' ]]; then
inpkg+=" linux-zen"; rmpkg+=" linux"
elif [[ $KERNEL == 'linux-hardened' ]]; then
inpkg+=" linux-hardened"; rmpkg+=" linux"
fi
if [[ $MYSHELL == '/usr/bin/zsh' ]]; then
inpkg+=" zsh-completions zsh-history-substring-search"
fi
[[ $INSTALL_WMS =~ (openbox|bspwm|i3-gaps|dwm) ]] && inpkg+=" $WM_BASE_PKGS"
[[ $INSTALL_WMS =~ ^(plasma|gnome|cinnamon)$ ]] || inpkg+=" archlabs-ksuperkey"
@ -1726,13 +1753,13 @@ setup_grub()
EDIT_FILES[bootloader]="/etc/default/grub"
if [[ $SYS == 'BIOS' ]]; then
[[ $BOOT_DEVICE ]] || { select_device 'boot' || return 1; }
BCMDS[grub]="${BCMDS[grub]} --target=i386-pc $BOOT_DEVICE"
BCMDS[grub]="grub-install --recheck --force --target=i386-pc $BOOT_DEVICE"
else
if [[ $ROOT_PART == */dev/mapper/* && ! $LVM && ! $LUKS_PASS ]]; then
luks_pass "$_LuksOpen" 1 || return 1
fi
BCMDS[grub]="mount -t efivarfs efivarfs $efidir/efivars || true &&
${BCMDS[grub]} --bootloader-id=$DIST"
grub-install --recheck --force --bootloader-id=$DIST"
grep -q $efidir/efivars <<< "$(mount)" || mount -t efivarfs efivarfs $efidir/efivars
fi
@ -1787,7 +1814,7 @@ prerun_grub()
prerun_systemd-boot()
{
# 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"
# create the boot entry configs
mkdir -p ${MNT}${BMNTS[$SYS-systemd-boot]}/loader/entries
@ -1830,8 +1857,7 @@ prerun_syslinux()
{
mkdir -pv $MNT${BMNTS[$SYS-syslinux]}/syslinux
cp -rfv /usr/lib/syslinux/bios/* $MNT${BMNTS[$SYS-syslinux]}/syslinux/
cat > $cfgdir/syslinux.cfg << EOF
cat > $MNT${BMNTS[$SYS-syslinux]}/syslinux/syslinux.cfg << EOF
UI menu.c32
PROMPT 0
@ -1850,16 +1876,27 @@ MENU LABEL $DIST Linux Fallback
LINUX ../vmlinuz-$KERNEL
APPEND root=$ROOT_PART_ID $([[ $LUKS_DEV ]] && printf "%s " "$LUKS_DEV")rw
INITRD ../initramfs-$KERNEL-fallback.img$([[ $UCODE ]] && printf "\nINITRD %s" "../${UCODE}.img")
#LABEL grub2
#MENU LABEL Grub2
#COM32 chain.c32
#APPEND file=../grub/boot.img
#LABEL windows
#MENU LABEL Windows
#COM32 chain.c32
#APPEND hd0 3
EOF
return 0
}
install_bootloader()
{
if ! [[ $ROOT_PART =~ /dev/mapper ]]; then
ROOT_PART_ID="UUID=$(blkid -s PARTUUID -o value $ROOT_PART)"
else
if [[ $ROOT_PART == */dev/mapper* ]]; then
ROOT_PART_ID="$ROOT_PART"
else
ROOT_PART_ID="UUID=$(blkid -s UUID -o value $ROOT_PART)"
fi
if [[ $SYS == 'UEFI' ]]; then
@ -1909,20 +1946,19 @@ lvm_menu()
local choice
choice="$(dialog --cr-wrap --stdout --backtitle "$BT" \
--title " $_PrepLVM " --menu "$_LvmMenu" 0 0 6 \
--title " $_PrepLVM " --menu "$_LvmMenu" 0 0 0 \
"$_LvmCreateVG" "vgcreate -f, lvcreate -L -n" \
"$_LvmDelVG" "vgremove -f" \
"$_LvMDelAll" "lvrmeove, vgremove, pvremove -f" \
"$_Back" "Return to the main menu")"
case $choice in
"$_LvmCreateVG") lvm_create && return 0 ;;
"$_LvmCreateVG") lvm_create || return 1 ;;
"$_LvmDelVG") lvm_del_vg ;;
"$_LvMDelAll") lvm_del_all ;;
*) return 0
esac
lvm_menu
return 0
}
lvm_detect()
@ -2002,7 +2038,7 @@ lvm_volume_name()
tput cnorm
local name
if ! name="$(getinput "$_LvmCreateVG (LV:$VOL_COUNT)" "$msg" "$default" nolimit)"; then
if ! name="$(getinput "$_LvmCreateVG (LV:$VOL_COUNT)" "\n$msg" "$default" nolimit)"; then
return 1
fi
@ -2039,7 +2075,7 @@ lvm_extra_lvs()
get_lv_size || { break; return 1; }
lvcreate -L "$VOLUME_SIZE" "$VOLUME_GROUP" -n "$VOLUME_NAME" >/dev/null 2>$ERR
errshow "lvcreate -L $VOLUME_SIZE $VOLUME_GROUP -n $VOLUME_NAME"
msgbox "$_LvmCreateVG (LV:$VOL_COUNT)" "$_Done LV $VOLUME_NAME ($VOLUME_SIZE) $_LvmPvDoneBody2."
msgbox "$_LvmCreateVG (LV:$VOL_COUNT)" "\n$_Done Logical Volume (LV) $VOLUME_NAME ($VOLUME_SIZE) $_LvmPvDoneBody2.\n"
(( VOL_COUNT-- ))
done
@ -2103,9 +2139,7 @@ lvm_mkgroup()
lvm_create()
{
VOLUME_GROUP=""
LVM_PARTS=()
VGROUP_MB=0
VOLUME_GROUP=""; LVM_PARTS=(); VGROUP_MB=0
umount_dir $MNT
lvm_partitions || return 1
lvm_mkgroup || return 1
@ -2114,10 +2148,8 @@ lvm_create()
lvm_volume_name "$_LvmLvNameBody1 $_LvmLvNameBody2 (${VGROUP_MB}MB)" || return 1
lvcreate -l +100%FREE "$VOLUME_GROUP" -n "$VOLUME_NAME" >/dev/null 2>$ERR
errshow "lvcreate -l +100%FREE $VOLUME_GROUP -n $VOLUME_NAME"
LVM='logical volume'
tput civis
sleep 0.5
local msg="${_Done}$_LvmPvDoneBody1 $VOLUME_GROUP-$VOLUME_NAME (${VOLUME_SIZE:-${VGROUP_MB}MB}) $_LvmPvDoneBody2."
LVM='logical volume'; tput civis; sleep 0.5
local msg="\n$_Done $_LvmPvDoneBody1 $VOLUME_GROUP-$VOLUME_NAME (${VOLUME_SIZE:-${VGROUP_MB}MB}) $_LvmPvDoneBody2.\n"
msgbox "$_LvmCreateVG (LV:$VOL_COUNT)" "$msg\n$(lsblk -o NAME,MODEL,TYPE,FSTYPE,SIZE "${LVM_PARTS[@]}")\n"
}
@ -2165,13 +2197,12 @@ luks_menu()
"$_Back" "Return to the main menu")"
case $choice in
"$_LuksEncrypt") luks_default && return 0 ;;
"$_LuksOpen") luks_open && return 0 ;;
"$_LuksEncryptAdv") luks_keycmd && return 0 ;;
*) return 0
"$_LuksEncrypt") luks_default || return 1 ;;
"$_LuksOpen") luks_open || return 1 ;;
"$_LuksEncryptAdv") luks_keycmd || return 1 ;;
esac
luks_menu
return 0
}
luks_open()