1. 程式人生 > >硬碟分割槽、掛載及Ubuntu系統安裝

硬碟分割槽、掛載及Ubuntu系統安裝

Linux發行版按照打包方式劃分主要包括Debian系(基於Dpkg)、Red Hat系(基於RPM)、Slackware系等,其中Debian系、Red Hat系是我們所常見的,前者包括Ubuntu、Debian GNU/Linux等,後者包括Red Hat Enterprise Linux、CentOS、Fedora等。本文介紹硬碟分割槽的基礎知識、Linux系統的目錄結構及與硬碟分割槽的掛載關係、在雙硬碟PC上指定分割槽安裝Ubuntu系統的方法。

硬碟分割槽基礎知識

硬碟安裝於計算機中用於儲存資料,出廠(初始)狀態時猶如一張白紙,是不能直接往其中寫入資料的,必須經過分割槽及格式化之後才能使用,分割槽及格式化相當於為白紙劃分了不同區域(如正文區、註釋區等)並分別在不同區域內畫上了線條格以便於書寫。格式化之後的分割槽就是我們通常見到的硬碟分割槽,如Windows系統中的C盤、D盤等等。
傳統硬碟採用

MBR(Master Boot Record,主引導記錄)分割槽方式引導作業系統,與之配套使用的是BOIS(Basic Input Output System,基本輸入輸出系統)主機板,隨著技術和需求的不斷髮展,GPT(GUID Partition Table,全域性唯一標識分割槽表)硬碟及UEFI(Unified Extensible Firmware Interface,統一可擴充套件韌體介面)主機板逐漸流行,後者現已常見並將成為今後的主流方向。BOIS、UEFI是主機板相關術語,MBR、GPT屬於硬碟相關術語,其不同組合及區別如下:

BOIS + MBR

可用,可啟動作業系統。傳統PC上最常見的組合方式,硬碟的主分割槽與擴充套件分割槽之和不能超過4個,硬碟容量最大識別到2T;作業系統啟動時,順序如下圖所示:
這裡寫圖片描述

BOIS + GPT

可用,但是無法啟動作業系統。BIOS主機板可以搭配GPT硬碟來作為資料盤,但不能引導系統;若電腦同時帶有容量小於2T的硬碟和容量大於2T的硬碟,小於2T的可以用MBR分割槽方式安裝作業系統,大於2T的可以使用GPT方式來存放資料,但必須使用64位作業系統。

UEFI + MBR

可用,可啟動作業系統。為提高相容性,近幾年出現的UEFI主機板大多采用UEFI+BIOS共存的模式,並且在BIOS中整合UEFI啟動項。可以把UEFI設定成Legacy模式(傳統模式)、開啟CSM(Compatibility Support Module ,相容性支援模組)模組以支援UEFI啟動和非UEFI啟動,其效果等同於BOIS + MBR 。

UEFI + GPT

可用,可啟動作業系統。目前最常見的組合方式,也是未來的主流組合。如果要將作業系統安裝於大於2T的硬碟時,必須如此設定,否則硬碟大於2T的部分無法識別;且作業系統必須使用64位的,否則無法引導。GPT方式可識別大於2T的硬碟,且理論上支援無限個分割槽(主分割槽最多為128個),作業系統啟動時,順序如下:
這裡寫圖片描述
與傳統的BOIS + MBR啟動方式相比,少了BOIS自檢環節,會加快啟動速度;如果換上固態盤,啟動速度會明顯加快。

GPT 與 MBR

硬碟的GPT分割槽格式與MBR分割槽格式是可以互相轉換的,但從GPT轉換為MBR時,原分割槽數量不能超過4個,且大於2T的部分將不被識別;為以防萬一,轉換前備份好資料。

檔案系統

確定好分割槽格式(MBR或者GPT)後,就可建立各分割槽,在進行分割槽格式化時,需要指定檔案系統,Linux可用的檔案格式包括,Ext4、Ext3、Ext2、btrfs、JFS、XFS、FAT16、FAT32等,NTFS、FAT32則是Windows常用的檔案系統。Ext4、Ext3、XFS是目前Linux常用的檔案系統,關於Linux檔案系統的進一步論述及區別,請點選這裡

Linux系統的目錄結構及硬碟分割槽掛載

對於一塊新硬碟,假定使用MBR分割槽格式,如果安裝Linux系統時不進行分割槽,Linux系統將被安裝在整塊硬碟中(整塊硬碟為1個主分割槽),同安裝Windows時不進行硬碟分割槽時的效果一樣;具體來說,CentOS會自動在整塊硬碟中劃分出swap分割槽(大小與記憶體相當),Ubuntu則不會劃分swap分割槽(會在掛載配置檔案/etc/fstab中設定swapfile引數)。為便於系統維護和確保資料安全,在安裝作業系統前應對硬碟進行分割槽,將作業系統安裝於主分割槽。

