Test: tmpfs for /run and mount efivarfs in chroot for grub

This commit is contained in:
natemaia 2019-01-18 15:40:05 -08:00
parent 94054f9ada
commit 9c9c845271
2 changed files with 23 additions and 33 deletions

View File

@ -134,7 +134,7 @@ _PartBody="\nWhole device auto partitioning is available for beginners.\n\nUEFI
_PartBody1="\nWARNING:\n\nALL data on" _PartBody1="\nWARNING:\n\nALL data on"
_PartBody2="will be destroyed and the following partitions will be created\n\n- A 512M vfat/fat32 boot partition with boot flags enabled.\n- An ext4 partition using all remaining space" _PartBody2="will be destroyed and the following partitions will be created\n\n- A 512M vfat/fat32 boot partition with boot flags enabled.\n- An ext4 partition using all remaining space"
_PartBody3="\n\nDo you want to continue?\n" _PartBody3="\n\nDo you want to continue?\n"
_PartWipeBody2="will be destroyed using 'wipe -Ifre'.\n\nThis process can take a long time depending on the size of the drive.\n\nDo you want to continue?\n" _PartWipeBody="will be destroyed using 'wipe -Ifre'.\n\nThis process can take a long time depending on the size of the drive.\n\nDo you want to continue?\n"
# bootloader # bootloader
_InstSysTitle="Install Syslinux" _InstSysTitle="Install Syslinux"

View File

