Skip to content

磁盘自动分区&格式化&挂载脚本

https://help.aliyun.com/document_detail/25426.html
https://my.oschina.net/u/4308169/blog/3370852

调用

有下述两种方式进行调用:

  1. 将脚本拷贝到目标机器,然后执行
  2. 使用 ssh 命令,以文件名为 init_disk.sh 为例:
    bash
    ssh 10.120.0.24 < init_disk.sh
    • 此方法可以在任意可以 ssh 登录到目标机器的地方执行(包括在本地)
    • 最佳实践:在中控机(可免密登录所有机器的运维服务器)上运行此 ssh 命令

代码

bash
#!/bin/bash

# ====================================================
# 只能处理第一块数据盘,/dev/vdb1 挂载到 /data 目录
# ====================================================
# 自动对磁盘分区、格式化、挂载
# 对机器上的 vdb 磁盘进行分区格式化,使用 << 将需要的分区指令导入给程序 fdisk
# n(新建分区), p(创建主分区), 1(分区编号为 1), 两个空白行(两个回车, 相当于将整个磁盘分一个区)
# 注意: 1 后面的两个回车(空白行)是必须的!
# ====================================================

fdisk -u /dev/vdb << EOF
n
p
1


wq
EOF

# 格式化刚刚创建好的分区
mkfs -t ext4 /dev/vdb1

# 创建挂载点目录,判断date目录是否存在,不存在则创建
if [ ! -d /data ]; then
    mkdir /data
fi

# 备份etc/fstab文件
cp /etc/fstab /etc/fstab.bak

# 在/etc/fstab里写入新分区信息
echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` /data ext4 defaults 0 0 >> /etc/fstab


#自动挂载刚刚创建的分区,并设置开机自动挂载该分区
#echo '/dev/vdb1     /data    xfs    defaults        1 2'  >> /etc/fstab
#mount -a

# 挂载分区
mount /dev/vdb1 /data

df -h

注意

  1. 代码只能处理第一块数据盘,还有具体要求:
    • 盘符:/dev/vdb1
    • 挂载目录:/data
  2. 代码 EOF 片段中的空行有其作用,不可删除