Quantcast
Channel: While I remember
Viewing all articles
Browse latest Browse all 11

Creating Linux filesystem images

$
0
0
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.

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

Viewing all articles
Browse latest Browse all 11

Trending Articles