10-5 脚本编程之八 脚本完成磁盘分区格式化

写一个脚本(前提:请为虚拟机新增一块硬盘,假设它为/dev/sdb),为指定的硬盘创建分区

1、列出当前系统上所有磁盘,让用户选择,如果选择quit则退出脚本,如果用户选择错误,让用户重新选择

2、当用户选择后,提醒用户确认接下来的操作可能会损坏数据,并请用户确认,如果用户选择y就继续,n就退出。否则就让用户重新选择

3、删除那块硬盘上的所有分区(提示,抹除所有分区后执行sync命令,并让脚本睡眠3秒钟后再分区);并为其创建3个主分区

   且第三个是swap分区类型。(分区命令通过echo传送给fdisk即可实现)

#!/bin/bash

echo "Initial a disk.."

echo -e "\033[31mWarning: \033[0m"

fdisk -l | grep -o "^Disk /dev/[sh]d[a-z]"

#!/bin/bash

echo "Initial a disk.."

echo -e "\033[31mWarning: \033[0m"

fdisk -l | grep -o "^Disk /dev/[sh]d[a-z]"

read -p "Your choice: " PARTDISK

if [ $PARTDISK == ‘quit‘ ]; then

echo "quit"

exit 7

fi

until fdisk -l |grep -o "^Disk /dev/[sh]d[a-z]" | grep "^Disk $PARTDISK$" &> /dev/null;do

read -p "Wrong option,Your choice aging:" PARTDISK

done

echo $PARTDISK

read -p "Will destroy all date,continue: " CHOICE

until [ $CHOICE == ‘y‘ -o $CHOICE == ‘n‘ ];do

read -p "Wrong option,Your choice aging:" CHOICE

done

if [ $CHOICE == ‘n‘ ];then

exit 9

echo -e "\033[31mWarning: \033[0m"

fdisk -l | grep -o "^Disk /dev/[sh]d[a-z]"

read -p "Your choice: " PARTDISK

if [ $PARTDISK == ‘quit‘ ]; then

echo "quit"

exit 7

fi

until fdisk -l |grep -o "^Disk /dev/[sh]d[a-z]" | grep "^Disk $PARTDISK$" &> /dev/null;do

echo -e "\033[31mWarning: \033[0m"

fdisk -l | grep -o "^Disk /dev/[sh]d[a-z]"

read -p "Your choice: " PARTDISK

if [ $PARTDISK == ‘quit‘ ]; then

echo "quit"

exit 7

fi

until fdisk -l |grep -o "^Disk /dev/[sh]d[a-z]" | grep "^Disk $PARTDISK$" &> /dev/null;do

read -p "Wrong option,Your choice aging:" PARTDISK

done

echo $PARTDISK

read -p "Will destroy all date,continue: " CHOICE

until [ $CHOICE == ‘y‘ -o $CHOICE == ‘n‘ ];do

read -p "Wrong option,Your choice aging:" CHOICE

done

if [ $CHOICE == ‘n‘ ];then

exit 9

else

dd if=/dev/zero of=$PARTDISK  bs=512 count=1 &> /dev/null

sync

echo ‘

n

p

1

+20M

n

p

2

+512M

n

p

3

+100M

t

3

82

w‘ | fdisk $PARTDISK &> /dev/null

partprobe $PARTDISK

sync

sleep 2

mke2fs -j ${PARTDISK}1 &> /dev/null

mke2fs -j ${PARTDISK}2 &> /dev/null

mke2fs -j ${PARTDISK}3 &> /dev/null

fi


 删除一个磁盘的所有分区,只需要覆盖它的MBR就可以了。

dd if=/dev/zero of=/dev/sdb bs=/dev/sdb bs=512 count=1

然后同步到磁盘sync 注:任何操作都是现在内存中完成然后才同步到磁盘上,我们可以手动同步到磁盘。

为了给同步的时间,需要sleep睡3秒。

时间: 2024-10-04 02:29:47

10-5 脚本编程之八 脚本完成磁盘分区格式化的相关文章

第10课--10_05_脚本编程之八 脚本完成磁盘分区格式化

一.until 循环where CONDTION;dostatementdone进入循环,条件满足退出循环,条件不满足until CONDTION;dostatementdone进入循环,条件不满足退出循环,条件满足for i in list ;dostatementdonefor ((expr1;epxr2,expr3));dolistdonefor((i=1;i<100;i++));dolistdone二.18 原文地址:http://blog.51cto.com/13788421/2316

