# 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