硬碟分割槽、掛載及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盤等等。
傳統硬碟採用
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
新增引數的格式為:“裝置檔案 掛載目錄 格式型別 許可權選項 自檢 優先順序”,各欄位含義如下:
- 裝置檔案:一般為裝置的路徑+裝置名稱,也可以寫唯一識別碼(Universally Unique Identifier, UUID)
- 掛載目錄:指定要掛載到的目錄,需在掛載前建立好
- 掛載格式:指定檔案系統的格式,比如Ext3、Ext4、XFS、swap、iso9660(光碟裝置)等
- 許可權選項:若設定為defaults,則預設許可權為:rw,suid,dev,exec,auto,nouser,async
- 自檢:若為1則開機後進行磁碟自檢,為0則不自檢
- 優先順序:若“自檢”欄位為1,則可對多塊硬碟進行自檢優先順序設定
編輯完成的fstab檔案如下圖所示,之後每次啟動系統時,均會自動掛載硬碟分割槽。
掛載需要注意以下3點:
- 掛載點必須為目錄,不能為檔案
- 掛載目錄需在掛載前建立好
- 若掛載目錄含有子目錄或檔案,掛載後該目錄內的子目錄或檔案不可訪問
在雙硬碟PC上安裝Ubuntu系統
目前雙硬碟電腦越來越多,博主的PC也不例外,為安裝互不影響的雙系統,博主計劃在硬碟位的固態盤中安裝windows系統,在光碟機位的機械盤中安裝Ubuntu系統;為保留機械盤中擴充套件分割槽的資料,只需在安裝時刪除原主分割槽,緊接著將該分割槽再次建立為用於安裝CentOS的主分割槽、指定分割槽的掛載點為“根(/)”即可。安裝具體步驟如下:
-
設定第一啟動盤為機械盤
-
安裝型別選擇其他
-
刪除原主分割槽
-
新建主分割槽並指定掛載點為“根(/)”
-
安裝完成,硬碟結構如下
若要在同一塊硬碟上安裝雙系統且保留其他分割槽的資料,也只需刪除、新建待裝CentOS的主分割槽,操作過程與上述步驟類似。