我們在使用VPS主機時常會遇到增加硬碟容量的情況,像阿里雲、騰訊雲、Linode這樣的都是可以直接追加硬碟的,如果用的是SolusVM VPS主機則可以直接在SolusVM中增加硬碟容量。但是硬碟容量擴大後,還需要我們手動掛載硬碟分割區。 給Linux VPS主機硬碟擴充一般來說有兩種方式,一種是常用的,即將硬碟分割區掛載到某一個目錄下;另一種則是直接在原來的硬碟上分割區上擴充。第一種擴容硬碟的方式操作起來簡單,但是後期如果想要再增加硬碟的話面臨著重新增加分割區的麻煩。 第二種方式比較適合經常擴容硬碟的用戶,可以實現動態擴容且不影響原有的目錄結構。本篇文章就來分享一下利用fdisk指令給Linux VPS主機硬碟擴容方法,fdisk指令用來觀察硬碟實體使用情況,也可對硬碟分割區。它採用傳統的問答式介面,操作起來有點麻煩。 更多的關於Linux VPS主機操作教學這裡還有:

  1. Linux系統磁碟空間佔滿的解決方法-No Space Left on Device錯誤
  2. aaPanel寶塔免費VPS控制面板國際版-自動申請SSL多PHP版本共存
  3. OneDrive變身外鏈網磁碟-Aria2+Aria2Ng+OneIndex自動上傳OneDrive
PS:2019年3月1日更新,如果你的硬碟儲存總是處在變動當中,可以嘗試動態擴容,「一勞永逸」地解決儲存容量不足的問題:Linux獨立伺服器和VPS主機硬碟動態擴容-LVM邏輯磁碟區擴大縮小方法。

一、fdisk指令

fdisk指令語法:
fdisk(选项)(参数)
選項:
-b<分区大小>:指定每个分区的大小;
-l:列出指定的外围设备的分区表状况;
-s<分区编号>:将指定的分区大小输出到标准输出上,单位为区块;
-u:搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址;
-v:显示版本信息。
參數: 設備檔案:指定要進行分區或顯示分區的硬碟設備檔案。 範例: 首先選擇要進行操作的磁碟:
[root@localhost ~]# fdisk /dev/sdb
輸入m列出可以執行的指令:
command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
命令說明如下:
a 切換可引導標誌b 編輯bsd disklabel c 切換dos相容性標誌d 刪除分割區l 列出已知的分割區類型m 列印此選單n 新增一個分割區o 建立一個新的空DOS分割區表p 列印分割區表q 退出而不儲存變更s 建立一個新的空的Sun磁碟標籤t 變更分割區的系統ID u 改變顯示/輸入單位v 驗證分割區表w 將資料表寫入磁碟並退出x 額外功能(專業)

二、Linux VPS硬碟分區

以下操作就是使用fdisk指令進行磁碟:/dev/vda→檢視分割區→新建分割區→設定分割區為3(原來已經有了1和2了)→檢視分割區。 (點擊放大)

三、Linux VPS硬碟掛載

命令一:格式化分割區
mkfs.ext4 /dev/vda3   //格式化分区(也可先选ext3)
命令二:開機自動掛載
vim /etc/fstab 
加入:
/dev/sdb1(磁盘分区)  /data1(挂载目录-需要提前创建好) ext4(文件格式,也可写ext3)defaults  0  0 
你也可以照著你來的文件的格式來寫,這樣就不會錯了。如下圖: 指令三:掛載所有目錄
mount -a(注意是英文的-)
掛載成功。

四、Linux VPS硬碟動態擴容

上面我們透過硬碟掛載,成功地將新分割區掛載到了伺服器的某一個目錄下,這樣存在一個問題就是後期如果還要增大硬碟的話,又得掛載另一個目錄,操作簡單,但實用性不強。 按照上面給硬碟分割區做好後,輸入指令t,再輸入:8e,這時將分割區格式轉換為LVM了。如下圖: 儲存分割區後重啟好了VPS後,建立邏輯捲和邏輯磁碟區組並激活,指令如下:
pvcreate /dev/vda3  //创建物理卷
vgcreate qyfoutt /dev/vda3   //创建逻辑卷组
vgchange -ay qyfoutt //激活逻辑卷组
vgdisplay qyfoutt | grep "Total PE"  //查看该卷组所有的PE
lvcreate -l 17919 -n qimm qyfoutt  //创建逻辑卷
mkfs.ext4 /dev/qyfoutt/qimm //格式化逻辑卷
這裡我建立一個名為qyfoutt的邏輯磁碟區組,共70GB可供分配。 然後創建了一個名為qimm的邏輯卷,將70GB都賦予它。現在我們就可以像上面那樣編輯/etc/fstab 文件,新增加的/dev/qyfoutt/qimm 分割區掛載到某一個目錄下了。格式如下:
/dev/qyfoutt/qimm     /ttfou            ext4    defaults        0 0
動態擴容。 假如又增加了硬碟,這裡我們就可以將新的硬碟空間增加在原來的硬碟上了。按照上面的方法新建分割區(這裡我新建分割區是vda4)並設定為LVM格式。 使用以下方法擴容:
pvcreate /dev/vda4  //创建物理卷
vgextend qyfoutt /dev/vda4  //将新硬盘加入卷组
vgdisplay qyfoutt | grep "Total PE"  //查看所有PE
lvresize -l 30718 /dev/qyfoutt/qimm  //重新规定大小
resize2fs /dev/qyfoutt/qimm //扩容
重啟後我們可以看到硬碟在原來的基礎上擴容成功了。

五、同一個分割區掛載多個目錄

上面我們用到的方法是將分割區掛載在一個目錄下,如果想要將一個分割區掛載多個目錄下,可以使用bind mount指令。
mount /dev/vda4 /data/wwwroot
mount --bind /data/wwwroot /home
上述指令我先將分割區vda4掛載在/data/wwwroot目錄下,然後bind mount到home目錄下,這樣home目錄和wwwroot目錄都使用了vda4分割區了。如果要取消掛載就可以使用下列命令:
umount /home
umount /dev/vda3

六、總結

如果你使用指令dh和fdisk查看硬碟顯示不一樣,可能是分割了但是沒有將容量擴充到硬碟上,請執行resize2fs 擴充指令。如果你發現dh和fdisk查看分割區和硬碟容量一致,但還在大量空閒磁碟,那應該是沒有分割區。 請先把空閒的硬碟進行分區,如果原來已經存在LVM格式的分割區,你可以將新的分割區直接擴容在LVM格式的硬碟上。硬碟操作前請做資料備份,稍有不慎就會遺失原有的數據,「刪庫跑路」都是這麼搞出來 的。

發表評論