写一个脚本(前提:请为虚拟机新增一块硬盘,假设它为/dev/sdb),为指定的硬盘创建分区:
1、列出当前系统上所有的磁盘,让用户选择,如果选择quit则退出脚本;如果用户选择错误,就让用户重新选择;
2、当用户选择后,提醒用户确认接下来的操作可能会损坏数据,并请用户确认;如果用户选择y就继续,n就退出;否则,让用户重新选择;
3、抹除那块硬盘上的所有分区(提示,抹除所有分区后执行sync命令,并让脚本睡眠3秒钟后再分区);并为其创建三个主分区,第一个为20M,第二个为512M, 第三个为128M,且第三个为swap分区类型;(提示:将分区命令通过echo传送给fdisk即可实现)
#!/bin/bash#: Title: auto_disk.sh#: Synopsis:#: DateTime: 2014-05-04 23:13#: Version: 0.1#: Author: dengyw#: Options:#PARTS=`fdisk -l 2>/dev/null |grep "^Disk /dev/[sh]d[a-z]"` #显示磁盘分区信息echo -e "$PARTS"read -p "please choice the disk of you need: {hda|sda} or q for quit: " disk #输入要分区的磁盘until [ $disk == 'q' ];dowhile :;do # 判断输入格式是否正确,不正确重新输入if [ $disk = "hda" ] || [ $disk = "sda" ];then breakfiread -p "please choice the disk of you need: {hda|sda} or q for quit: " diskdonecase $choice iny|Y)dd if=/dev/zero of=/dev/$disk bs=512 count=1 && echo "clean the disk " #将用户所需的磁盘的MBR格式化syncsleep 3echo 'np1+500Mnp2read -p "please choice the disk of you need: {hda|sda} or q for quit: " diskdoneread -p "waring !!! Next you do it will wipe your disk!!! Countinue(y/n)?" choice #提示并警告用户接下操作,将会格式化操作并分区case $choice iny|Y)dd if=/dev/zero of=/dev/$disk bs=512 count=1 && echo "clean the disk " #将用户所需的磁盘的MBR格式化syncsleep 3echo 'n#!/bin/bash#PARTS=`fdisk -l 2>/dev/null |grep "^Disk /dev/[sh]d[a-z]"` #显示磁盘分区信息echo -e "$PARTS"read -p "please choice the disk of you need: {hda|sda} or q for quit: " disk #输入要分区的磁盘until [ $disk == 'q' ];dowhile :;do # 判断输入格式是否正确,不正确重新输入if [ $disk = "hda" ] || [ $disk = "sda" ];then breakfiread -p "please choice the disk of you need: {hda|sda} or q for quit: " diskdoneread -p "waring !!! Next you do it will wipe your disk!!! Countinue(y/n)?" choice #提示并警告用户接下操作,将会格式化操作并分区case $choice iny|Y)dd if=/dev/zero of=/dev/$disk bs=512 count=1 && echo "clean the disk " #将用户所需的磁盘的MBR格式化syncsleep 3echo 'np1+20Mnp2+512Mnp3+128Mt382w'| fdisk /dev/$disk &>/dev/null && echo "the disk has been parted." #将分区的信息传递给fdisk,开始分区partprobe /dev/$disksleep 3 #分区之后要用sleep命令让系统“沉睡”13,这样可以让分区的信息真正的同步进硬盘,而不至于格式化出错。mke2fs -j /dev/${disk}1 &>/dev/null #格式化文件系统mke2fs -j /dev/${disk}2 &>/dev/nullmkswap /dev/${disk}3 &>/dev/nullexit 0;;n|N)exit 0;;*)exit 0;;esacdone