一、背景
我們的服務器上安裝了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:掛載前)
(圖2:掛載後)
作者:聽風吹雨
出處:http://gaizai.cnblogs.com/