代码改变世界

Ubuntu12下挂载硬盘(9TB)Shell版

2013-02-04 17:35  听风吹雨  阅读(1428)  评论(1编辑  收藏  举报

一、背景

我们的服务器上安装了Ubuntu Server 12.04版本,由于开发环境的问题,所以没有上CenteOS或者Red Hat,我们有几块大的硬盘,需要通通挂载到root目录下,这个挂载的方式跟Windows是不太一样的。

单台机器的挂载方法可以参考:Ubuntu12下挂载硬盘(9TB),如果我们需要安装N台机器的话,我们有什么好的办法呢?难道要一台一台的安装不成?不,这个时候Shell可以帮助你。

 

二、挂载详细命令

1. 先查看一下磁盘信息

ls /dev/sd*

/dev/sda /dev/sda2 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf

/dev/sda1 /dev/sda5 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1

2. 格式化

sudo mkfs.ext4 /dev/sdb1

sudo mkfs.ext4 /dev/sdc1

sudo mkfs.ext4 /dev/sdd1

sudo mkfs.ext4 /dev/sde1

sudo mkfs.ext4 /dev/sdf1

3. 创建PV

sudo pvcreate /dev/sdb1

sudo pvcreate /dev/sdc1

sudo pvcreate /dev/sdd1

sudo pvcreate /dev/sde1

sudo pvcreate /dev/sdf1

4. 查询卷的情况,获得VG名

sudo vgdisplay

VG Name ubuntu1

5. 加入VG(注意使用查询得到的VG名)

sudo vgextend ubuntu1 /dev/sdb1

sudo vgextend ubuntu1 /dev/sdc1

sudo vgextend ubuntu1 /dev/sdd1

sudo vgextend ubuntu1 /dev/sde1

sudo vgextend ubuntu1 /dev/sdf1

6. 获得可用PE大小(Free PE)

sudo vgdisplay

Alloc PE / Size 471797 / 1.80 TiB

Free PE / Size 1912136 / 7.29 TiB

7. 获得LV名

sudo lvdisplay

LV Name /dev/ubuntu1/root

8. 增加LV

sudo lvextend -l+1912136 /dev/ubuntu1/root

9. 修改容量

sudo resize2fs /dev/ubuntu1/root

10. 查看效果

df –h

 

三、Shell脚本

我们需要通过Shell脚本,把上面的所有命令都自动化,我们可以通过内网ssh远程到每一台机器上执行。下面是具体的脚本代码:

# ssh 通过某一台机器进行远程

ssh 192.168.0.1

# 模拟用户登录,输入yes和密码

yes

password

# 创建一个g.sh的脚本

vi g.sh

# 进入脚本编写

i

#!/bin/bash

# 获取主机名

name=$(hostname)

# 下面循环格式化

for i in sdb1 sdc1 sdd1 sde1 sdf1

do

# 格式化$i,$i表示sdb1等

sudo mkfs.ext4 /dev/$i

# 循环结束

done

# 下面循环创建PV

for j in sdb1 sdc1 sdd1 sde1 sdf1

do

# 创建PV$i,$i表示sdb1等

sudo pvcreate /dev/$j

# 循环结束

done

# 下面循环加入VG

for h in sdb1 sdc1 sdd1 sde1 sdf1

do

sudo vgextend $name /dev/$h

done

# 增加LV容量

sudo lvextend -l+1912136 /dev/$name/root

# 刷新容量

sudo resize2fs /dev/$name/root

# 修改g.sh文件的权限

chmod 777 g.sh

# 执行脚本文件g.sh

./g.sh

# 执行需要输入的密码

passwod

 

四、挂载效果图

1

(图1:挂载前)

2

(图2:挂载后)