Linux系統目錄結構

在linux系統中,目錄、字元裝置、塊裝置、套接字、印表機等都被抽象成了檔案,即“Linux系統中一切都是檔案”。Linux系統中的一切檔案都是從“根(/)”目錄開始的,並按照檔案系統層次結構標準(Filesystem Hierarchy Standard,FHS)採用樹形結構來存放檔案,且定義了常見目錄的用途,檔案和目錄名稱嚴格區分大小寫。以Ubuntu系統為例,Linux系統的檔案目錄結構如下所示:
這裡寫圖片描述

  • /usr
    這是一個非常重要的目錄,包含絕大多數的(多)使用者工具和應用程式,使用者的很多應用程式和檔案都放在這個目錄下,類似於windows下的program files目錄。
  • /lib
    存放著系統最基本的動態連結共享庫,其作用類似於Windows裡的DLL檔案,幾乎所有的應用程式都需要用到這些共享庫。
  • /var
    存放不斷擴充的內容,如經常被修改的目錄、檔案(包含各種日誌檔案)等。
  • /boot
    存放啟動Linux時使用的一些核心檔案,包括一些載入程式檔案、連結檔案、映象檔案等。
  • /home
    使用者的主目錄,在Linux中,每個使用者都有一個自己的目錄,該目錄名一般以使用者賬號命名,包含儲存的檔案、個人設定等。
  • /sbin
    s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式。
  • /bin
    s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式。
  • /etc
    存放所有的系統管理所需的配置檔案和子目錄,如interfaces(Ubuntu)、ipcfc-*(CentOS)、fstab等。
  • /tmp
    存放一些臨時檔案,在系統重啟時臨時檔案將被刪除。
  • /snap
    Ubuntu 16.04及之後版本引入了snap包管理器,與之相關的目錄、檔案(包括安裝檔案)位於/snap中。
  • /lost+found
    該目錄一般情況下是空的,當系統非法關機後會在該目錄生成一些遺失的片段。
  • /media
    linux系統會自動識別一些裝置,例如U盤、光碟機等等,當識別後,linux會把識別的裝置掛載到該目錄下。
  • /srv
    該目錄存放一些服務啟動之後需要提取的資料。
  • /cdrom
    光碟機目錄。
  • /root
    該目錄為系統管理員使用者目錄。
  • /opt
    該目錄存放安裝的第三方軟體,如Oracle資料庫就可以安裝到該目錄下。
  • /mnt
    掛載其他的檔案系統(含硬碟分割槽)的目錄。
  • /lib64
    類似lib目錄,存放64位庫檔案。

對於上述目錄,有些在安裝時可以指定單獨分割槽,Ubuntu安裝時單獨指定分割槽(對應於掛載點)的介面如下所示:

這裡寫圖片描述

關於掛載點目錄,說明以下3點:

  • /boot分割槽不是必須的。對於陳舊的BOIS主機板,無法識別1024個磁柱以外的硬碟資料,從而會導致Linux無法開機,此時需要專門劃分100M左右的磁碟分割槽作為/boot分割槽,用以引導Linux正常啟動;但隨著硬體配置及Linux版本的提升,近幾年生產的主機板已經解決了上述問題,且劃分/boot分割槽後,更新Linux核心幾次後會導致分割槽容量不足,因此若非使用陳舊BOIS主機板,不建議單獨劃分/boot分割槽。
  • swap分割槽也不是必須的。swap分割槽類似windows系統的虛擬記憶體,當實際記憶體不夠用時,會使用swap分割槽作為虛擬記憶體來交換資料,其大小一般設定為實際記憶體的1-4倍。若安裝時不建立swap分割槽,CentOS系統會自動建立與實際記憶體大小相當的分割槽作為swap分割槽,Ubuntu系統則不建立swap分割槽。
  • 可為/usr/local、/opt、/home等目錄單獨建立分割槽。Linux系統在使用過程中,會不斷安裝軟體,此時將/usr/local、/opt單獨分割槽,可將新安裝的軟體放置於單獨分割槽中,從而節約根目錄所在分割槽的磁碟空間、優化系統目錄的管理結構,尤其是當需要重新安裝Linux系統時,可僅格式化根目錄所在分割槽並將/usr/local、/opt指向原獨立分割槽,以儲存/usr/local、/opt目錄中的原有資料;/home目錄單獨分割槽也有類似效果。在安裝時不建立上述目錄對應的單獨分割槽也沒有關係,可在系統安裝完成後再將硬碟分割槽掛載到/usr/local、/opt、/home等目錄,具體方法如下。

硬碟分割槽掛載

在linux作業系統中, 掛載是指將一個裝置(通常是儲存裝置)掛接到一個已存在的目錄上。 我們要訪問硬碟分割槽中的檔案,必須將檔案所在的硬碟分割槽掛載到一個已存在的目錄上, 然後通過訪問這個目錄來訪問硬碟分割槽。可以這樣認為,掛載目錄是硬碟分割槽的一個快捷方式,是訪問硬碟分割槽的入口。

  • 檢視硬碟分割槽
    在掛載硬碟分割槽前,應先檢視分割槽結構,確定待掛載硬碟分割槽的裝置名稱。
# 顯示所有可用的硬碟分割槽
$ sudo fdisk -l
  • 1
  • 2

這裡寫圖片描述

上圖顯示識別了2塊硬碟,裝置名稱分別為/dev/sda、/dev/sdb,前者容量為232.9Gib,後者容量為465.8Gib;兩塊硬碟均建立了MBR分割槽表,/dev/sda1表示第一塊硬碟上的第一個主分割槽,/dev/sda2表示第一塊硬碟上的擴充套件分割槽,/dev/sda5表示第一塊硬碟上的第一個邏輯分割槽,/dev/sda6表示第二個邏輯分割槽,/dev/sdb1 ~ /dev/sdb8的含義與之類似。

  • 臨時掛載硬碟分割槽
    假定我們需要讀取/dev/sdb5、/dev/sdb6分割槽中的資料,則將其掛載到/mnt/D、/mnt/E目錄,步驟如下:
# 建立掛載目錄
$ sudo mkdir /mnt/D
$ sudo mkdir /mnt/D

# 臨時掛載硬碟分割槽
$ sudo mount /dev/sdb5 /mnt/D
$ sudo mount /dev/sdb6 /mnt/E

# 目錄結構樹形顯示軟體安裝
$ sudo apt-get install tree
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

執行上述命令後即完成掛載,目錄結構如下圖所示:
這裡寫圖片描述

臨時掛載的硬碟分割槽,在系統重啟後會失效,若要再次訪問硬碟分割槽,需重新掛載,為解決該問題,可永久掛載硬碟分割槽。

  • 永久掛載硬碟分割槽
    掛載資訊儲存於/ect/fstab檔案中,按規定格式編輯該檔案,新增掛載引數,可在系統每次啟動時自動掛載設定好的硬碟分割槽,達到永久掛載的效果。命令如下:
# 編輯/ect/fstab檔案
$ sudo gedit /etc/fstab
  • 1
  • 2

新增引數的格式為:“裝置檔案 掛載目錄 格式型別 許可權選項 自檢 優先順序”,各欄位含義如下:

  1. 裝置檔案:一般為裝置的路徑+裝置名稱,也可以寫唯一識別碼(Universally Unique Identifier, UUID)
  2. 掛載目錄:指定要掛載到的目錄,需在掛載前建立好
  3. 掛載格式:指定檔案系統的格式,比如Ext3、Ext4、XFS、swap、iso9660(光碟裝置)等
  4. 許可權選項:若設定為defaults,則預設許可權為:rw,suid,dev,exec,auto,nouser,async
  5. 自檢:若為1則開機後進行磁碟自檢,為0則不自檢
  6. 優先順序:若“自檢”欄位為1,則可對多塊硬碟進行自檢優先順序設定

編輯完成的fstab檔案如下圖所示,之後每次啟動系統時,均會自動掛載硬碟分割槽。
這裡寫圖片描述

掛載需要注意以下3點:

  • 掛載點必須為目錄,不能為檔案
  • 掛載目錄需在掛載前建立好
  • 若掛載目錄含有子目錄或檔案,掛載後該目錄內的子目錄或檔案不可訪問

在雙硬碟PC上安裝Ubuntu系統

目前雙硬碟電腦越來越多,博主的PC也不例外,為安裝互不影響的雙系統,博主計劃在硬碟位的固態盤中安裝windows系統,在光碟機位的機械盤中安裝Ubuntu系統;為保留機械盤中擴充套件分割槽的資料,只需在安裝時刪除原主分割槽,緊接著將該分割槽再次建立為用於安裝CentOS的主分割槽、指定分割槽的掛載點為“根(/)”即可。安裝具體步驟如下:

  • 設定第一啟動盤為機械盤
    這裡寫圖片描述

  • 安裝型別選擇其他
    這裡寫圖片描述

  • 刪除原主分割槽
    這裡寫圖片描述

  • 新建主分割槽並指定掛載點為“根(/)”
    這裡寫圖片描述

  • 安裝完成,硬碟結構如下
    這裡寫圖片描述

若要在同一塊硬碟上安裝雙系統且保留其他分割槽的資料,也只需刪除、新建待裝CentOS的主分割槽,操作過程與上述步驟類似。