summaryrefslogtreecommitdiffstats
path: root/setup2hd
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2017-01-23 14:33:46 +0100
committer Eric Hameleers <alien@slackware.com>2017-01-23 14:33:46 +0100
commitdce5d0d1da24641670b607933804b524e2347980 (patch)
tree2d69e96114c382892ef0b9699fc7b813cf12267c /setup2hd
parent02530a4248ef80cf09681159e5c00daa4d49ed05 (diff)
downloadliveslak-dce5d0d1da24641670b607933804b524e2347980.tar.gz
liveslak-dce5d0d1da24641670b607933804b524e2347980.tar.xz
Make it obvious that some scripts are templates and cannot be used as-is.
This affects: - pxeserver - setup2hd Both have been renamed with extension '.tpl' as indication that they are templates. The 'make_slackware_live.sh' script performs a series of substitutions on them to produce the actual scripts inside the ISO.
Diffstat (limited to 'setup2hd')
-rwxr-xr-xsetup2hd415
1 files changed, 0 insertions, 415 deletions
diff --git a/setup2hd b/setup2hd
deleted file mode 100755
index 8bd7eed..0000000
--- a/setup2hd
+++ /dev/null
@@ -1,415 +0,0 @@
-#!/bin/sh
-#
-# Copyright 1993,1994,1999 Patrick Volkerding, Moorhead, Minnesota USA
-# Copyright 2001, 2003, 2004 Slackware Linux, Inc., Concord, CA
-# Copyright 2006, 2007 Patrick Volkerding, Sebeka, Minnesota USA
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# As always, bug reports, suggestions, etc: volkerdi@slackware.com
-#
-# Modifications 2016, 2017 by Eric Hameleers <alien@slackware.com>
-#
-
-# The Slackware setup depends on english language settings because it
-# parses program output like that of "fdisk -l". So, we need to override
-# the Live user's local language settings here:
-export LANG=C
-export LC_ALL=C
-
-if [ ! -d /mnt/livemedia/@LIVEMAIN@/system ]; then
- dialog --title "LIVE MEDIA NOT ACCESSIBLE" --msgbox "\
-\n\
-Before you can install software, complete the following tasks:\n\
-\n\
-1. Mount your Live media partition on /mnt/livemedia." 16 68
- exit 1
-fi
-TMP=/var/log/setup/tmp
-if [ ! -d $TMP ]; then
- mkdir -p $TMP
-fi
-rm -f $TMP/SeT*
-# If a keymap was set up, restore that data:
-if [ -r $TMP/Pkeymap ]; then
- cp $TMP/Pkeymap $TMP/SeTkeymap
-fi
-echo "on" > $TMP/SeTcolor # turn on color menus
-PATH="$PATH:/usr/share/@LIVEMAIN@"
-export PATH;
-export COLOR=on
-#echo
-#echo
-#echo "Probing disk partitions. (Hint: if your ATAPI CD-ROM causes timeouts"
-#echo "during the probe process, try hitting the eject button)"
-#echo
-#sleep 5
-#
-# Before probing, activate any LVM partitions
-# that may exist from before the boot:
-vgchange -ay 1> /dev/null 2> /dev/null
-if probe -l 2> /dev/null | grep -E 'Linux$' 1> /dev/null 2> /dev/null ; then
- probe -l 2> /dev/null | grep -E 'Linux$' | sort 1> $TMP/SeTplist 2> /dev/null
-else
- dialog --title "NO LINUX PARTITIONS DETECTED" \
- --msgbox "There don't seem to be any partitions on this machine of type \
-Linux. You'll need to make at least one of these to install Linux. \
-To do this, you'll need to leave 'setup', and make the partitions using \
-'cfdisk' (MBR partitions) or 'cgdisk' (GPT partitions). For more \
-information, read the 'setup' help file from the next menu." 10 64
-fi
-if [ -d /sys/firmware/efi ]; then
- if ! probe -l 2> /dev/null | grep "EFI System Partition" 1> /dev/null 2> /dev/null ; then
- dialog --title "NO EFI SYSTEM PARTITION DETECTED" \
- --msgbox "This machine appears to be using EFI/UEFI, but no EFI System \
-Partition was found. You'll need to make an EFI System Partition in order \
-to boot from the hard drive. To do this, leave 'setup', and \
-use 'cgdisk' to make a 100MB partition of type EF00. For more information, \
-read the 'setup' help file from the next menu." 10 64
- fi
-fi
-T_PX="/setup2hd"
-mkdir -p ${T_PX}
-echo "$T_PX" > $TMP/SeTT_PX
-ROOT_DEVICE="`mount | grep "on / " | cut -f 1 -d ' '`"
-echo "$ROOT_DEVICE" > $TMP/SeTrootdev
-if mount | grep /var/log/mount 1> /dev/null 2> /dev/null ; then # clear source
- umount /var/log/mount # location
-fi
-# Anything mounted on /var/log/mount now is a fatal error:
-if mount | grep /var/log/mount 1> /dev/null 2> /dev/null ; then
- echo "Can't umount /var/log/mount. Reboot machine and run setup again."
- exit
-fi
-# If the mount table is corrupt, the above might not do it, so we will
-# try to detect Linux and FAT32 partitions that have slipped by:
-if [ -d /var/log/mount/lost+found -o -d /var/log/mount/recycled \
- -o -r /var/log/mount/io.sys ]; then
- echo "Mount table corrupt. Reboot machine and run setup again."
- exit
-fi
-rm -f /var/log/mount 2> /dev/null
-rmdir /var/log/mount 2> /dev/null
-mkdir /var/log/mount 2> /dev/null
-
-while [ 0 ]; do
-
- dialog --title "@CDISTRO@ Linux Setup (version @SL_VERSION@)" \
---menu \
-"Welcome to @CDISTRO@ Linux Setup (Live Edition).\n\
-Select an option below using the UP/DOWN keys and SPACE or ENTER.\n\
-Alternate keys may also be used: '+', '-', and TAB." 18 72 9 \
-"HELP" "Read the @CDISTRO@ Setup HELP file" \
-"KEYMAP" "Remap your keyboard if you're not using a US one" \
-"ADDSWAP" "Set up your swap partition(s)" \
-"TARGET" "Set up your target partitions" \
-"INSTALL" "Install @CDISTRO@ Live to disk" \
-"CONFIGURE" "Reconfigure your Linux system" \
-"EXIT" "Exit @CDISTRO@ Linux Setup" 2> $TMP/hdset
- if [ ! $? = 0 ]; then
- rm -f $TMP/hdset $TMP/SeT*
- exit
- fi
- MAINSELECT="`cat $TMP/hdset`"
- rm $TMP/hdset
-
- # Start checking what to do. Some modules may reset MAINSELECT to run the
- # next item in line.
-
- if [ "$MAINSELECT" = "HELP" ]; then
- SeTfdHELP
- fi
-
- if [ "$MAINSELECT" = "KEYMAP" ]; then
- SeTkeymap
- if [ -r $TMP/SeTkeymap ]; then
- MAINSELECT="ADDSWAP"
- fi
- fi
-
- if [ "$MAINSELECT" = "MAKE TAGS" ]; then
- SeTmaketag
- fi
-
- if [ "$MAINSELECT" = "ADDSWAP" ]; then
- SeTswap
- if [ -r $TMP/SeTswap ]; then
- MAINSELECT="TARGET"
- elif [ -r $TMP/SeTswapskip ]; then
- # Go ahead to TARGET without swap space:
- MAINSELECT="TARGET"
- fi
- fi
-
- if [ "$MAINSELECT" = "TARGET" ]; then
- SeTpartitions
- SeTEFI
- SeTDOS
- if [ -r $TMP/SeTnative ]; then
- MAINSELECT="INSTALL"
- fi
- fi
-
- if [ "$MAINSELECT" = "INSTALL" ]; then
- if [ ! -r $TMP/SeTnative ]; then
- dialog --title "CANNOT INSTALL SOFTWARE YET" --msgbox "\
-\n\
-Before you can install software, complete the following tasks:\n\
-\n\
-1. Set up your target Linux partition(s).\n\
-\n\
-You may also optionally remap your keyboard and set up your\n\
-swap partition(s). \n\
-\n\
-Press ENTER to return to the main menu." 16 68
- continue
- fi
-
- # --------------------------------------------- #
- # Slackware Live Edition - install to disk: #
- # --------------------------------------------- #
-
- # Buy us some time while we are calculating disk usage:
- dialog --title "WELCOME TO @UDISTRO@ LIVE (@LIVEDE@)" --infobox \
- "\nCalculating disk usage, please be patient ..." 5 65
-
- ACT_MODS=$(ls -rt --indicator-style=none /mnt/live/modules/ |wc -l)
- TOT_MODS=$(find /mnt/livemedia/@LIVEMAIN@/ -type f -name "*.sxz" |wc -l)
- DU_LIVE=$(du -s /mnt/@LIVEMAIN@fs/ |tr -s '\t' ' ' |cut -f1 -d' ')
- PARTFREE=$(df -P -BM $T_PX |tail -1 |tr -s '\t' ' ' |cut -d' ' -f4)
- PARTFREE=${PARTFREE%M}
-
- # Warn when it looks we have insufficient room:
- if [ $PARTFREE -lt $(($DU_LIVE/1024)) ]; then
-+ dialog --title "WELCOME TO @UDISTRO@ LIVE (@LIVEDE@)" --yesno \
- "\nAvailable space: $PARTFREE MB\nRequired space: $(($DU_LIVE/1024))\nIt looks like your hard drive partition is too small.\nDo you want to continue?" 10 65
- retval=$?
- if [ $retval = 1 ]; then
- umount $T_PX
- exit 1
- fi
- else
- dialog --title "WELCOME TO @UDISTRO@ LIVE (@LIVEDE@)" --msgbox \
- "\nAvailable space: $PARTFREE MB\nRequired space: $(($DU_LIVE/1024)) MB\nIt looks like you're good to go!" 10 65
- fi
-
- (
- # Install the Live OS by rsyncing the readonly overlay to the harddisk:
- rsync -Hav --progress --no-inc-recursive /mnt/@LIVEMAIN@fs/ $T_PX/ \
- | awk '{ if (index($0, "to-chk=") > 0) { split($0, pieces, "to-chk="); split(pieces[2], term, ")"); split(term[1], division, "/"); print (1-(division[1]/division[2]))*100 }; fflush(); }' \
- | sed --unbuffered 's/^\([0-9]*\).*/\1/'
- ) | dialog --title "INSTALLING @UDISTRO@ LIVE (@LIVEDE@) TO DISK" --gauge \
- "\nProcessing ${TOT_MODS} @CDISTRO@ Live modules ($(( $DU_LIVE/1024 )) MB)" 8 65
-
- #
- # Live OS Post Install routine. If you want, you can override this routine
- # by (re-)defining this function "live_post_install()" in a file called
- # "/usr/share/@LIVEMAIN@/setup2hd.@DISTRO@".
- #
-
- live_post_install () {
- # Re-use some of the custom configuration from 0099-@DISTRO@_zzzconf-*.sxz
- # (some of these may not be present but the command will not fail):
- dialog --title "POST-INSTALL @UDISTRO@ LIVE (@LIVEDE@) DATA" --infobox \
- "\nCopying Live modifications to hard disk ..." 5 65
- # Do not overwrite a custom keymap:
- if [ ! -f $T_PX/etc/rc.d/rc.keymap ]; then
- unsquashfs -f -dest $T_PX \
- /mnt/livemedia/@LIVEMAIN@/system/0099*zzzconf*.sxz \
- /etc/rc.d/rc.keymap
- fi
- unsquashfs -f -dest $T_PX \
- /mnt/livemedia/@LIVEMAIN@/system/0099*zzzconf*.sxz \
- /etc/X11/xdm/liveslak-xdm \
- /etc/X11/xorg.conf.d/30-keyboard.conf \
- /etc/inittab \
- /etc/profile.d/lang.sh \
- /etc/rc.d/rc.font \
- /etc/rc.d/rc.gpm \
- /etc/slackpkg
- # Point xdm to the custom /etc/X11/xdm/liveslak-xdm/xdm-config:
- sed -i ${T_PX}/etc/rc.d/rc.4 -e 's,bin/xdm -nodaemon,& -config /etc/X11/xdm/liveslak-xdm/xdm-config,'
- # Remove the marker file from the filesystem root:
- rm -f ${T_PX}/@MARKER@
-
- cat << EOF > $TMP/tempmsg
-
- @CDISTRO@ Live Edition (@LIVEDE@) has been installed to your hard drive!
- We installed the ${ACT_MODS} active modules (out of ${TOT_MODS} available).
- The following configuration was copied from the Live OS to your harddisk:
- - console font
- - default runlevel
- - keyboard layout
- - language setting
- After finishing system configuration and before rebooting, you can add any further Live modules from /@LIVEMAIN@/addons/ and /@LIVEMAIN@/optional/ to your hard drive, using a command similar to this:
- # unsquashfs -f -dest $T_PX /mnt/livemedia/@LIVEMAIN@/addons/mymodule.sxz
-
-EOF
- dialog --title "POST INSTALL HINTS AND TIPS" --msgbox "`cat $TMP/tempmsg`" \
- 20 65
- rm $TMP/tempmsg
-
- MAINSELECT="CONFIGURE"
- }
-
- if [ -f /usr/share/@LIVEMAIN@/setup2hd.@DISTRO@ ]; then
- # If the setup2hd post-configuration file exists, source it.
- # The file should re-define the live_post_install() function.
- . /usr/share/@LIVEMAIN@/setup2hd.@DISTRO@
- fi
-
- # Now, execute the function - either our own built-in version
- # or the re-defined function from the custom setup2hd.@DISTRO@ file.
- live_post_install
-
- # --------------------------------------------- #
- # Slackware Live Edition - end install to disk: #
- # --------------------------------------------- #
-
- fi
-
- if [ "$MAINSELECT" = "CONFIGURE" ]; then
- # Patch (e)liloconfig on the target systems to remove hardcoded /mnt:
- if [ -f /sbin/liloconfig -a -f $T_PX/sbin/liloconfig ]; then
- cat /sbin/liloconfig > $T_PX/sbin/liloconfig
- fi
- if [ -f /usr/sbin/eliloconfig -a -f $T_PX/usr/sbin/eliloconfig ]; then
- cat /usr/sbin/eliloconfig > $T_PX/usr/sbin/eliloconfig
- fi
- SeTconfig
- REPLACE_FSTAB=Y
- if [ -r $TMP/SeTnative ]; then
- if [ -r $T_PX/etc/fstab ]; then
- dialog --title "REPLACE /etc/fstab?" --yesno "You already have an \
-/etc/fstab on your install partition. If you were just adding software, \
-you should probably keep your old /etc/fstab. If you've changed your \
-partitioning scheme, you should use the new /etc/fstab. Do you want \
-to replace your old /etc/fstab with the new one?" 10 58
- if [ ! $? = 0 ]; then
- REPLACE_FSTAB=N
- fi
- fi
- if [ "$REPLACE_FSTAB" = "Y" ]; then
- cat /dev/null > $T_PX/etc/fstab
- if [ -r $TMP/SeTswap ]; then
- cat $TMP/SeTswap > $T_PX/etc/fstab
- fi
- cat $TMP/SeTnative >> $T_PX/etc/fstab
- if [ -r $TMP/SeTDOS ]; then
- cat $TMP/SeTDOS >> $T_PX/etc/fstab
- fi
- printf "%-16s %-16s %-11s %-16s %-3s %s\n" "#/dev/cdrom" "/mnt/cdrom" "auto" "noauto,owner,ro,comment=x-gvfs-show" "0" "0" >> $T_PX/etc/fstab
- printf "%-16s %-16s %-11s %-16s %-3s %s\n" "/dev/fd0" "/mnt/floppy" "auto" "noauto,owner" "0" "0" >> $T_PX/etc/fstab
- printf "%-16s %-16s %-11s %-16s %-3s %s\n" "devpts" "/dev/pts" "devpts" "gid=5,mode=620" "0" "0" >> $T_PX/etc/fstab
- printf "%-16s %-16s %-11s %-16s %-3s %s\n" "proc" "/proc" "proc" "defaults" "0" "0" >> $T_PX/etc/fstab
- printf "%-16s %-16s %-11s %-16s %-3s %s\n" "tmpfs" "/dev/shm" "tmpfs" "defaults" "0" "0" >> $T_PX/etc/fstab
- fi
- dialog --title "SETUP COMPLETE" --msgbox "System configuration \
-and installation is complete. \
-\n\nYou may now reboot your system." 7 55
- fi
- fi
-
- if [ "$MAINSELECT" = "EXIT" ]; then
- break
- fi
-
-done # end of main loop
-sync
-
-chmod 755 $T_PX
-if [ -d $T_PX/tmp ]; then
- chmod 1777 $T_PX/tmp
-fi
-if mount | grep /var/log/mntiso 1> /dev/null 2> /dev/null ; then
- umount -f /var/log/mntiso
-fi
-if mount | grep /var/log/mount 1> /dev/null 2> /dev/null ; then
- umount /var/log/mount
-fi
-# Anything mounted on /var/log/mount now is a fatal error:
-if mount | grep /var/log/mount 1> /dev/null 2> /dev/null ; then
- exit
-fi
-# If the mount table is corrupt, the above might not do it, so we will
-# try to detect Linux and FAT32 partitions that have slipped by:
-if [ -d /var/log/mount/lost+found -o -d /var/log/mount/recycled \
- -o -r /var/log/mount/io.sys ]; then
- exit
-fi
-rm -f /var/log/mount 2> /dev/null
-rmdir /var/log/mount 2> /dev/null
-mkdir /var/log/mount 2> /dev/null
-chmod 755 /var/log/mount
-
-# An fstab file is indicative of an OS installation, rather than
-# just loading the "setup" script and selecting "EXIT"
-if [ -f ${T_PX}/etc/fstab ]; then
- # umount CD:
- if [ -r $TMP/SeTCDdev ]; then
- if mount | grep iso9660 > /dev/null 2> /dev/null ; then
- umount `mount | grep iso9660 | cut -f 1 -d ' '`
- fi
- eject -s `cat $TMP/SeTCDdev`
- # Tell the user to remove the disc, if one had previously been mounted
- # (it should now be ejected):
- dialog \
- --clear \
- --title "@CDISTRO@ Linux Setup is complete" "$@" \
- --msgbox "\nPlease remove the installation disc.\n" 7 40
- fi
- # Offer to reboot or drop to shell:
- dialog \
- --title "@CDISTRO@ Linux Setup is complete" "$@" \
- --yesno \
- "\nWould you like to reboot your system?\n\n\n\
-If you choose \"No\", you will be dropped to a shell.\n" 11 50
- retval=$?
- if [ $retval = 1 ]; then
- clear
- echo
- echo "You may now reboot your system once you are ready."
- echo "You can issue the 'reboot' command; or if your system has"
- echo "a keyboard attached, you can use the key combination: control+alt+delete"
- echo
- else
- touch /reboot
- fi
-fi
-
-# Fix the date:
-fixdate
-
-# final cleanup
-rm -f $TMP/tagfile $TMP/SeT* $TMP/tar-error $TMP/unsquash_output $TMP/unsquash_error $TMP/PKGTOOL_REMOVED
-rm -f /var/log/mount/treecache
-rmdir /var/log/mntiso 2>/dev/null
-rm -rf $TMP/treecache
-rm -rf $TMP/pkgcache
-rmdir ${T_PX}/tmp/orbit-root 2> /dev/null
-
-# If the OS had been installed and the user elected to reboot:
-if [ -f /reboot ]; then
- clear
- echo "** Starting reboot **"
- sleep 1
- reboot
-fi
-
-# end slackware setup script