收藏文章 楼主

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

版块:自动化运维linux   类型:置顶   作者:小绿叶技术博客   查看:5788   回复:5   获赞:3   时间:2019-04-02 15:30:24

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

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

# 卸载磁盘提示 磁盘忙无法卸载。 lsof /data/   ; kill -9 pid ; umout /data  查看挂载目录占用的pid 并kill 后,再卸载

partedManual(){


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

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

umount /dev/sda*                                              # 将磁盘 /dev/sda   取消挂载,才能建立 分区表gpt

parted -s /dev/vdb mklabel gpt                         # 将vdb 转为gpt 动态分区,支持2T以上容量。 注意:这等于格式化整个磁盘

parted -s /dev/vdb mkpart primary 2048s 100%

                                                                                          # 新建主分区,分区对齐 2048 或者 4096   分配额 100%

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

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


mkfs -t ext4 /dev/vdb1                                    # 格式化主分区 格式 为 ext4 如果读写速度慢,可以格式化为 ntfs

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


有些梦虽然遥不可及,但并不是不可能实现。 
回复列表
默认   热门   正序   倒序

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

Powered by ddoss.cn 12.0

©2015 - 2024 ddoss

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息