| #!/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 |