parted 磁盘分区-挂载-删除-shell脚本进行磁盘分区

简介: parted工具自动分区脚本

# parted脚本自动挂载分区磁盘

# 1.parted 核心命令  parted gpt 分区支持2T磁盘空间

partedManual(){


# 全新磁盘挂载,将vdb 改为您实际的磁盘

全新磁盘挂载,将vdb 改为您实际的磁盘

yum install -y parted                                        # 安装分区工具

parted -s /dev/vdb mklabel gpt                      # 将vdb 转为gpt 动态分区,支持2T以上容量

parted -s /dev/vdb mkpart primary 1 100%    # 新建主机分区

# parted -s a mkpart entended 3G 5G            # 第一个扩展分区:从3G 到5G

# parted -s b mkpart logic 5G 100%              # 第二个扩展分区:从5G到100%


mkfs -t ext4 /dev/vdb1                                    # 格式化主分区

mkdir -p /eisc/a                                               # 创建挂载目录  -p 不存在子目录,自动创建子目录

mount /dev/vdb1 /eisc/a                                # 将vdb 挂载到目录:/cipan/vdb1


vi /etc/fstab                                                  # 编辑文件命令

/dev/vdb1 /eisc/a ext4 defaults 1 1

# 复制粘贴这句话

# 然后 按键:ecs退出键 , 按 shift 和 : 冒号 wq 保存


mount -a                                                       # 校验配置是否正确命令无报错,可以重启服务器

df -hT                                                             # 重启服务器并查看挂载的分区

# 已经分区,仅仅挂载到服务器  磁盘存在数据,仅仅挂载磁盘

mkdir -p /eisc/a                                       # 创建磁盘存放目录, -p 不存在子目录,自动创建子目录

parted -l                                                   # 查看磁盘格式:如:primary  ext4  是主分区。

mount /dev/vdb1 /eisc/a                        # 将vdb1 磁盘挂载到    /myfoldel/a   目录。进入这个目录存放文件,占用的是  vdb1 的空间

cd /myfoldel/a                                        # 进入挂载目录

ls                                                              # 查看数据盘文件


vi /etc/fstab                                            # 编辑文件命令

/dev/vdb1 /eisc/a ext4 defaults 1 1

# 复制粘贴这句话

# 然后 按键:ecs退出键 , 按 shift 和 : 冒号 wq 保存


mount -a                                              # 校验配置是否正确命令无报错,可以重启服务器

df -h                                                      # 重启服务器并查看挂载的分区


}



# 2. parted 脚本自动分区

#!/bin/bash

azparted=$(yum list installed | grep parted)

# 定义一个名称为azparted的变量,值为:

# 查看已安装的包,grep 匹配parted 名称

