原文:https://blog.csdn.net/hurry0808/article/details/78882111
硬盤分區基礎知識
硬盤安裝於計算機中用於存儲數據,出廠(初始)狀態時猶如一張白紙,是不能直接往其中寫入數據的,必須經過分區及格式化之后才能使用,分區及格式化相當於為白紙划分了不同區域(如正文區、注釋區等)並分別在不同區域內畫上了線條格以便於書寫。格式化之后的分區就是我們通常見到的硬盤分區,如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
- 臨時掛載硬盤分區
假定我們需要讀取/dev/sdb5、/dev/sdb6分區中的數據,則將其掛載到/mnt/D、/mnt/E目錄,步驟如下:
上圖顯示識別了2塊硬盤,設備名稱分別為/dev/sda、/dev/sdb,前者容量為232.9Gib,后者容量為465.8Gib;兩塊硬盤均建立了MBR分區表,/dev/sda1表示第一塊硬盤上的第一個主分區,/dev/sda2表示第一塊硬盤上的擴展分區,/dev/sda5表示第一塊硬盤上的第一個邏輯分區,/dev/sda6表示第二個邏輯分區,/dev/sdb1 ~ /dev/sdb8的含義與之類似。
# 創建掛載目錄
$ 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
- 永久掛載硬盤分區
掛載信息存儲於/ect/fstab文件中,按規定格式編輯該文件,新增掛載參數,可在系統每次啟動時自動掛載設置好的硬盤分區,達到永久掛載的效果。命令如下:
運行上述命令后即完成掛載,目錄結構如下圖所示:
臨時掛載的硬盤分區,在系統重啟后會失效,若要再次訪問硬盤分區,需重新掛載,為解決該問題,可永久掛載硬盤分區。
# 編輯/ect/fstab文件
$ sudo gedit /etc/fstab
- 設備文件:一般為設備的路徑+設備名稱,也可以寫唯一識別碼(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的主分區,操作過程與上述步驟類似。