一、Linux的設備文件分類
1、在Linux系統中設備文件是用來與外接交互的接口,它將內核中的硬件設備與文件系統關聯起來,讓用戶可以像操作普通文件一樣來操作硬件設備,同時也為開發者提供了方便而強大的應用程序接口。 2、Linux的設備都以文件的形式存在/dev中,根據設備文件的不同,又分為【字符設備文件】和塊【設備文件】。 | ||
序號 | Linux的設備文件分類 | 說明 |
1 | 字符設備文件 | 1、字符設備文件使用【c】作為標識; 2、字符設備文件的存取是以字符流的方式來進行的,一次傳送一個字符(常見的字符設備有:終端【TTY】、打印機、鼠標、鍵盤、繪圖儀等);字符設備文件有時也叫做【raw】設備文件; |
2 | 塊設備文件 | 1、塊設備文件使用【b】作為標識; 2、塊設備文件是以數據塊的方式來存取的(常見的設備有:硬盤、U盤等)【即:系統通過塊設備文件存取數據的時候,先從內存中的buffer中讀或寫數據;而不是直接傳送數據到物理磁盤,這種方式有效的提高了磁盤的I/O性能】 |
二、Linux的磁盤存儲管理
?2.1、MBR與GPT
序號 | MBR | GPT |
1 | MBR(Master Boot Record)主引導記錄;它由三部分組成【主引導程序】【硬盤分區表】【硬盤有效標志】,共占用512字節 | GPT(GUID Partition Table)全局唯一標識分區表,是一個物理硬盤的分區結構,它用來替代BIOS中的主引導記錄分區表(MBR) |
2 | 1、主引導程序(main?boot loader)占用446個字節; 2、硬盤分區表(disk partition table)簡稱DPT,占用64個字節(主要用于對硬盤分區有多少以及每一個分區的大小都記錄在這里); 3、硬盤有效標志(magic number)占用2個字節,固定為55AA | |
3 | MBR的特點: 由于MBR分區的分區表保存在硬盤的第一個扇區,且只有64個字節大小,所以最多只能有四個表項【即:我們只能把硬盤分為4個主分區;或者分成小于等于3個主分區在加上一個擴展分區】 | GPT的特點: 《1》對分區的數量沒有限制; 《2》GPT可管理硬盤大小最大為18EB,幾乎是無限大了; |
4 | MBR分區的優缺點: 《1》優點:MBR的分區簡單,支持度高,很多操作系統都可以從MBR分區的硬盤啟動。 《2》缺點:MBR分區不能識別大于2T的硬盤空間,且不能有大于2T的分區。 | GPT分區缺點: 《1》要從GPT分區的硬盤啟動,需要UEFI主板、硬盤使用GPT分區、操作系統支持GPT這三個硬性條件。 《2》必須使用64位系統。 |
傳統BIOS主要支持MBR引導,UEFI則是取代傳統BIOS,因為UEFI加入了對新硬件的支持。 |
?2.2、BIOS與UEFI
序號 | BIOS | UEFI |
1 | BIOS(Basic Input Output System)基本輸入輸出系統;是最古老的一種系統固件和接口,采用匯編語言進行編程,并使用中斷來執行輸入和輸出操作,在它剛出現的時候就確定了個人計算機生態系統的基本框架 | UEFI(Unified Extensible Firmware Interface)統一可擴展固件接口;它定義了一種在操作系統和平臺固件之間的接口標準。 這種接口用于操作系統自動從預啟動的操作環境(即:在系統啟動之后,但在操作系統開始運行之前)加載到操作系統上,從而使開機程序化繁為簡,節省時間。 注意:準確的說UEFI是一種規范,不同廠商根據該規范對UEFI的實現,并做出個人電腦固件后,該固件就是UEFI固件 |
UEFI比BIOS先進的三個方面: 《1》可讀取分區表; 《2》可訪問某些特定文件系統中的文件; 《3》可執行特定格式的代碼。 可以說UEFI更像是一個簡易的操作系統。 | ||
UEFI的目標是取代傳統BIOS,它不支持MBR模式,僅支持GPT格式。 不過,近年出現的UEFI主板,采用UEFI+BIOS共存模式,并且BIOS中集成UEFI啟動項。 |
?2.3、Linux操作系統對GPT+UEFI支持列表
注意:下表中【1=BIOS+MBR】、【2=UEFI+GPT】;
簡單總結一下就是:
《1》紅帽系的Linux操作系統Centos6.X之下的(如Centos5.x、Centos4.x)64位系統不支持【UEFI+GPT】作為系統盤,只支持【BIOS+MBR】做系統盤。
《2》紅帽系的Linux操作系統Centos6.X及其更高版本(Fedora18及其更高版本)的64位系統支持【UEFI+GPT】【BIOS+MBR】這兩種做系統盤(必須要使用UEFI)和數據盤。
《3》德班系的Linux操作系統Debian8.0及其更高版本(Ubuntu13.04及其更高版本)的64位系統支持【UEFI+GPT】【BIOS+MBR】這兩種做系統盤(必須要使用UEFI)和數據盤。
《4》SUSE的Linux系統是在SUSE Linux Enterprise Server 11 SP3及其更高版本的64位系統支持【UEFI+GPT】【BIOS+MBR】這兩種做系統盤(必須要使用UEFI)和數據盤。
《5》FreeBSD的系統是在FreeBSD10.1及其更高版本的64位系統支持【UEFI+GPT】【BIOS+MBR】這兩種做系統盤(必須要使用UEFI)和數據盤。
?2.4、使用fdisk工具劃分磁盤分區實操
fdisk是Linux下的一款功能強大的磁盤分區管理工具(既可以觀察硬盤的使用情況;也可以對磁盤進行分割操作)fdisk工具不支持GPT格式分區。且fdisk工具對分區有大小限制(最大只能劃分小于2T的磁盤) Linux下類似的磁盤分區管理工具還有【cfdisk】、【parted】等,parted是一個功能更為強大的分區工具,它支持GPT格式分區。 | ||
序號 | 查詢命令 | 說明 |
1 | fdisk -l | 可查看Linux中所有的磁盤分區信息; |
2 | fdisk -l device | 可查看Linux中指定磁盤的分區信息; (如只查看/dev/sdb設備的分區信息命令【fdisk -l /dev/sdb】) |
3 | fdisk -h | 可查看fdisk工具的使用幫助信息; |
fdisk的使用分為兩個部分【查詢】和【交互操作】可以通過【fdisk device】進入指定磁盤的分區命令交互界面。 fdisk的磁盤分區命令交互界面命令說明如下(如:進入/dev/sdb磁盤設備命令是【fdisk /dev/sdb】) | ||
序號 | 磁盤分區交互命令 | 說明 |
1 | d | 刪除一個分區 |
2 | l | 列出已知的分區類型 |
3 | m | 顯示fdisk每個交互命令的詳細含義 |
4 | n | 增加一個新的分區 |
5 | p | 顯示分區信息 |
6 | t | 改變分區類型 |
7 | F | 列出未分區的空閑區 |
8 | q | 退出交互操作,不保存操作的內容 |
9 | w | 寫分區表信息寫入到硬盤,保存操作退出 |
?
????????通過使用【fdisk -l】【df -h】這兩個命令我們可以查看到當前的【/dev/sdb】設備還沒有進行對應的分區和掛載使用,所以我們接下來就對【/dev/sdb】設備進行分區實操與掛載:
#使用fdisk命令對【/dev/sdb】新硬盤進行分區操作實戰#1-使用fdisk工具打開【/dev/sdb】硬盤設備命令
fdisk /dev/sdb#2-查看fdisk分區所有命令選項及其說明幫助
m#2-查看【/dev/sdb】硬盤設備的分區信息命令
p#3-添加新分區
n#4-創建一個主分區操作(按下p表示主分區,分區號不用填寫默認即可,扇區號也不用填寫默認即可,磁盤大小需要使用+size{K,M,G,T,P}來設置【如設置這個分區的大小為2g則輸入+2g即可】)主分區只能創建3個,其他的就是拓展分區了#5-創建擴展分區是在創建第四個分區的時候創建的(分區號、扇區號不用填寫,且磁盤大小也不用填寫【表示將剩下的所有磁盤空間都作為擴展分區】)#6-創建擴展分區的邏輯分區操作所使用的空間總容量是擴展分區的容量(分區號、扇區號都不用操作默認即可,磁盤大小根據自己需要設置也是一樣的使用+size{K,M,G,T,P}來設置【如設置這個分區的大小為1g則輸入+1g即可】;需要注意的是這里設置的邏輯分區大小不能夠大于擴展分區所擁有的總空間)#7-分區完成后先查看磁盤分區情況,若沒有問題則輸入w保存分區信息
p
w#8-需要對所有新創建的分區逐一進行格式化(格式化的格式一般選擇ext4或者xfs【我們這里使用ext4格式對/dev/sdb1進行格式化】)
#【需要特別注意第四個分區是擴展容器不能被格式化】
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2
mkfs.ext4 /dev/sdb3
mkfs.ext4 /dev/sdb5
mkfs.ext4 /dev/sdb6#9-逐一掛載格式化好的分區到指定的路徑下(這里的mount掛載分區時不用單獨指定格式,會自動識別)
#手動指定/dev/sdb1分區的格式為ext4且掛載到/mnt路徑下
mount -t ext4 /dev/sdb1 /mnt
#直接將/dev/sdb1設備掛載到默認的/mnt目錄下
mount /dev/sdb1 /mnt#10-創建/data1目錄且將/dev/sdb2分區掛載到該目錄下(剩下的其他分區可根據需要自行掛載)
mkdir /data1
mount /dev/sdb2 /data1
#如果需要對指定分區的類型進行修改(則操作如下)#1-使用fdisk命令進入指定磁盤(如:/dev/sdb)
fdisk /dev/sdb#2-查看磁盤的分區情況
p#3-查看當前磁盤支持的所有類型命令
l#4-修改磁盤類型(輸入t進入修改模式,輸入磁盤分區編號【如修改分區5的類型】,輸入類型代碼【如修改為HPFS/NTFS/exFAT】)命令
t
5
7#5-查看磁盤的分區情況
p#6-若修改的指定磁盤分區類型正確則保存修改后退出命令
w
????????注意:如果需要使用fdisk對磁盤進行分區等實操(最好是新創建一個磁盤進行操作),我們可以在虛擬機(如VMware對應的Linux系統啟動前先編輯新增一個硬盤就可以了,在進行如下操作前最好是系統關機后再操作)。
????????選中需要新增硬盤的Linux系統-->點擊鼠標右鍵【設置】-->【硬件】-->【添加】-->【硬盤】-->【下一步】-->【SCSI(推薦)】-->【下一步】-->【創建新虛擬磁盤】-->【下一步】-->【輸入自己需要設置的硬盤大小】-->【將虛擬磁盤存儲為單個文件】-->【下一步】創建完成后,關閉該虛擬機設置界面。然后重啟該Linux系統。在VMware虛擬機上給Linux系統新增一塊硬盤的詳細操作如下圖所示:
?2.5、使用parted工具劃分磁盤分區實操——推薦使用
parted磁盤管理工具可劃分GPT格式分區,且對劃分的磁盤分區沒有大小限制;更適合現在磁盤的情況(目前磁盤一般都4T起步了); 如果系統沒有parted命令,則可以執行【yum -y install parted】命令直接安裝 | ||
序號 | parted查詢命令 | 說明 |
1 | parted -l | 列出所有塊設備的分區配置 |
2 | parted -h | 列出關于parted工具的參數內容及其說明信息 |
parted的使用分為兩個部分【查詢】和【交互操作】可直接輸入【parted】進入磁盤的分區命令交互界面(默認進入第一塊磁盤)。 | ||
序號 | parted交互模式常用參數 | 說明 |
1 | | 查看磁盤的分區信息,可簡寫為p;該命令有三個選項: 《1》devices 顯示系統的所有塊設備 《2》free 顯示當前磁盤的所有信息(且顯示磁盤的剩余空間) 《3》list,all 顯示所有磁盤信息 |
2 | select | 選擇需要編輯的設備(如切換到/dev/sdb設備命令:select /dev/sdb) 【因為直接輸入parted進入命令交互模式后默認使用的是系統第一塊磁盤;若系統有多塊硬盤,就需要使用這個select命令切換了】 |
3 | help | 查看parted的交互命令及其含義 |
4 | rm | 刪除指定數字編號的分區(如刪除分區1命令是:rm 1) |
5 | mklabel | 創建磁盤的分區表結構(是設置msdos還是gpt格式)【如創建為gpt格式命令為:mklabel gpt】; |
6 | mkpart | 創建新分區 語法【mkpart 分區類型 [文件系統類型] 起始點 結束點】; 《1》分區類型主要有【primary(主分區)】【extended(擴展分區)】【logical(邏輯區)】; 《2》文件系統類型主要有【xfs、ext2、ext3、ext4、fat16、fat32、hfs、hfs+、linux-swap、ntfs 或 reiserfs】;該參數是可選的,可以不用填寫。 《3》起始點:表示分區的起始位置 《4》結束點:表示分區的結束位置 |
7 | quit | 保存退出parted的命令交互模式,可簡寫為q(即:保存在命令交互模式的操作后再退出) |
對新創建的分區進行格式化與掛載操作 | ||
1 | 需要對所有新創建的分區逐一進行格式化 | 《1》格式化的格式一般選擇ext4或者xfs【我們這里使用ext4格式對/dev/sdb1進行格式化】; 《2》對分區格式化命令: |
2 | 需要對所有新創建的分區格式化后進行逐一掛載 | 創建/data1目錄且將/dev/sdb1分區掛載到該目錄下(剩下的其他分區可根據需要自行掛載) |
三、其他資料
分區 - ArchWikihttps://wiki.archlinuxcn.org/wiki/Partitioning第?3?章?磁盤分區 | 管理存儲設備 | Red Hat Enterprise Linux | 10 | Red Hat Documentation
https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/10/html/managing_storage_devices/disk-partitions