cdazparted=$(echo ${#azparted})

# 定义一个新变量:打印$azparted 变量的字符串长度  echo $(#azparted)

 

if [ $cdazparted -lt 1 ]

# 判断变量字符串长度小于1

then # 然后

       yum install -y parted

       echo "您还没有安装parted,正在为您安装,请稍后:"

else # 其他情况


       echo "parted 已经安装,无需操作,已经安装的信息为:

$azparted"

fi # if的结束标记 fi

#----------------------------------- 检测安装工具向上包结束  -------------------------------

echo "未分区的磁盘有: "

parted -l | grep -w "unrecognised disk label"

echo "

read 接收窗口命令界面输入的字符串;-p 加文字说明;需要分区的磁盘变量 a

请输入你要进行分区的磁盘; 磁盘格式为:/dev/dev

如果输入错误字符或者闪跳,请Ctrl +c  退出重新输入"


read -p "请输入要分区的磁盘:"  a ;


echo "磁盘挂载目录格式为:   /www     将会清空该目录下的文件,重复执行脚本,仅仅更改挂载目录,不会更改硬盘数据重启生效。修改的是/etc/fstab"


read -p "请输入您要挂载到那个目录:"  m ;


#----------------------------------- 用户输入信息向上结束  -------------------------------


gsh=$(parted -s $a print | grep primary || logical )


# 定义一个变量 gsh  ; sed s/[[:space:]]//g 删除空格

# parted -s $a print 打印要分区的磁盘信息$a为 /dev/xxx

# 打印信息后去匹配磁盘分区的类型:

# primary [ˈprʌɪm(ə)ri] 主分区,类型;logical [ˈlɒdʒɪk(ə)l] 逻辑分区

# 如果主分区和逻辑分区都不存在,那么就是空盘

###### 重点:

# parted -s $a print # 选择磁盘,并打印:打印选择的磁盘信息

# awk -F " " '$5=="primary" {print zi++ $6} '

# -F " " 分隔符为空格,  后面有单引号引起来的为坐标:先行后列

# $5 第5列的内容包含有 primary 字符  就被选中

# print 打印第6列,  有多个内容用zi++ 方法来换行打印所有

# parted -s /dev/sda print | awk -F " " '$5=="primary" {print c++ $6} '






if [ ${#gsh}  -eq 0 ] # ${#gsh} 变量长度, -eq 小等于 0

then

echo "磁盘 $a 为空盘,没有找到主分区和逻辑分区,可以进行进行格式化并分区操作,请等待。。。  "

else

echo " # parted -s /dev/xxx   rm 1

磁盘名称: $a


 

磁盘存在数据,是否继续格式化操作

"

fi

echo "请确认脚本的继续执行

y继续 | 任意字符退出

"

read gshy

case $gshy in

y) echo "您确认了继续格式化操作,脚本将继续执行"

;;

*) echo "您否定了格式化操作,不会影响磁盘数据。即将退出脚本。"

exit # 直接退出脚本

;;

esac



parted -s $a mklabel gpt        # 格式化为gpt 动态分区,gpt动态分区支持2T

# msdos 其他类型


parted -s $a mkpart primary 1 100% # 分区 全部

#parted -s $a mkpart entended 3G 5G # 第一个扩展分区:从3G 到5G

#parted -s $a mkpart logic 5G 100% # 第二个扩展分区:从5G到100%

# logic [ˈlɒdʒɪk] 逻辑,分区


#-------------------------------------挂载------------------------------------

b=$(echo $a"1")

mkfs -t ext4 $b # 格式化分区


rm -rf $m

mkdir $m

mount  $b $m # 挂载分区到/www 目录下

# 如果需要挂载到指定目录请创建文件夹后,再将此处的/mnt修改

bd=$(echo $b | awk -F"/" 'NR==1{print $3}')

# 打印变量,awk 字段处理,-F 指定分隔符为  /

# 坐标:第一行,第3列


sed -i "/"eiscparted"/d" /etc/fstab             #先清除启动挂载

sed -i "/^$/d" /etc/fstab # 清除空行

echo "

$b           $m                            ext4      defaults        0 0 #eiscparted

">>/etc/fstab # 开机自动挂载,字符单独一行,才会保留格式


echo "再次查看挂载的磁盘,如果之前有挂载过此硬盘,重启生效挂载到新目录

开发商:小绿叶技术博客 www.eisc.cn

"

df -h


# umount /dev/sdb* # 取消挂载磁盘 /dev/sdb 的所有分区

# -------------------------------------删除---------------------------------

# parted -s /dev/sdb rm 5           # rm删除sdb磁盘编号5的分区

# parted -s /dev/sdb print # 查看分区

# parted -s /dev/sdb mklabel msdos # 清除分区表,方便其他工具进行分区


# 使用MBR分区表的硬盘最多只能划分4个主分区磁盘,并且MBR最大仅支持2TB的硬盘。

# GPT是一种新型磁盘模式,与我们常用的MBR磁盘相比更稳定,自纠错能力更强,一块磁盘上主分区数量不受(4个的)限制,支持大于2T的总容量及大于2T的分区(几乎没有上限,最大支持到128个分区,分区大小支持到256TB)。




# 脚本执行:

# rm -rf parted.sh ; yum install -y wget ; wget eisc.cn/file/shell/parted.sh ; chmod +x parted.sh ; ./parted.sh

目录
相关文章
|
23天前
|
弹性计算 Shell Perl
ecs服务器shell常用脚本练习(二)
【4月更文挑战第1天】shell代码训练(二)
106 1
|
26天前
|
Java Shell
SpringBoot启动脚本Shell
SpringBoot启动脚本Shell
17 0
|
3天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
28 3
|
1月前
|
存储 Linux Shell
⭐⭐⭐【Shell 命令集合 磁盘管理 】Linux 挂载文件系统 mount使用教程
⭐⭐⭐【Shell 命令集合 磁盘管理 】Linux 挂载文件系统 mount使用教程
49 0
|
6天前
|
运维 监控 Shell
利用Shell脚本编写局域网监控软件:实时监测主机连接情况
本文介绍了如何使用Shell脚本创建一个局域网监控工具,以实时检查主机连接状态。脚本包括扫描IP地址范围检测主机可达性及使用`netstat`监控ESTABLISHED连接。此外,还展示了如何每60秒将连接数数据自动提交到指定网站API,以便实时跟踪网络活动。这个自动化监控系统有助于提升网络安全性和故障排查效率。
26 0
|
7天前
|
Shell
Shell脚本之流程控制语句
Shell脚本之流程控制语句
|
8天前
|
JSON 运维 监控
训练shell常用脚本练习(三)
【4月更文挑战第14天】shell代码训练(三)
27 1
|
12天前
|
存储 弹性计算 Shell
ecs服务器shell常用脚本练习(十)
【4月更文挑战第11天】shell代码训练(十)
143 0
|
12天前
|
弹性计算 Shell Go
ecs服务器shell常用脚本练习(九)
【4月更文挑战第10天】shell代码训练(八)
136 0
|
16天前
|
弹性计算 Shell Linux
ecs服务器shell常用脚本练习(六)
【4月更文挑战第4天】shell代码训练(六)
109 0