Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- DEVICE=/dev/$1 #/dev/sdc
- OUTPUT=$2 #./V0.2.img
- PART=$(fdisk $DEVICE -l | tail -1 | awk '{print $1}' | sed 's/[^0-9]*//g' )
- echo $DEVICE
- echo $OUTPUT
- echo $PART
- if [ $PART > 4 ]; then
- TYPE="l"
- echo "LOGICAL (EXTENDED)"
- else
- TYPE="p"
- echo "PRIMARY"
- fi
- echo $TYPE
- sleep 2
- fsck.vfat -y ${DEVICE}1
- e2fsck -y -f ${DEVICE}$PART
- for pass in {1..10}
- do
- result=$(resize2fs -M ${DEVICE}$PART)
- if [ -z "$result" ]; then
- break
- fi
- blocks=$(echo "$result" | grep "Resizing" | awk '{print $7}')
- block_size=$(echo "$result" | grep "Resizing" | awk '{print $8}' | cut -d "(" -f2 | cut -d "k" -f1)
- new_size=$(($blocks * $block_size))
- PART_START=$(fdisk $DEVICE -l | grep ${DEVICE}$PART | awk '{print $2}')
- PART_END=+${new_size}K
- fdisk $DEVICE <<EOF
- d
- $PART
- n
- $TYPE
- $PART
- $PART_START
- $PART_END
- w
- EOF
- echo "Size after Pass #${pass}: $(($new_size/1024))MB"
- done
- block_size=$(fdisk $DEVICE -l | grep "Sector size" | awk '{print $4}')
- end_sector=$(fdisk $DEVICE -l | tail -1 | awk '{print $3}')
- mb_size=$(((($end_sector * $block_size)/1048576)+1))
- echo "Block Size: $block_size"
- echo "Total Sectors: $end_sector"
- echo ""
- echo "** IMAGE SIZE: $mb_size MB **"
- echo ""
- echo "STARTING DD"
- echo "$DEVICE > $OUTPUT"
- dd bs=1M count=$mb_size if=$DEVICE of=$OUTPUT
- echo "DONE"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement