1. 程式人生 > 實用技巧 >Linux物理儲存結構以及磁碟劃分

Linux物理儲存結構以及磁碟劃分

在上一篇講解mount命令的時候,有提到過掛載光碟機或U盤,那麼我們如何知道光碟機就是在/dev/cdrom呢?在Linux系統中一切都是檔案,硬體裝置也不例外。既然是檔案,就必須有檔名稱。系統核心中的udev裝置管理器會自動把硬體名稱規範起來,並且一直管理/dev目錄下的裝置檔案。Linux系統中常見的硬體裝置的檔名稱如下表:

裝置名稱 檔名稱
SCSI/SATA/U盤 /dev/sd[a-p]
軟盤驅動器 /dev/fd[0-7]
印表機 //dev/lp[0-2] (25 針印表機);/dev/usb/lp[0-15] (USB 介面)
光碟機 /dev/cdrom
滑鼠 /dev/mouse
磁帶機 /dev/st0或/dev/ht0或/dev/tape
IDE裝置 /dev/hd[a-d]

由於 IDE 介面的磁碟驅動器幾乎已經被淘汰,太少見了!因此現在連 IDE 介面的磁碟檔名也都被模擬成 /dev/sd[a-p] 了。而一臺主機上可以有多塊硬碟,因此係統採用a~p來代表16塊不同的硬碟。

我們拿一個裝置名稱分析一下/dev/sda5:

  • \dev:硬體裝置檔案所在目錄
  • sd:表示是儲存裝置,SCSI/SATA/U盤
  • a:硬碟的順序號,表示系統中同類介面中第一個被識別到的裝置
  • 5:表示這個裝置是一個邏輯分割槽,主分割槽或擴充套件分割槽的編號從1開始,到4結束;邏輯分割槽從編號5開始。

一、在虛擬機器中新增新的硬碟裝置

首先我們需要關閉我們的系統,在虛擬的控制介面,點選設定:

新增一個儲存器,這裡我們選 建立新的虛擬機器盤

虛擬硬碟設定接著進入硬碟嚮導介面,這裡有很多型別的硬碟。這裡我們用預設的vdi即可

硬碟大小這裡有2種類型,固定大小就是分配之後就佔用這麼大。動態就是用了才佔用這麼多空間,這個在第一章講解環境安裝的時候有說過,這個看個人的習慣了,這裡我選擇固定分配

確認設定設定好大小和路徑之後,點選確定。

在虛擬機器中模擬添加了硬碟裝置後就應該能看到抽象成的硬碟裝置檔案了。按照前文講解的udev服務命名規則,第二個被識別的SCSI裝置應該會被儲存為/dev/sdb,這個就是硬碟裝置檔案了,但在開始使用該硬碟之前還需要進行分割槽操作。

二、fdisk命令

我們在安裝作業系統的過程中已經對系統硬碟進行了分割槽,但如果新添加了一塊硬碟,想要正常使用,該如何操作呢?在 Linux 中有專門的分割槽命令 fdiskparted。其中 fdisk 命令較為常用,但不支援大於 2TB 的分割槽;如果需要支援大於 2TB 的分割槽,則需要使用 parted 命令。 fdisk命令中的引數以及作用如下表:

引數 作用
-m 檢視全部可用的引數
-n 新增新的分割槽
-d 刪除某個分割槽資訊
-l 列出所有可用的分割槽型別
-t 改變某個分割槽的型別
-p 檢視分割槽表資訊
-w 儲存並退出
-q 不儲存直接退出

$ fdisk -l

使用 "fdisk -l" 檢視分割槽資訊,能夠看到我們新增的兩塊硬碟(/dev/sda 和 /dev/sdb)的資訊。其上半部分態是硬碟的整體狀態,/dev/sda 硬碟的總大小是 20 GB,/dev/sdb的硬碟總大小是10GB。

資訊的下半部分是分割槽的資訊,共 7 列,含義如下:

  • Device:分割槽的裝置檔名。
  • Boot:是否為啟動引導分割槽,在這裡 /dev/sda1 為啟動引導分割槽。
  • Start:起始柱面,代表分割槽從哪裡開始。
  • End:終止柱面,代表分割槽到哪裡結束。
  • Blocks:分割槽的大小,單位是 KB。
  • id:分割槽內檔案系統的 ID。在 fdisk 命令中,可以 使用 "i" 檢視。
  • System:分割槽內安裝的系統是什麼。

我們以硬碟 /dev/sdb 為例來做練習,命令如下:

fdisk /dev/sdb

互動介面的等待輸入指令的位置,輸入 m 得到幫助,這裡我們輸入m來看下幫助資訊:

命令 說 明
a 設定可引導標記
b 編輯 bsd 磁碟標籤
c 設定 DOS 作業系統相容標記
d 刪除一個分割槽
1 顯示已知的檔案系統型別
m 顯示幫助選單
n 新建分割槽
P 顯示分割槽列表
q 不儲存退出
s 新建空白 SUN 磁碟標籤
t 改變一個分割槽的系統型別
w 儲存退出

這裡我們輸入引數n嘗試新增新的分割槽。系統會要求您是選擇繼續輸入引數p來建立主分割槽,還是輸入引數e來建立擴充套件分割槽。這裡輸入引數p來建立一個主分割槽:

在確認建立一個主分割槽後,系統要求您先輸入主分割槽的編號。在前面提到,主分割槽的編號範圍是1~4,因此這裡輸入預設的1就可以了。接下來系統會提示定義起始的扇區位置,這裡敲擊回車鍵保留預設設定即可,系統會自動計算出最靠前的空閒扇區的位置。最後,系統會要求定義分割槽的結束扇區位置,這其實就是要去定義整個分割槽的大小是多少。我們不用去計算扇區的個數,只需要輸入+3G即可創建出一個容量為3GB的硬碟分割槽。

上述幾步執行完成後,Linux系統會自動把這個硬碟主分割槽抽象成/dev/sdb1裝置檔案。我們可以使用file命令檢視該檔案的屬性。

$ file /dev/sdb1

三、格式化分割槽以及掛載分割槽

如果硬體儲存裝置沒有進行格式化,則Linux系統無法得知怎麼在其上寫入資料。因此,在對儲存裝置進行分割槽後還需要進行格式化操作。在Linux系統中用於格式化操作的命令是mkfs。

$mkfs /dev/sdb1

終於完成了儲存裝置的分割槽和格式化操作,接下來就是要來掛載並使用儲存裝置了。與之相關的步驟也非常簡單:首先是建立一個用於掛載裝置的掛載點目錄;然後使用mount命令將儲存裝置與掛載點進行關聯;最後使用df -h命令來檢視掛載狀態和硬碟使用量資訊。

這裡我們就完成了硬碟的新增、格式化以及掛載。