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

目录
相关文章
|
1月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
75 1
|
20天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
45 2
6种方法打造出色的Shell脚本
|
7天前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
22 1
|
11天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
31 2
|
25天前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
43 6
|
22天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
1月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
67 12
|
1月前
|
存储 运维 监控
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
54 2
|
2月前
|
Shell
shell脚本变量 $name ${name}啥区别
shell脚本变量 $name ${name}啥区别
|
2月前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
471 2