31 lines
		
	
	
		
			586 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			586 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh -ex
 | 
						|
 | 
						|
mountpoint -q /
 | 
						|
[ ! -e hdc.img.dir ]
 | 
						|
 | 
						|
cleanup()
 | 
						|
{
 | 
						|
	trap - EXIT
 | 
						|
	if mountpoint -q hdc.img.dir; then
 | 
						|
		umount -d hdc.img.dir
 | 
						|
	fi
 | 
						|
	mountpoint -q hdc.img.dir ||
 | 
						|
		rm -rf hdc.img.dir
 | 
						|
	exit $@
 | 
						|
}
 | 
						|
 | 
						|
trap 'cleanup $?' EXIT
 | 
						|
trap 'cleanup 1' HUP PIPE INT QUIT TERM
 | 
						|
 | 
						|
size=$(du -ks hdc.dir | sed -rn 's/^([0-9]+).*/\1/p')
 | 
						|
[ "$size" -gt 0 ]
 | 
						|
 | 
						|
rm -f hdc.img
 | 
						|
dd if=/dev/zero of=hdc.img count=1 bs=1024 seek=$(($size*2))
 | 
						|
mkfs.ext3 -q -F -b 1024 -i 4096 hdc.img
 | 
						|
tune2fs -c 0 -i 0 hdc.img
 | 
						|
mkdir hdc.img.dir
 | 
						|
mount -o loop hdc.img hdc.img.dir
 | 
						|
cp -a hdc.dir/* hdc.img.dir/
 | 
						|
umount -d hdc.img.dir
 |