summaryrefslogtreecommitdiffstats
path: root/SeTudiskpart.tpl
diff options
context:
space:
mode:
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
commiteb6350692ddf11d9ababf90d61b8b0e612c724a0 (patch)
treece323070f0a1a82557c4ef41d1e7da3a6bf22ae3 /SeTudiskpart.tpl
parent6dd435b71505b13f2d1d56fabf9d4242b7e059c5 (diff)
downloadliveslak-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.tpl61
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
+