任務:
增加一個8T硬盤來擴容/home目錄的大小(同理擴容其他分區大小,如果是擴容/boot,則需要在fdisk中用指令a添加boot標簽)
環境:
Ubuntu16.04
步驟:
1、添加硬盤
在電腦關機(斷電)狀態下添加新硬盤。
2、查看硬盤狀況
sudo fdisk -l
因為硬盤超過2T(硬盤小于2T可以參考),此時用以下命令
$ sudo fdisk /dev/sdb
會出現一段警告:
"WARNING: The size of this disk is 8.0 TB (7995995979776 bytes).DOS partition table format can not be used on drives for volumes
larger than 2.2 TB (2199023255040 bytes).
MBR分區表(主引導):
支持的最大卷:2T(1T=1024GB)
對分區的限制:最多4個主分區或3個主分區和一個擴展分區
GPT分區表(GUID分區表):
支持最大卷:18EB(1EB=1024T)
對分區的限制:每個磁盤最多支持128個分區
8T的硬盤需要用GPT格式,而fdisk不能用于GPT分區,所以要用另外一個工具parted來分區:
$ parted /dev/sdb #選擇要分區的硬盤,此處為/dev/sdb
此時會進入命令交互式
GNU Parted 1.8.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel GPT #建立磁盤標簽
(parted) mkpart primary 0% 80%
(parted) mkpart primary 81% 100% #這里表示吧8T硬盤分成兩個區,一個從0%至80%(6.4T),另一個則是剩余的
(parted) print #顯示分區信息,可以看到分的兩個區
(parted) quit
分區完成,還需要讓內核知道添加了新的分區:
$ sudo partprobe
3、格式化
$ sudo mkfs.ext4 /dev/sdb1 #將剛剛兩個分區進行ext4格式化,磁盤格式化需要等待漫長的時間
$ sudo mkfs.ext4 /dev/sdb2
4、掛載
把硬盤分區和格式化之后就可以進行存儲數據了,但還需要一個節點來掛載這個分區(存儲需要一個路徑,可以說這個節點是一個指針,類似于window的盤符)
$ mkdir /node #把新建的文件夾作為存儲到硬盤上的路徑
$ mount -t ext4 -o rw /dev/sdb1 /node #將/node掛載到/dev/sdb1
但是最后的目的是掛載到/home下。PS:此處,不能直接將/dev/sdb1掛載在/home下,因為會把/home里面的內容被覆蓋不可見(內容還存在,但是不可見,原來的內容在原來的盤(分區)里面,但是指向那個分區的路徑被覆蓋了)。
所以先把原來/home的內容轉移到新的分區(/node)里面:
$ sudo rsync -aXS --exclude='/*/.gvfs' /home/. /node/. #這時已經將原來/home的內容移到新的硬盤上了
此時就可以把現在/home下的文件刪除(刪除/home當前分區的文件)
$ rm -rf /home/*
$ umount -l /home
接下來獲取新建分區/dev/sdb1的UUID
$ sudo blkid #找到/dev/sdb1那一行,并記錄其UUID
添加到fstab中:
$ sudo nano /etc/fstab
#在最后一行添加,然后保存并退出
UUID=???????? /home ext4 defaults 0 2
然后重新掛載分區:
$ sudo mount -a
最后更新一下引導,防止重啟出錯:
$ sudo update-grub
$ sudo update-grub2
歡迎大家一起討論!