I’m sharing the following script which creates a filesystem image of desired size (in kBs) for use in building an installUSB/LiveUSB Pen-drive image or for similar uses. I have written this in my effort to create a installUSB image for Debian-Lenny. Hope it is of some help to somebody:-). You may copy the italicized/quoted text below into a new text file and save it as a shell script (.sh extension). Don’t forget to set its executable bit;-) and also, please don’t forget to leave your comments/feedbacks.
Note: It currently creates images for fat16, fat32, ext2 and ext3 and you should run it as root/superuser (sudo). You can extend this script to generate fs images for other filesystem types as well.
Usage: script-name fs-type output-file required-size-kB
Ex.,; ./mk-hdd-img.sh ext3 myimage.img 600000
This will create a filesytem image called myimage.img of type ext3 and of size ~600MB.
Note: It currently creates images for fat16, fat32, ext2 and ext3 and you should run it as root/superuser (sudo). You can extend this script to generate fs images for other filesystem types as well.
Usage: script-name fs-type output-file required-size-kB
Ex.,; ./mk-hdd-img.sh ext3 myimage.img 600000
This will create a filesytem image called myimage.img of type ext3 and of size ~600MB.
#!/bin/bash if [ $UID -ne 0 ]; then echo “You need superuser/root privileges to run this.” exit 1 fi if [ $# -ne 3 ]; then echo “Usage: `basename $0` “ exit 2 fi BLOCK_SIZE=1024 HDD_IMG_NAME=”$2” IMG_KB_SIZE=$3 make_img () { if [ -e “$HDD_IMG_NAME” ]; then echo “Failed!” echo “Image file $HDD_IMG_NAME already exits!!!” echo “Please remove the image and try again.” exit 4 fi dd if=/dev/zero of=$HDD_IMG_NAME bs=$BLOCK_SIZE count=$IMG_KB_SIZE sync; sleep 2 } echo “Trying to create HDD image with $1 filesystem…. “ case “$1” in fat16) make_img; mkfs.vfat -F 16 “$HDD_IMG_NAME” $IMG_KB_SIZE &> /dev/null 2>&1;; fat32) make_img; mkfs.vfat -F 32 “$HDD_IMG_NAME” $IMG_KB_SIZE &> /dev/null 2>&1;; ext2) make_img; mkfs.ext2 -F -b $BLOCK_SIZE “$HDD_IMG_NAME” $IMG_KB_SIZE &> /dev/null 2>&1;; ext3) make_img; mkfs.ext3 -F -b $BLOCK_SIZE “$HDD_IMG_NAME” $IMG_KB_SIZE &> /dev/null 2>&1;; *) echo “Failed!” echo “Filesystem of type $1 is not supported!” echo “Only fat16, fat32, ext2, ext3 are supported” exit 3;; esac echo “Done.” exit 0
Comments
Post a Comment