自动格式化磁盘并挂载
Posted calvin1102
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动格式化磁盘并挂载相关的知识,希望对你有一定的参考价值。
1、背景介绍
工作当中经常会遇到需要对新来的服务器进行安装系统,在安装系统的时候需要对磁盘进行分区、格式化。往往服务器磁盘都是2块SSD+12块SATA硬盘,在对如此之多的磁盘进行分区和格式化,真是个体力活。甚至还有许多服务器的USB插口不够用,鼠标和键盘不能同时用,而且身边又没有一个USBhub,其操作难度可想而知。于是就有了以下的故事。最初的想法是在安装操作系统的时候,只用对系统盘进行分区和格式化,剩余的磁盘待装完操作系统之后再在后台手动进行分区和格式化,再后来就想着写一个shell脚本进自动分区和格式化岂不是完美,说到做到,下面就开始尝试
2、手动格式化和挂载
1)、统计磁盘信息
在后台执行lsblk -a命令既可以查看到所有的磁盘信息,下图中sda为系统盘,已经存在sda1和sda2两个分区,其他从sdb至sdi均未分区
2)、磁盘分区
执行命令parted -s /dev/sdb mklabel gpt mkpart primary ext4 0 100%对sdb磁盘进行分区,此处分区格式为gpt分区,容量为sdb磁盘的全部(这里只创建了一个分区),后面依次对sdc sdd等所有磁盘进行分区
3)、格式化分区
执行命令mkfs.ext4 -F /dev/sdb1即对磁盘sdb的第一个分区进行格式化为ext4格式,后面依次对剩下的磁盘进行格式化
4)、创建磁盘分区挂载目录
我这里将所有的磁盘分区都挂载在/home目录下的sdb、sdc、sdd....,所有我们需要在/home目录下新建目录sdb、sdc、sdd....
cd /home
mkdir sdb sdc sdd ...
5)、挂载分区
首先通过blkid命令查看所有分区的UUID
然后编辑/etc/fstab文件,将sdb1至sdi1所有分区添加进去,如下图
最后重启系统即可
3、编写shell脚本自动化
有了以上的实践,就想着写一个shell脚本能自动进行磁盘的分区和挂载,以下贴上代码
1 #!/usr/bin/bash 2 DISK=`lsblk -a |grep disk|grep -v sda|awk ‘print $1‘` 3 4 function partedDisk 5 6 for disk in $DISK 7 do 8 echo -e "\\033[33m Starting parted Disk $disk \\033[0m" 9 parted -s /dev/$disk mklabel gpt 10 parted -s /dev/$disk mkpart primary ext4 0 100% 11 done 12 echo -e "\\033[47;32m All disk parted Done! \\033[0m" 13 sleep 1s 14 15 16 function formatPartition 17 18 for disk in $DISK 19 do 20 echo -e "\\033[33m Starting format partition /dev/$disk1 \\033[0m" 21 mkfs.ext4 -F /dev/$disk1 22 sleep 0.5s 23 done 24 echo -e "\\033[47;32m All partition format Done!!! \\033[0m" 25 sleep 1s 26 27 28 function makeDir 29 30 echo -e "\\033[33m Starting make the mount diretory \\033[0m" 31 for disk in $DISK 32 do 33 mkdir /home/$disk 34 done 35 echo -e "\\033[31m The mount diretories are: \\033[0m" 36 for disk in $DISK 37 do 38 echo /home/$disk 39 done 40 echo -e "\\033[47;32m Make mount diretories Done!! \\033[0m" 41 sleep 1s 42 43 44 function mountDisk 45 46 for disk in $DISK 47 do 48 uuid=`blkid /dev/$disk1|awk ‘print $2‘|awk -F "\\"" ‘print $2‘` 49 cat <<EOF >>uuid.txt 50 UUID=$uuid /home/$disk ext4 defaults 1 2 51 EOF 52 done 53 cat uuid.txt>>/etc/fstab 54 echo -e "\\033[31m The file /etc/fstab is: \\033[0m" 55 cat /etc/fstab 56 echo -e "\\033[31m Please comfirm it and reboot your system!!! \\033[0m" 57 58 59 formatDisk 60 partedDisk 61 makeDir 62 mountDisk
以上是关于自动格式化磁盘并挂载的主要内容,如果未能解决你的问题,请参考以下文章