2016-9-22 困扰两天之用脚本分区

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2016-9-22 困扰两天之用脚本分区相关的知识,希望对你有一定的参考价值。

写一个脚本(前提:请为虚拟机新增一块硬盘,假设它为/dev/sdb0),为指定硬盘创建分区
①列出当前系统上所有的硬盘,让用户选择,

    如果选择quit则退出脚本;如果用户选择错误,就让用户重新选择
②当用户选择后,提醒用户确认接下来的操作可能会损坏数据,并请用户确认;

    如果用户选择y就继续,n就退出,否则,让用户重新选择
③抹除那块硬盘上的所有分区,(提示:抹除所有分区后执行sync命令,并让脚本睡眠3s后再分区);

并为其创建三个主分区,第一个为20M,第二个512M,第三位128M(Swap类型),

最后三个分别格式化为ext3,ext3,swap

(提示1:将分区命令通过echo传送给fdisk即可实现,睡眠3s: sleep 3)
(提示2:抹除所有分区dd if=/dev/zero of=/dev/sdb bs=512 count=1)


以下是标准脚本,参照着标准脚本来,还是不行. T_T

#!/bin/bash
#

#初始化分区

echo "Initial a disk..." 
echo -e "\033[31mWaring...\033[0m"
#列出当前系统上所有的硬盘,让用户选择read -p "Choice a disk:" DISK

fdisk -l 2> /dev/null | grep -o "^Disk /dev/sd[a-z]"

#如果选择quit则退出脚本

if [ $DISK == ‘quit‘ ]; then
    echo "Quitting.."
    exit 5
fi

#如果用户选择错误,就让用户重新选择

#第三个管道 最后在变量DISK后多加一个$是什么意思,第三个管道的意思其实都不太理解

#这一层的意思是,除非你输入的是/dev/sdb之类的,不然就提醒你选择错误,重新选择一个分区

until fdisk -l 2> /dev/null | grep -o "Disk /dev/sd[a-z]" | grep "^Disk $DISK$" &> /dev/null; do
    read -p "Waring option,choice again...:" DISK
done
#当用户选择后,提醒用户确认接下来的操作可能会损坏数据,并请用户确认

read -p "Will destory all data,continue(y/n):" CHOICE
#如果用户不是选择y/n,就让用户重新选择

until [ $CHOICE == ‘y‘ -o $CHOICE == ‘n‘ ]; do
    read -p "Will destory all data ,continue(y/n):" CHOICE
done

#如果用户选择y就继续,n就非法退出,

if [ $CHOICE == ‘n‘ ]; then
    echo "Quitting..."
    exit4
else

#抹除那块硬盘上的所有分区,然后执行sync命令,并让脚本睡眠3s后再分区)

dd if=/dev/zero of=$DISK bs=512 count=1
sync
sleep 3

#分区过程通过管道送到fdisk 下

echo ‘n
p
1

+20M
n
p
2

+512M
n
p

+128M
t
3
82
w‘ | fdisk $DISK &> /dev/null

#重新读取分区,防止脚本执行过快,先睡眠3s再格式化

partprobe $DISK
sync
sleep 2

#最后三个分别格式化为ext3,ext3,swap

mke2fs -j ${DISK}1 &> /dev/null
mke2fs -j ${DISK}2 &> /dev/null
mkswap ${DISK}3 &> /dev/null
fi

如下是正确执行结果,分区和格式化的信息不需要输出到屏幕上

技术分享

最后创建分区并格式化完成,即可挂载使用

技术分享


然而这段脚本在我的本本上是错误的,结果是这样 T_T,肿么办???

技术分享

求大神某天路过我的博客可以提出宝贵意见!!!!!!

本文出自 “11160930” 博客,请务必保留此出处http://11170930.blog.51cto.com/11160930/1855459

以上是关于2016-9-22 困扰两天之用脚本分区的主要内容,如果未能解决你的问题,请参考以下文章

SoapUI NG Pro v1.9发布,Groovy功能消除脚本困扰

UI测试之远程桌面连接的困扰

这样给小白讲原码反码补码,帮她彻底解决困扰了三天的问题

这样给学妹讲原码反码补码,帮她彻底解决困扰了三天的问题

困扰一周的ajax调用错误终于解决了

Appium 总结困扰一段时间的 appium 问题解决方案(转)