55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								#/usr/bin/env bash
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								MEDIADIR="/media/gmgauthier"
							 | 
						||
| 
								 | 
							
								format=0 # Don't format disk images that already exist
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# get name of freshly created blank disk, or create one
							 | 
						||
| 
								 | 
							
								if [ $# -eq 0 ]; then
							 | 
						||
| 
								 | 
							
								    echo ">>> NEW DISK IS BEING CREATED..."
							 | 
						||
| 
								 | 
							
								    PREFIX="floppy"
							 | 
						||
| 
								 | 
							
								    RANDO=$(od -An -N4 -i < /dev/urandom|sed 's/[ -]//g')
							 | 
						||
| 
								 | 
							
								    DISK="$PREFIX$RANDO"
							 | 
						||
| 
								 | 
							
								    dd if=/dev/zero of=$DISK.img bs=1k count=1440
							 | 
						||
| 
								 | 
							
								    format=1
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								    DISK=$1
							 | 
						||
| 
								 | 
							
								    if ! [ -f $DISK.img ]; then
							 | 
						||
| 
								 | 
							
								        dd if=/dev/zero of=$DISK.img bs=1k count=1440
							 | 
						||
| 
								 | 
							
								        format=1
							 | 
						||
| 
								 | 
							
								    fi
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Find the next available loop device on the system
							 | 
						||
| 
								 | 
							
								echo ">>> LOOP DEVICE IS BEING IDENTIFIED..."
							 | 
						||
| 
								 | 
							
								list=$(losetup -O name|sed 's/\/dev\/loop//g'|sed 's/NAME//g'|sort - --sort=human-numeric)
							 | 
						||
| 
								 | 
							
								### listarr=(${(@s: :)list}) # zsh version of the array generator
							 | 
						||
| 
								 | 
							
								listarr=($(echo $list | tr " " "\n")) #bash version of array generator
							 | 
						||
| 
								 | 
							
								lastdev=${listarr[-1]}
							 | 
						||
| 
								 | 
							
								lastdevnum=$((lastdev))
							 | 
						||
| 
								 | 
							
								nextdev=$((lastdevnum+1))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# allocate the next available loop device, format the disk, and mount it.
							 | 
						||
| 
								 | 
							
								nextdevname="/dev/loop$nextdev"
							 | 
						||
| 
								 | 
							
								echo ">>> LOOP DEVICE $nextdevname RESERVED FOR DISK: $DISK.img"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sudo losetup $nextdevname $DISK.img
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ $format -eq 1 ]; then
							 | 
						||
| 
								 | 
							
								    echo ">>> DISK IMAGE IS RAW AND WILL BE FORMATTED"
							 | 
						||
| 
								 | 
							
								    sudo mkfs -t vfat $nextdevname
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if ! [ -d $MEDIADIR/$DISK ]; then
							 | 
						||
| 
								 | 
							
								    echo ">>> MOUNT DIRECTORY NOT FOUND. CREATING DIRECTORY NOW."
							 | 
						||
| 
								 | 
							
								    sudo mkdir $MEDIADIR/$DISK                                          
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								echo ">>> DISK $DISK.img MOUNTING AT LOCATION: $MEDIADIR/$DISK"
							 | 
						||
| 
								 | 
							
								sudo mount $DISK.img $MEDIADIR/$DISK
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ $format -eq 1 ]; then
							 | 
						||
| 
								 | 
							
								    echo ">>> DISK INFORMATION BEING COPIED TO $DISK.img"
							 | 
						||
| 
								 | 
							
								    sudo fdisk -l $nextdevname >> $DISK-fdisk.txt
							 | 
						||
| 
								 | 
							
								    sudo cp $DISK-fdisk.txt $MEDIADIR/$DISK/$DISK.txt && rm $DISK-fdisk.txt
							 | 
						||
| 
								 | 
							
								fi
							 |