diff options
author | Eric Hameleers <alien@slackware.com> | 2020-02-20 00:27:31 +0100 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2020-02-20 00:27:31 +0100 |
commit | eb6350692ddf11d9ababf90d61b8b0e612c724a0 (patch) | |
tree | ce323070f0a1a82557c4ef41d1e7da3a6bf22ae3 /SeTudiskpart.tpl | |
parent | 6dd435b71505b13f2d1d56fabf9d4242b7e059c5 (diff) | |
download | liveslak-eb6350692ddf11d9ababf90d61b8b0e612c724a0.tar.gz liveslak-eb6350692ddf11d9ababf90d61b8b0e612c724a0.tar.xz |
setup2hd: several usability improvements
- Include disk partitioning (cgdisk and/or cfdisk) in the setup2hd (calling
new script 'Setudiskpart').
- Create a non-root user and set the root password through dialogs (calling
new scripts 'SeTuacct' and 'SeTupass').
- Attempt to speed up the rsync from the squashfs files to the hard drive.
Diffstat (limited to 'SeTudiskpart.tpl')
-rw-r--r-- | SeTudiskpart.tpl | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/SeTudiskpart.tpl b/SeTudiskpart.tpl new file mode 100644 index 0000000..5a244a8 --- /dev/null +++ b/SeTudiskpart.tpl @@ -0,0 +1,61 @@ +#!/bin/sh +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi + + # If we do not find any useful disks at all, we must bail: + if [ -z "$(lsblk -a -o NAME,SIZE,RM,RO,TYPE,MODEL |tr -s '[:blank:]' ' ' |grep '0 *0 *disk' | grep -v '^ram')" ]; then + dialog --backtitle "@CDISTRO@ Linux Setup (Live Edition)" \ + --title "NO HARD DRIVE DETECTED" \ + --msgbox "This machine appears not to have any hard drives installed.\ +This setup will not work. Please add a hard drive to the computer first." 10 64 + exit + fi + + # Generate a list of local hard drives we can write to: + rm -f $TMP/tempscript + cat <<EOT > $TMP/tempscript +dialog --stdout \\ + --title "SELECT DISK DRIVES" \\ + --backtitle "Creating Linux, swap and EFI partitions" \\ + --checklist "Select from available drives.\nA disk partitioning utility \\ +will be presented for any drive you select here:" \\ + 19 0 9 \\ +EOT + lsblk -a -o NAME,SIZE,RM,RO,TYPE,MODEL | \ + tr -s '[:blank:]' ' ' | grep '0 *0 *disk' | grep -v '^ram' | \ + while read LINE ; do + DISKATTR=($LINE) + DISKVENDOR="${DISKATTR[@]:5}" + if [ -z "${DISKVENDOR}" ]; then + DISKVENDOR="UnknownVendor" + fi + echo "\"/dev/${DISKATTR[0]}\" \"${DISKATTR[1]}: ${DISKVENDOR}\" off \\" >> $TMP/tempscript + done + echo '2>&1 1>$TMP/availdisks' >> $TMP/tempscript + + # Loop until the user makes a choice: + while [ 0 ]; do + source $TMP/tempscript + if [ ! $? = 0 ] || [ ! -s $TMP/availdisks ]; then + # Canceled the dialog, or did not select anything: + rm -f $TMP/availdisks + else + # We got an answer: + for DISKDRIVE in $(cat $TMP/availdisks) ; do + # Determine which disk partitioning tool to use: + if gdisk -l $DISKDRIVE |tr -s '[:blank:]' ' ' |grep -q "MBR: MBR only" ; then + PARTTOOL=cfdisk + else + PARTTOOL=cgdisk + fi + # Now let the user create her partitions: + $PARTTOOL $DISKDRIVE + done + break + fi + done + # We should have partitions now, so re-run probe and collect that list: + probe -l 2> /dev/null | grep -E 'Linux$' | sort 1> $TMP/SeTplist 2> /dev/null + |