前提为虚拟机上创建一块硬盘,假设它为/dev/sdb,未指定的硬盘创建分区
1列出当前系统上所有的磁盘,让用户选择,如果选择quit则退触脚本,如果用户选择错误,就让用户重新选择:
2.当用户选择后,提醒用户确认接下来的操作会损坏数据,并请用户确认;如果用户选择Y就继续,选择n就退出,否则就让用户重新选择
3.抹除硬盘所有分区后执行sync命令,并睡眠3秒,创建三个主分区,第一个20MB
第二个512MB,第三个为swap分区128MB
#! /bin/bash
fdisk -l | grep "Disk /dev/sd[b-z]" | awk -F: '{print $1}' | awk '{print $2}'
read -p "please input [a-z] or quit. you choice: " STRING
while [ $STRING != [:lower:] ];do
if [ $STRING == 'quit' ];then
exit 2
else
read -p "you chioce was error,please again your chioce:" STRING
fi
done
echo "please check your choice : $STRING "
read -p "you may de destroyed you disk.Are you contile : (y or n)" CHIOSE
if [ $CHIOSE == y ];then
dd if=/dev/zero of=/dev/sd'$STRING' bs=1024MB count=1
sleep 10
echo "p
n
p
1
+20M
n
p
2
+512M
n
p
3
+128M
t
3
82
w" | fdisk /dev/sd$STRING
sync
else
exit
fi
shell升级版,优化了输入磁盘选项,选择错误的磁盘也要重新选择
1
2 #! /bin/bash
3
4 fdisk -l | grep "Disk /dev/sd[b-z]" | awk -F: '{print $1}' | awk '{print $2}'
5 read -p "please input [a-z] or quit. you choice: " STRING
6 until echo "q
7 " | fdisk /dev/sd"$STRING" &> /dev/null;do
8 if [ $STRING == 'quit' ];then
9 exit 2
10 else
11 read -p "you chioce was error,please again your chioce:" STRING
12 fi
13 done
14 echo "please check your choice : $STRING "
15 read -p "you may de destroyed you disk.Are you contile : (y or n)" CHIOSE
16 if [ $CHIOSE == y ];then
17 dd if=/dev/zero of=/dev/sd"$STRING" bs=1024MB count=1
18 sleep 10
19 echo "p
20 n
21 p
22 1
23
24 +20M
25 n
26 p
27 2
28
29 +512M
30 n
31 p
32 3
33
34 +128M
35 t
36 3
37 82
38 w" | fdisk /dev/sd$STRING
39 sync
40 else
41 exit
42 fi