summaryrefslogtreecommitdiff
path: root/testing/source/pkgtools/scripts/setup.80.make-bootdisk
diff options
context:
space:
mode:
Diffstat (limited to 'testing/source/pkgtools/scripts/setup.80.make-bootdisk')
-rw-r--r--testing/source/pkgtools/scripts/setup.80.make-bootdisk267
1 files changed, 0 insertions, 267 deletions
diff --git a/testing/source/pkgtools/scripts/setup.80.make-bootdisk b/testing/source/pkgtools/scripts/setup.80.make-bootdisk
deleted file mode 100644
index 0ed8b9a1..00000000
--- a/testing/source/pkgtools/scripts/setup.80.make-bootdisk
+++ /dev/null
@@ -1,267 +0,0 @@
-#!/bin/sh
-#BLURB="Create a USB Linux boot stick"
-if [ -r /usr/lib/setup/setup ]; then
- RDIR=/dev/tty4
-else
- RDIR=/dev/null
-fi
-TMP=/var/lib/pkgtools/setup/tmp
-
-if [ ! -d $TMP ]; then
- mkdir -p $TMP
-fi
-if [ -z "$1" ]; then
- T_PX=/
-else
- T_PX="$1"
-fi
-if [ -z "$2" ]; then
- ROOT_DEVICE=$(mount | head -n 1 | cut -f 1 -d ' ')
-else
- ROOT_DEVICE="$2"
-fi
-
-if [ -r $T_PX/usr/share/syslinux/mbr.bin ]; then
- MBR_BIN=$T_PX/usr/share/syslinux/mbr.bin
-elif [ -r /usr/share/syslinux/mbr.bin ]; then
- MBR_BIN=/usr/share/syslinux/mbr.bin
-else
- dialog --title "ERROR: USB BOOT STICK NOT CREATED" --msgbox \
- "Master Boot Record file mbr.bin not found. This script requires that the syslinux package is installed." 6 60
- exit
-fi
-
-while [ 0 ]; do # the bootdisk menu loop
- # Run "rescan-scsi-bus -l" to get an up to date overview of devices:
- /sbin/rescan-scsi-bus -l 1>$RDIR 2>$RDIR
- # Get a list of removable block devices before the USB stick is inserted:
- echo "" > $TMP/remov_prior
- for BDEV in $(ls --indicator-style none /sys/block | egrep -v "loop|ram"); do
- [ -r /sys/block/$BDEV/removable -a "$(cat /sys/block/$BDEV/removable)" == "1" ] \
- && echo $BDEV >> $TMP/remov_prior
- done
- if [ "$T_PX" = "/" ]; then
- DEFAULTITEM="Create"
- else
- DEFAULTITEM="Skip"
- fi
- dialog --title "MAKE USB FLASH BOOT" --default-item "$DEFAULTITEM" --menu \
-"If your computer supports booting from a USB device, it is recommended that you make \
-a USB boot stick for your system at this time. It will boot your computer straight \
-into the root filesystem on $ROOT_DEVICE. \n\
-\n\
-Please insert a USB flash memory stick and then press ENTER to create a boot stick. \n\
-\n\
-WARNING! The existing contents of the USB stick will be erased. \n\
- " 18 70 2 \
- "Create" "Make a USB Linux boot stick" \
- "Skip" "Skip making a USB boot stick" \
- 2> $TMP/return
- REPLY=`cat $TMP/return`
- rm -f $TMP/return
- if [ "$REPLY" = "Create" ]; then
- # Run "rescan-scsi-bus -l" to discover our USB stick if needed:
- /sbin/rescan-scsi-bus -l 1>$RDIR 2>$RDIR
- # Get a list of removable block devices after the USB stick is inserted:
- echo "" > $TMP/remov_after
- for BDEV in $(ls --indicator-style none /sys/block | egrep -v "loop|ram"); do
- [ -r /sys/block/$BDEV/removable -a "$(cat /sys/block/$BDEV/removable)" == "1" ] \
- && echo $BDEV >> $TMP/remov_after
- done
- ADDED=$(diff -u $TMP/remov_prior $TMP/remov_after | sed -n 's/^\+//p' | grep -v '^+')
- REMVD=$(diff -u $TMP/remov_prior $TMP/remov_after | sed -n 's/^\+//p' | grep -v '^+')
- if [ -n "$ADDED" ] ; then STICK=$ADDED ; else STICK="" ; fi
- rm $TMP/remov_prior $TMP/remov_after
- if [ ! -n "$STICK" ]; then
- dialog --title "NO NEW DEVICE DETECTED" --ok-label Restart --msgbox \
-"No new USB device was detected.
-If you had already inserted your USB stick, please remove it now. \
-Then select 'Restart'." 7 70
- continue
- else
- VENDOR="Vendor : $(cat /sys/block/$STICK/device/vendor)"
- MODEL="Model : $(cat /sys/block/$STICK/device/model)"
- SIZE="Size : $(( $(cat /sys/block/$STICK/size) / 2048)) MB"
- dialog --title "NEW DEVICE DETECTED" --yesno \
-"A new USB device '/dev/$STICK' was detected with specifications:
-
--- $VENDOR
--- $MODEL
--- $SIZE
-
-If this is the USB stick to use, select 'Yes',
-otherwise select 'No'." 12 70
- if [ $? -eq 1 ]; then
- continue
- fi
- fi
-
- dialog --title "CREATING USB BOOT STICK" --infobox "Creating SYSLINUX bootdisk for \
-$ROOT_DEVICE on /dev/$STICK." 3 64
- # Create a 16M partition with FAT16. This should be large enough for any kernel (for now).
- PARTSIZE="+16384K"
- # Zero out master boot record and then initialize it with one bootable dos partition
- dd if=/dev/zero of=/dev/$STICK bs=512 count=1 1> $RDIR 2> $RDIR
- echo "PARTSIZE=$PARTSIZE" 1> $RDIR
- fdisk /dev/$STICK << EOF 1> $RDIR 2> $RDIR
-n
-p
-1
-2048
-$PARTSIZE
-t 1
-6
-a
-w
-EOF
- if [ -x /sbin/mkdosfs ]; then
- /sbin/mkdosfs -I -n USBSLACK -F 16 /dev/${STICK}1 1> $RDIR 2> $RDIR
- else
- chroot $T_PX /sbin/mkdosfs -I -n USBSLACK -F 16 /dev/${STICK}1 1> $RDIR 2> $RDIR
- fi
- sync
- # install syslinux
- if which syslinux-nomtools 1> $RDIR 2> $RDIR ; then
- syslinux-nomtools -i -s /dev/${STICK}1 1> $RDIR 2> $RDIR
- elif which strace 1> $RDIR 2> $RDIR ; then
- # There is a race condition between udev >= 214 and mtools which causes
- # the regular version of syslinux to fail when installing to USB, but
- # strace changes the timing just enough that it usually works:
- strace syslinux -i -s /dev/${STICK}1 1> $RDIR 2> $RDIR
- else
- # This might work when the issues with mtools and udev are addressed,
- # or if syslinux is eventually able to work around them.
- syslinux -i -s /dev/${STICK}1 1> $RDIR 2> $RDIR
- fi
- # make the device bootable:
- echo "dd if=$MBR_BIN of=/dev/$STICK" 1> $RDIR 2> $RDIR
- dd if=$MBR_BIN of=/dev/$STICK 1> $RDIR 2> $RDIR
- sync
- # mount the device and write some configuration files
- if [ ! -d $TMP/bootdisk ]; then
- mkdir $TMP/bootdisk 2> $RDIR
- fi
- mount -t vfat /dev/${STICK}1 $TMP/bootdisk 1> $RDIR 2> $RDIR
- if [ -r $T_PX/boot/vmlinuz ]; then
- cp $T_PX/boot/vmlinuz $TMP/bootdisk/vmlinuz 1> $RDIR 2> $RDIR
- elif [ -r $T_PX/vmlinuz ]; then
- cp $T_PX/vmlinuz $TMP/bootdisk/vmlinuz 1> $RDIR 2> $RDIR
- fi
- cat << EOF > $TMP/bootdisk/message.txt 2> $RDIR
-
-Welcome to the 09Slackware07 Linux custom USB boot stick!
-
-By default, this stick boots a root Linux partition on $ROOT_DEVICE when you
-hit ENTER. If you'd like to boot some other partition, use a command like
-this on the prompt below:
-
- mount root=/dev/sda1 ro
-
-Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that
-the partition should be initially mounted as read-only. If you wish to mount
-the partition read-write, use "rw" instead. To set the video console mode,
-use the vga= parameter (press F1 to see a table). You may also add any other
-kernel parameters you might need depending on your hardware, and which
-drivers are included in your kernel.
-
-EOF
- cat << EOF > $TMP/bootdisk/syslinux.cfg 2> $RDIR
-default vmlinuz root=$ROOT_DEVICE vga=normal ro
-prompt 1
-timeout 6000
-display message.txt
-F1 f1.txt
-F2 message.txt
-#F3 f3.txt
-#F4 f4.txt
-#F5 f5.txt
-#F6 f6.txt
-#F7 f7.txt
-label mount
- kernel vmlinuz
- append root=$ROOT_DEVICE vga=normal ro
-EOF
- cat << EOF > $TMP/bootdisk/f1.txt 2> $RDIR
- STANDARD MODES:
- To make the kernel prompt for standard video modes use: vga=ask
-
- FRAMEBUFFER MODES:
- To get the kernel to start in VESA framebuffer mode, you need to pass it
- a vga= init string on the "boot:" prompt. Here's a table:
-
- Colors 640x480 800x600 1024x768 1280x1024 1600x1200
- --------+---------------------------------------------
- 256 | 769 771 773 775 796
- 32,768 | 784 787 790 793 797
- 65,536 | 785 788 791 794 798
- 16.8M | 786 789 792 795 799
-
- ...such as this for 1024x768x64k:
- vga=791
-
- F2 returns to the previous page.
-
-EOF
- if [ "$(uname -m)" == "x86_64" ]; then # also install an EFI bootloader
- mkdir -p $TMP/bootdisk/EFI/BOOT 1> $RDIR 2> $RDIR
- cp $T_PX/boot/elilo-x86_64.efi $TMP/bootdisk/EFI/BOOT/BOOTX64.EFI 1> $RDIR 2> $RDIR
- cat << EOF > $TMP/bootdisk/EFI/BOOT/message.txt 2> $RDIR
-
-Welcome to the Slackware Linux custom USB boot stick!
-
-By default, this stick boots a root Linux partition on $ROOT_DEVICE when you
-hit ENTER. If you'd like to boot some other partition, use a command like
-this on the prompt below:
-
- huge.s root=/dev/sda1 ro
-
-Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that
-the partition should be initially mounted as read-only. If you wish to mount
-the partition read-write, use "rw" instead. You may also add any other
-kernel parameters you might need depending on your hardware, and which
-drivers are included in your kernel.
-
-Hit ENTER to boot:
-
-EOF
- cat << EOF > $TMP/bootdisk/EFI/BOOT/elilo.conf 2> $RDIR
-chooser=simple
-message=message.txt
-delay=300
-timeout=300
-#
-image=/vmlinuz
- label=huge.s
- read-only
- append="root=$ROOT_DEVICE vga=normal ro"
-EOF
- fi # end EFI installation
- sync
- umount /dev/${STICK}1
- rm -r $TMP/bootdisk
- # Sometimes the nomtools version of syslinux will leave the volume mounted,
- # so umount again:
- umount /dev/${STICK}1 2> $RDIR
- if [ "$T_PX" = "/" ]; then
- dialog --title "USB BOOT STICK CREATED" --msgbox \
- "The USB boot stick has been successfully created on device /dev/$STICK." 6 60
- exit
- fi
- dialog --title "USB BOOT STICK CREATED" --ok-label Continue --cancel-label Create --menu \
-"The USB boot stick has been successfully created on device /dev/$STICK. If you would like to \
-create an additional boot stick, please select 'Create' and we'll go back and make another \
-one, otherwise select 'Continue' to continue configuring your system." 12 71 2 \
- "Continue" "Continue the configuration (done making boot sticks)" \
- "Create" "Make a spare Linux boot stick in /dev/$STICK" \
- 2> $TMP/return
- REPLY=`cat $TMP/return`
- rm -f $TMP/return
- if [ "$REPLY" = "Create" ]; then
- continue
- else
- break
- fi
- else # ! Create
- break
- fi
-done