@ -892,7 +892,7 @@ partition()
msgbox "$_PrepShowDev" "\n$(lsblk -o NAME,MODEL,TYPE,FSTYPE,SIZE,MOUNTPOINT "$device")\n" msgbox "$_PrepShowDev" "\n$(lsblk -o NAME,MODEL,TYPE,FSTYPE,SIZE,MOUNTPOINT "$device")\n"
partition "$device" partition "$device"
elif [[ $choice == "$_PartWipe" ]]; then elif [[ $choice == "$_PartWipe" ]]; then
yesno "$_PartWipe" "$_PartBody1 $device $_PartWipeBody2" && wipe -Ifrev $device yesno "$_PartWipe" "$_PartBody1 $device $_PartWipeBody" && wipe -Ifrev $device
partition "$device" partition "$device"
else else
local root_size msg ret table boot_fs local root_size msg ret table boot_fs
@ -1239,9 +1239,7 @@ select_swap()
select_mountpoint() select_mountpoint()
{ {
tput cnorm tput cnorm
if ! EXTRA_MNT="$(getinput "$_PrepMount $part" "$_ExtPartBody1 /home /var\n" "/" nolimit)"; then EXTRA_MNT="$(getinput "$_PrepMount $part" "$_ExtPartBody1 /home /var\n" "/" nolimit)" || return 1
return 1
fi
# bad mountpoint # bad mountpoint
if [[ ${EXTRA_MNT:0:1} != "/" || ${#EXTRA_MNT} -le 1 || $EXTRA_MNT =~ \ |\' || $EXTRA_MNTS == *"$EXTRA_MNT"* ]]; then if [[ ${EXTRA_MNT:0:1} != "/" || ${#EXTRA_MNT} -le 1 || $EXTRA_MNT =~ \ |\' || $EXTRA_MNTS == *"$EXTRA_MNT"* ]]; then
@ -1258,16 +1256,10 @@ select_mount_opts()
local title="${fs^} Mount Options" local title="${fs^} Mount Options"
local opts="${FS_OPTS[$fs]}" local opts="${FS_OPTS[$fs]}"
# check for ssd
ssd "$part" >/dev/null 2>&1 && opts=$(sed 's/discard - off/discard - on/' <<< "$opts")
tput civis tput civis
if ! MNT_OPTS="$(dialog --cr-wrap --no-cancel --stdout --backtitle "$BT" --title " $title " --checklist "$_MntBody" 0 0 0 $opts)" || [[ $MNT_OPTS == "" ]] is_ssd "$part" >/dev/null 2>&1 && opts=$(sed 's/discard - off/discard - on/' <<< "$opts")
then MNT_OPTS="$(dialog --cr-wrap --stdout --backtitle "$BT" --title " $title " --checklist "$_MntBody" 0 0 0 $opts)"
return 1 [[ $MNT_OPTS ]] && MNT_OPTS="$(sed 's/ /,/g; $s/,$//' <<< "$MNT_OPTS" )" || return 1
fi
MNT_OPTS="$(sed 's/ /,/g; $s/,$//' <<< "$MNT_OPTS" )"
yesno "$title" "$_MntConfBody $MNT_OPTS\n" || { select_mount_opts "$part" "$fs" || return 1; } yesno "$title" "$_MntConfBody $MNT_OPTS\n" || { select_mount_opts "$part" "$fs" || return 1; }
return 0 return 0
@ -1278,12 +1270,11 @@ select_filesystem()
local part="$1" local part="$1"
local fs cur_fs local fs cur_fs
cur_fs="$(lsblk -lno FSTYPE "$part" 2>/dev/null)" cur_fs="$(lsblk -lno FSTYPE "$part" 2>/dev/null)"
local msg="\nSelect which filesystem you want to use for $part\n\nPartition Name: " local msg="\nSelect which filesystem to use for: $part\n\nCurrent: ${cur_fs:-None}\nDefault: ext4"
tput civis tput civis
if [[ $cur_fs && $part != "$ROOT_PART" ]]; then if [[ $cur_fs && $part != "$ROOT_PART" ]]; then
fs="$(menubox "$_FSTitle: $part" \ fs="$(menubox "$_FSTitle: $part" "$msg" \
"${msg}${part}\nExisting Filesystem: ${cur_fs}$_FSBody" \
"$_Skip" "-" \ "$_Skip" "-" \
"ext4" "${FS_CMDS[ext4]}" \ "ext4" "${FS_CMDS[ext4]}" \
"ext3" "${FS_CMDS[ext3]}" \ "ext3" "${FS_CMDS[ext3]}" \
@ -1292,27 +1283,26 @@ select_filesystem()
"ntfs" "${FS_CMDS[ntfs]}" \ "ntfs" "${FS_CMDS[ntfs]}" \
"f2fs" "${FS_CMDS[f2fs]}" \ "f2fs" "${FS_CMDS[f2fs]}" \
"jfs" "${FS_CMDS[jfs]}" \ "jfs" "${FS_CMDS[jfs]}" \
"xfs" "${FS_CMDS[xfs]}"\
"nilfs2" "${FS_CMDS[nilfs2]}" \ "nilfs2" "${FS_CMDS[nilfs2]}" \
"reiserfs" "${FS_CMDS[reiserfs]}" \ "reiserfs" "${FS_CMDS[reiserfs]}")"
"xfs" "${FS_CMDS[xfs]}")"
[[ $fs == "$_Skip" ]] && return 0 [[ $fs == "$_Skip" ]] && return 0
else else
fs="$(menubox "$_FSTitle: $part" "${msg}${part}$_FSBody" \ fs="$(menubox "$_FSTitle: $part" "$msg" \
"ext4" "${FS_CMDS[ext4]}" \ "ext4" "${FS_CMDS[ext4]}" \
"ext3" "${FS_CMDS[ext3]}" \ "ext3" "${FS_CMDS[ext3]}" \
"ext2" "${FS_CMDS[ext2]}" \ "ext2" "${FS_CMDS[ext2]}" \
"vfat" "${FS_CMDS[vfat]}" \
"ntfs" "${FS_CMDS[ntfs]}" \ "ntfs" "${FS_CMDS[ntfs]}" \
"f2fs" "${FS_CMDS[f2fs]}" \ "f2fs" "${FS_CMDS[f2fs]}" \
"jfs" "${FS_CMDS[jfs]}" \ "jfs" "${FS_CMDS[jfs]}" \
"xfs" "${FS_CMDS[xfs]}" \
"nilfs2" "${FS_CMDS[nilfs2]}" \ "nilfs2" "${FS_CMDS[nilfs2]}" \
"reiserfs" "${FS_CMDS[reiserfs]}" \ "reiserfs" "${FS_CMDS[reiserfs]}")"
"xfs" "${FS_CMDS[xfs]}")"
fi fi
[[ $fs ]] || return 1 [[ $fs ]] || return 1
if yesno "$_FSTitle" "\nFormat $part as $fs?\n" "Format" "Go Back"; then if yesno "$_FSTitle" "\nFormat $part as $fs?\n" "Format" "Go Back"; then
format "$part" "$fs" format "$part" "$fs" || return 1
else else
select_filesystem "$part" || return 1 select_filesystem "$part" || return 1
fi fi
@ -1401,7 +1391,7 @@ select_extra_partitions()
return 1 return 1
fi fi
EXTRA_MNTS="$EXTRA_MNTS $part: $EXTRA_MNT" EXTRA_MNTS="$EXTRA_MNTS $part: $EXTRA_MNT"
[[ $EXTRA_MNT == "/usr" && $HOOKS != *usr* ]] && HOOKS="usr $HOOKS" [[ $EXTRA_MNT == '/usr' && $HOOKS != *usr* ]] && HOOKS="usr $HOOKS"
done done
return 0 return 0
@ -1777,19 +1767,19 @@ setup_grub()
if [[ $ROOT_PART == */dev/mapper/* && ! $LVM && ! $LUKS_PASS ]]; then if [[ $ROOT_PART == */dev/mapper/* && ! $LVM && ! $LUKS_PASS ]]; then
luks_pass "$_LuksOpen" "" || return 1 luks_pass "$_LuksOpen" "" || return 1
fi fi
BCMDS[grub]="mount -t efivarfs efivarfs $efidir/efivars; \ BCMDS[grub]="mount -t efivarfs efivarfs $efidir/efivars || true &&
${BCMDS[grub]} --bootloader-id=$DIST" ${BCMDS[grub]} --bootloader-id=$DIST"
grep -q $efidir/efivars <<< "$(mount)" || mount -t efivarfs efivarfs $efidir/efivars
fi fi
grep -q $efidir/efivars <<< "$(mount)" || BCMDS[grub]="mkdir -p /run/udev /run/lvm &&
mount -t efivarfs efivarfs $efidir/efivars mount -t tmpfs tmpfs /run &&
BCMDS[grub]="mkdir -p /run/udev && mkdir -p /run/lvm &&
mount --bind /hostrun/udev /run/udev && mount --bind /hostrun/udev /run/udev &&
mount --bind /hostrun/lvm /run/lvm && mount --bind /hostrun/lvm /run/lvm &&
${BCMDS[grub]} && ${BCMDS[grub]} &&
grub-mkconfig -o /boot/grub/grub.cfg && grub-mkconfig -o /boot/grub/grub.cfg &&
sleep 1 && umount /run/udev && umount /run/lvm" sleep 1 && umount -R /run"
return 0 return 0
} }
@ -2414,7 +2404,7 @@ src()
return 0 return 0
} }
ssd() is_ssd()
{ # returns 0 (true) when the device passed ($1) is NOT a rotational device { # returns 0 (true) when the device passed ($1) is NOT a rotational device
local i dev=$1 local i dev=$1