diff options
Diffstat (limited to 'testing/source/pkgtools/scripts/setup.80.make-bootdisk')
-rw-r--r-- | testing/source/pkgtools/scripts/setup.80.make-bootdisk | 267 |
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 |