取证镜像文件转虚拟机文件

#!/bin/bash
# Usage:create_vmdk
# Copyright@PSS Tento Italy


if [ $# -ne 1 ]
then 
echo "USAGE $0 <image file>"
exit 1
fi
FILENAME=$1
LOOPDEVICE=""
TOTOLESECTORS=""
TRACKSECTORS=""
CYLINDERS=""
HEADS=""


for i in `seq 9 -1 0`
do
/sbin/losetup /dev/loop$i > /dev/null 2>&1
if [ $? -eq 1 ]
then 
LOOPDEVICE=/dev/loop$i
fi
done
if [ "$LOOPDEVICE" = "" ]
then 
echo "FATAL: no loop devices available!"
exit 1
fi
echo "Using $LOOPDEVICE for image geometry scanning..."
/sbin/losetup $LOOPDEVICE $FILENAME
if [ $? -ne 0 ]
then
echo "FATAL:cannot set \"$FILENAME\" on \"$LOOPDEVICE\""
exit 1
fi


echo "scanning geometry..."
FDISKOUTPUT=`/sbin/fdisk -lu $LOOPDEVICE 2>/dev/null | grep cylinder`
echo "Releasing $LOOPDEVICE..."
/sbin/losetup -d $LOOPDEVICE
echo "Parsing" geometry..."
TOTALSECTORS=`echo "$FDISKOUTPUT" |awk '{print $8}'`
TRACKSECTORS=`echo "$FDISKOUTPUT" |awk '{print $3}'`
CYLINDERS=`echo "$FDISKOUTPUT" |awk '{print $5}'`
HEADS=`echo "$FDISKOUTPUT" |awk '{print $1}'`


if [ "$TOTALSECTORS" = "" -o $TOTALSECTORS -eq 0 ]
then 
echo "FATAL: invalid sectors value"
exit 1
fi 
if [ "$TRACKSECTORS" = "" -O $TRACKSECTORS -eq 0 ]
then
echo "FATAL: invalid track/sectors value"
exit 1
fi
if [ "$CYLINDERS" = "" -o $CYLINDERS -eq 0 ]
then 
echo "FATAL: invalid cylinders value"
exit 1
fi
if [ "$HEADS" = "" -o $HEADS -eq 0 ]
then
echo "FATAL: invalid heads value"
exit 1
fi 
# building the vmdk file


echo "Writing $FILENAME.vmdk..."
cat << VWMDK_EOF > $FILENAME.vmdk


version=1
CID=76805586
parentCID=ffffffff
createType="monolichicFlat"


RW $TOTALSECTORS FLAT "$FILENAME" 0
##DDB
ddb.adapterType = "ide"
ddb.geometry.sectors = "$TRACKSECTORS"
ddb.geometry.heads = "$HEADS"
ddb.geometry.cylinders = "$CYLINDERS"
ddb.virtualHWVersion = "4"
ddb.toolsVersion = "0"
VWMDK_EOF
echo "Done!"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值