程式扎記: [Linux 文章收集] 替 Linux 新增硬碟(磁碟分割、格式化與掛載)

標籤

2013年1月24日 星期四

[Linux 文章收集] 替 Linux 新增硬碟(磁碟分割、格式化與掛載)

來源自 這裡 
Preface: 
最近要替我的 Linux Server 增加一顆硬碟,一般若是在安裝 Linux 時就將硬碟裝上去的話,就可以直接在安裝時設定好硬碟的格式化與掛載,但若是後來要加掛新的硬碟,就要自己動手設定了. 

分割硬碟: 
新的硬碟應該是沒有任何分割的,所以要先用 fdisk 來分割硬碟,但是要分割新硬碟之前,要先搞清楚新的硬碟是哪一顆,弄錯可就慘了!先用 df 來看一下目前系統硬碟的使用情形 
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 440G 46G 372G 12% /
none 5.9G 260K 5.9G 1% /dev
none 5.9G 0 5.9G 0% /dev/shm
none 5.9G 64K 5.9G 1% /var/run
none 5.9G 0 5.9G 0% /var/lock
none 5.9G 0 5.9G 0% /lib/init/rw
/dev/sdb1 459G 198M 435G 1% /data1

而剛剛裝上去的新硬碟在這裡是看不到的,因為我們都還沒開始分割,接著在看看 /dev 下面所有的硬碟情況: 
# ls /dev/[sh]d*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda5 /dev/sdb /dev/sdb1 /dev/sdc

這樣一比較就知道新的硬碟是 /dev/sdc 這顆,再用 fdisk 確認一下: 
# fdisk -l /dev/sdc
Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x40bab849
Device Boot Start End Blocks Id System

看起來沒問題,沒有任何磁碟分割表的資訊,接著開始分割,首先進入 fdisk: 
# fdisk /dev/sdc

fdisk 是一個互動模式的分割工具,輸入 m 按 Enter 可以顯示各種指令的說明. 首先我們要新增一個分割區,步驟如下: 
1. 新增分割區,輸入 n 按 Enter。
2. 選擇要建立 extended 還是 primary partition,因為我的硬碟全部只要一個分割區,所以我選 primary,輸入 p 按 Enter。
3. 選擇 Partition number,primary 分割區最多可以有四個,隨便選都可以,不過建議選 1,免得以後看起來很奇怪,輸入 1 按 Enter。
4. 輸入開始的 cylinder,用預設值就可以了,直接按 Enter。
5. 輸入結束的 cylinder,若是要用最大的容量,就直接按 Enter,若是要指定分割區的大小,就用 +size{K,M,G} 的形式指定,例如指定為 100G 的大小就輸入 +100G 再按 Enter。
6. 最後將分割表寫入硬碟,輸入 w 再按 Enter。

以上整個過程看起來就像這樣: 
 

若是要離開 fdisk 就輸入 q 按 Enter 就可以了. 接著再用 fdisk 確認分割區: 
# fdisk -l /dev/sdc
Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x40bab849
Device Boot Start End Blocks Id System
/dev/sdc1 1 243201 1953512001 83 Linux

最下面一行就是新的分割資訊,看起來沒什麼問題了,接著就要來格式化硬碟. 

格式化(Format)硬碟: 
現在新的 Linux 應該大都是用 Ext4 的檔案格式,若是較舊的 Linux 可能會用 Ext3,不過操作方法都大同小異. Linux 下格式化就用 mkfs 這個指令就可以: 
# mkfs -t ext4 /dev/sdc1

其中 -t 選項可以指定檔案系統,若是 Ext3 的話就指定為 -t ext3。等他跑完,硬碟的格式化就完成了,其輸出大約相這樣: 
 

接著就剩下掛載(mount)硬碟的工作了. 

掛載(mount)硬碟: 
在 Linux 下面的磁碟掛載設定都是寫在 /etc/fstab 中,而傳統的寫法是使用 /dev/sda1 這樣的方式指定磁碟,但是若是當磁碟更換安裝的順序時,原本的 /dev/sda1 有可能就會變成 /dev/sdb1,有時候光是分清楚哪顆是哪顆就夠頭痛的了. 

現在新的方式都是使用 UUID 來指定磁碟的,所以 /etc/fstab 看起來會像這樣: 
 

硬碟的 UUID 就像是它的身分證字號,每一顆硬碟都可不同的 UUID,使用 UUID 來指定磁碟就不會因為安裝的順序不同而產生變化,這樣做的好處是若是當磁碟常常要拔來拔去時,系統管理者不用再去更改 fstab 的設定,系統會自動尋找對應的 UUID 來掛載,很方便! 

以 Ubuntu Linux 為例,基本上在安裝好系統時,/etc/fstab 中預設就是使用 UUID 來指定磁碟,但是若要自己增加一顆新的硬碟時,要如何來指定 UUID 呢?其實很簡單,就是利用 blkid 這個指令,它可以列出所有磁碟的 UUID: 
# sudo blkid
/dev/sda1: UUID="684530e1-df5c-48d7-b3e4-eb0d47054877" TYPE="ext4"
/dev/sda5: UUID="35ddf35e-87de-4ab0-88d1-2a654d36b19a" TYPE="swap"
/dev/sdb1: UUID="9746f325-1c82-4c04-b447-b5c596eea6c1" TYPE="ext4"
/dev/sdc1: UUID=
"146d3bb3-e351-45c8-ac84-42534ce51d29" TYPE="ext4"

所以現在就是依樣畫葫蘆,把新的硬碟資訊寫進 /etc/fstab 中,在 /etc/fstab 加入下面這行: 
UUID=146d3bb3-e351-45c8-ac84-42534ce51d29 /data2 ext4 defaults 0

這樣就大功告成了,下次重開機時,系統就會把新的硬碟掛載至 /data2,若要馬上測試掛載硬碟設定是否正確,可以使用 mount: 
# mount /dev/sdc1 /data2

再用 df -h 看一下,就知道有沒有問題了. 使用 UUID 掛載硬碟,只要設定一次,以後就不用煩惱掛載的問題了,真方便 

Supplement: 
鳥哥私房菜: 第八章、Linux 磁碟與檔案系統管理 
系統管理員很重要的任務之一就是管理好自己的磁碟檔案系統,每個分割槽不可太大也不能太小, 太大會造成磁碟容量的浪費,太小則會產生檔案無法儲存的困擾。此外,我們在前面幾章談到的檔案權限與屬性中, 這些權限與屬性分別記錄在檔案系統的哪個區塊內?這就得要談到 filesystem 中的 inode 與 block 了。 在本章我們的重點在於如何製作檔案系統,包括分割、格式化與掛載等...

格式化存儲裝置成為 Ext2/Ext3/Ext4 檔案系統 
[Linux 小學堂] 柏青哥 SuSE Linux : Section 5.2 - 磁碟分割、格式化及掛載

沒有留言:

張貼留言

網誌存檔