我們在使用 Ubuntu 作為服務(wù)器系統(tǒng)時矫限,會有一個常用的操作情景,就是為服務(wù)器添加新硬盤转质。
上圖是我的工作室中的一臺開發(fā)服務(wù)器的圖片园欣,可以看到,類似這種機架式服務(wù)器休蟹,前方都會有若干個可抽插硬盤籠俊庇,我們可以比較輕松的添加或者更換硬盤。
為方便演示如何為 Ubuntu 添加新硬盤鸡挠,以及如何格式化分區(qū)和掛載,我們將使用 VirtualBox 虛擬機以及 Ubuntu Server 16.04 來進行演示搬男。
在 VirtualBox 中添加新硬盤
我們可以在 VirtualBox 中打開指定虛擬機的設(shè)置選項拣展,然后在存儲選項卡中選擇控制器SATA,然后點擊右邊的添加新硬盤圖標(biāo)缔逛,根據(jù)提示選擇創(chuàng)建的新硬盤類型备埃、容量大小、存放位置即可褐奴,大致方法與創(chuàng)建虛擬機時設(shè)置硬盤一樣按脚。以下是添加新虛擬硬盤后的截圖,我們創(chuàng)建了一個名為 NewVirtualDisk1.vid 的虛擬硬盤敦冬。
查看當(dāng)前硬盤窗臺
添加虛擬硬盤后辅搬,我們啟動虛擬機,進入系統(tǒng)后脖旱,我們可以通過 fdisk
命令檢查當(dāng)前的硬盤狀態(tài)堪遂。
sudo fdisk -l
執(zhí)行以上命令后介蛉,我們可以看到以下輸出:
這里我們可以看到,我們原來的硬盤標(biāo)為 /dev/sda 溶褪。下面還能看到一個名為 /dev/sdb 币旧,容量為 2G 的硬盤,這個就是我們剛剛新設(shè)置的 NewVirtualDisk1.vid 虛擬硬盤猿妈。
為新硬盤分區(qū)
我們將使用 fdisk
對 /dev/sdb 進行分區(qū)操作吹菱,為了簡化操作,我們會將這個新硬盤全部分為一個分區(qū)彭则,具體操作如下:
sudo fdisk /dev/sdb
進入分區(qū)工具后鳍刷,我們可以輸入 m
看指令說明:
我們接下來要創(chuàng)建新分區(qū),所以我們將會輸入
n
Command (m for help): n
>>
Partition type
p primary (0, primary, 0 extended, 4free)
e extended (container for logical partitions)
這里贰剥,我們可以給一塊硬盤創(chuàng)建最多4個主分區(qū)倾剿,和若干邏輯分區(qū),由于我們這里只為該硬盤創(chuàng)建一個分區(qū)蚌成,那么我們即創(chuàng)建一個主分區(qū)即可前痘。
Select (default p):p
Partition number (1-4, default 1): 1
Frist sector (2048-4194303, default 2048): 2048
Last sector, *sectors or *size{K,M,G,T,P} (2048-4194303, default 4194303): 4194303
>> Create a new partition 1 of type 'Linux' and of size 2GiB
Command (m for help):w
我們創(chuàng)建分區(qū)的操作為:
- p 命令創(chuàng)建一個主分區(qū)
- 選擇默認創(chuàng)建第一個分區(qū)
- 設(shè)置分區(qū)的開始位置
- 設(shè)置分區(qū)的結(jié)束位置,因為只設(shè)置一個分區(qū)担忧,因此都選擇默認選項
- w 命令保存分區(qū)設(shè)置
格式化分區(qū)
我們可以使用 mkfs
命令格式化分區(qū)芹缔,具體命令如下:
sudo mkfs -t ext4 /dev/sdb1
輸入命令后,可以看到分區(qū)格式化成功:
掛載分區(qū)
分區(qū)我們需要先創(chuàng)建一個目錄瓶盛,然后再把這個新分區(qū)掛載到目錄上最欠。具體操作如下:
# 我們在 ~ 目錄下創(chuàng)建一個 data 的目錄,并將新分區(qū)掛載到這里
mkdir ~/data
sudo mount /dev/sdb1 ~/data
掛載后惩猫,我們再通過 df
命令查看是否掛載成功:
開機自動掛載設(shè)置
我們使用以上方法掛載分區(qū)芝硬,重啟系統(tǒng)之后,分區(qū)并不會自動掛載轧房。
上圖為虛擬機重啟之后拌阴,再次運行
df
命令,我們可以看到奶镶,/dev/sdb1 分區(qū)并沒有正常掛載迟赃,為解決這一問題,我們需要修改 /etc/fstab 配置文件厂镇。為配置 /etc/fstab 纤壁,我們需要先獲取硬盤的 uuid,方法如下
ls -l /dev/disk/by-uuid
>>
lrwxrwxrwx 1 root root 10 Apr 17 11:40 287caa60-faa1-4eed-a3c0-2643afab9913 -> ../../dm-0
lrwxrwxrwx 1 root root 10 Apr 17 11:40 4fed8d9b-8318-4cf5-8380-c8d052d28306 -> ../../dm-1
lrwxrwxrwx 1 root root 10 Apr 17 11:40 54b28c93-c6c0-48e1-9e39-54157c61f519 -> ../../sda1
lrwxrwxrwx 1 root root 10 Apr 17 11:40 ea195de6-725c-4701-98c3-1fa6a44bc102 -> ../../sdb1
# 我們因為知道我們的新硬盤是 sdb捺信,因此可以配合 grep 命令查詢
ls -l /dev/disk/by-uuid | grep sdb
lrwxrwxrwx 1 root root 10 Apr 17 11:40 ea195de6-725c-4701-98c3-1fa6a44bc102 -> ../../sdb1
接下來酌媒,我們將先備份原有的 /etc/fstab 文件
sudo cp /etc/fstab /etc/fstab.bak
然后我們將以下內(nèi)容添加到 /etc/fstab 末尾
# /home/speculatecat/data
UUID=ea195de6-725c-4701-98c3-1fa6a44bc102 /home/speculatecat/data ext4 defaults 0 2
這里配置的含義如下:
- UUID 為硬盤分區(qū)的 UUID 值
- 路徑 為掛載的目標(biāo)路徑
- 分區(qū)格式 這里一般為 ext4
- 掛載參數(shù) 一般為默認 defaults
- 備份 0為不備份, 1為每天備份,2為不定期備份
- 檢測 0為不檢測馍佑,其他為優(yōu)先級
完成設(shè)置后斋否,我們嘗試重啟虛擬機,看分區(qū)是否能被自動掛載拭荤。
我們可以從截圖中看到茵臭,分區(qū)已經(jīng)能被正常掛載。
硬盤異常情況
還存在一種常見的情況舅世,如果硬盤被移除旦委,或者硬盤損壞了,配置了 fstab 自動掛載雏亚,將會出現(xiàn)不能正常啟動情況缨硝。為模擬這種情況,我們將從虛擬機中將新創(chuàng)建的虛擬硬盤刪除罢低。重啟虛擬機查辩,將出現(xiàn)以下情況:
我們可以使用命令行工具,恢復(fù)我們備份的 fstab 配置网持,即可修復(fù)完成宜岛。
cp /etc/fstab.bak /etc/fstab
我們可以看到,恢復(fù)了備份的 fstab 配置文件后功舀,系統(tǒng)能正常啟動了萍倡。