Linux01-脚本编程之八until循环及脚本完成磁盘分区格式化37

一.脚本编程控制结构 1.顺序 2.选择 if case 3.循环 a)for b)while CONDITION:do statment ... done 进入循环:条件满足 退出循环:条件不满足 c)until 二.until循环 1.格式: until CONDITION; do statement ... done 2.表示: 进入循环:条件不满足 退出循环:条件满足 如:写脚本,每5s检查一次hadoop是否登录系统: #!/bin/bash # who | grep "hadoop&

Shell脚本实现磁盘分区格式化

Shell脚本实现磁盘分区格式化 我们的Shell脚本程序结构分为,顺序结构,选择结构以及循环结构,我们之前已经介绍过选择结构包括if.case语句,循环结构包括for循环.while循环以及until循环,今天我们就来介绍一下until循环,until循环的语法格式如下: until condition;do 循环体 done 由以上可以看出,我们的until循环的语法格式和我们的while循环是一样的,唯一不同的是我们的while循环是在满足condition的情况下进入循环体进行循环,而我

shell 脚本实战笔记(4)--linux磁盘分区重新挂载

背景: Hadoop的HDFS文件系统的挂载, 默认指定的文件目录是/mnt/disk{N}. 当运维人员, 不小心把磁盘挂载于其他目录, 比如/mnt/data, /mnt/disk01, /mnt/diska时, HDFS会选择根分区, 当往HDFS里灌数据时, 导致的结果往往是根分区被快速的消耗尽, 而其他分区未见使用. 在CDH版本中, HDFS的配置如下所示: dfs.datanode.data.dir => /mnt/disk{N}/dfs/dn dfs.datanode.data.

马哥教育视频学习笔记-shell脚本完成磁盘分区格式化

马哥教育视频学习笔记-shell脚本完成磁盘分区格式化-http://edu.51cto.com/lesson/id-28201.html 以下是脚本内容,内容比较简单,不做详解 在Linux上准备一块空闲的磁盘即可,如何分区可以在脚本内改下 #!/bin/bash # echo "Initial a disk..." echo -e "\033[31mWarning: \033[0m " #开始的说明信息,其中Warning以红色字体显示 fdisk -l 2&g

Linux中如何实现磁盘分区格式化?

本文和大家分享的主要是linux 中磁盘分区格式化相关内容,一起来看看吧,希望对大家 学习linux有所帮助. 磁盘分区 分区格式的两种选择:MBR 和 GPT 分区命令: parted的操作都是实时生效的,小心使用,主要是用于大于2T硬盘,支持MBR和GPT两种格式. 用法:parted [ 选项 ]- [ 设备 [ 命令 [ 参数 parted /dev/sdb mklabelgpt|msdos  //选择分区格式 parted /dev/sdb print  //查看分区 parted /

linux磁盘分区格式化、挂载,文件系统

一.硬盘分区&格式化&挂载 RHEL5强制刷新分区表 partprobe /dev/sdb RHEL6强制刷新分区表 partx -a /dev/sdb 1.创建文件系统:挂载分区&格式化 mkfs.TAB 查看当前系统可创建分区类型 [[email protected] ~]# mkfs. mkfs.cramfs  mkfs.ext3    mkfs.vfat    mkfs.ext2    mkfs.msdos 格式化第一个分区   mkfs.ext3 /dev/sdb1 创建

(转)centos7.4 fdisk磁盘分区 格式化 挂载

centos7.4 fdisk磁盘分区 格式化 挂载 原文:http://blog.csdn.net/capecape/article/details/78499351 1.查看系统中有多少可以识别的硬盘.U盘 [root@localhost ~]# fdisk -l 1 2.使用fdisk命令进行分区 [root@localhost ~]# fdisk /dev/sdb 1  记得输入w保存退出! 3.通知操作系统,分区表已经改变 [root@localhost ~]# partprobe 1

Linux新磁盘分区格式化及挂载-fdisk命令

本文主解决linux系统的磁盘分区格式化及挂载问题注意:分区操作针对磁盘vda,sda等vda1,sda1等是分区的名称 1.检查当前磁盘分区状态 1.1.查看分区挂载情况 df -h ------------------------------------------------------------------------------- [email protected]:~# df -h Filesystem Size Used Avail Use% Mounted on udev 7.