windows和linux分区脚本

客户需求

  • 对windows 7 磁盘未分区对部分,变成一块新分区挂在我的电脑上

解决方法

C:\Windows\System32\cmd.exe /C 
setlocal disabledelayedexpansion & >tempfile.bat 
echo (echo list disk)^|diskpart^|findstr "磁盘.[0-9]"^|find /c "磁盘" ^> diskAmount & >>tempfile.bat 
echo set /p str=^<diskAmount & >>tempfile.bat 
echo del /s /q diskAmount & >>tempfile.bat 
echo set /a diskNum=%str%-1 & >>tempfile.bat 
echo echo select disk %diskNum% ^>temp.f2c & >>tempfile.bat 
echo echo detail disk ^>^>temp.f2c & >>tempfile.bat 
echo diskpart /s temp.f2c^|findstr "没有卷"^|find /c "没有卷" ^> detailDisk & >>tempfile.bat 
echo set /p diskEmpty=^<detailDisk & >>tempfile.bat 
echo del /s /q detailDisk & >>tempfile.bat 
echo if %diskEmpty%==0 (exit) & >>tempfile.bat 
echo echo select disk %diskNum% ^>temp.f2c & >>tempfile.bat 
echo echo clean ^>^>temp.f2c & >>tempfile.bat 
echo echo convert gpt ^>^>temp.f2c & >>tempfile.bat 
echo echo create partition primary ^>^>temp.f2c & >>tempfile.bat echo echo format fs=ntfs quick ^>^>temp.f2c & >>tempfile.bat 
echo echo assign ^>^>temp.f2c & >>tempfile.bat 
echo diskpart /s temp.f2c ^>partitionResult.tmp 

  • 对Linux的新磁盘,添加到卷组里面,建立一个新的逻辑剧卷,mount在/data目录下
    解决方法
#!/bin/bash
function check_execution_result(){
        if [[ ! -z $RETVAL ]]; then
                unset RETVAL
        fi
        RETVAL=$?
        if [[ $RETVAL -ne 0 ]]; then
                echo execution failed! 
                exit $RETVAL
        else
                echo execution successfully! 
        fi
        unset RETVAL
}

echo "- - -" >/sys/class/scsi_host/host0/scan
echo "- - -" >/sys/class/scsi_host/host1/scan
echo "- - -" >/sys/class/scsi_host/host2/scan

ONLINE_SCSI_DISK_NEWADD=$(lsblk --all | grep disk | grep -v fd | awk '{print $1}'|sed -n '$p'| sed 's/ //g')
echo New Added SCSI Disk: $ONLINE_SCSI_DISK_NEWADD
VG_Name=$(vgdisplay | grep 'VG Name' | awk '{print $NF}')
ONLINE_SCSI_DISK_NEWADD_FILENAME="/dev/"$ONLINE_SCSI_DISK_NEWADD

LVM_OPERATION_DISK_FILENAME=$ONLINE_SCSI_DISK_NEWADD_FILENAME
pvcreate $LVM_OPERATION_DISK_FILENAME >/dev/null 2>&1
check_execution_result
vgextend $VG_Name $LVM_OPERATION_DISK_FILENAME >/dev/null 2>&1
check_execution_result
lvcreate $VG_Name  -l 100%FREE --name /dev/$VG_Name/lv_data
check_execution_result
mkfs.ext4 /dev/$VG_Name/lv_data
check_execution_result

if [ ! -d /data ];then
    mkdir /data
fi    
check_execution_result
mount /dev/$VG_Name/lv_data /data
check_execution_result
sed  '8a /dev/mapper/'$VG_Name'-lv_data /data                       ext4    defaults        1 1' /etc/fstab  
sed -i '8a /dev/mapper/'$VG_Name'-lv_data /data                       ext4    defaults        1 1' /etc/fstab  
check_execution_result


df -h
lsblk --all
注意:
对bat脚本,win7验证成功。对sh脚本,centos和redhat验证成功。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值