《鸟哥的Linux学习:基础篇》第二章主机规划与磁盘分区 读书笔记

来源:互联网 发布:java 图片加密 编辑:程序博客网 时间:2024/06/02 08:00

1、磁盘分割

Linux的装置都是以文件的形态存在的。

磁碟盤組成示意圖
圖2.2.1、磁碟盤組成示意圖

常见装置在Linux当中的档案名:

裝置裝置在Linux內的檔名SCSI/SATA/USB硬碟機/dev/sd[a-p]USB快閃碟/dev/sd[a-p] (與SATA相同)VirtI/O界面/dev/vd[a-p] (用於虛擬機器內)軟碟機/dev/fd[0-1]印表機/dev/lp[0-2] (25針印表機)
/dev/usb/lp[0-15] (USB 介面)滑鼠/dev/input/mouse[0-15] (通用)
/dev/psaux (PS/2界面)
/dev/mouse (當前滑鼠)CDROM/DVDROM/dev/scd[0-1] (通用)
/dev/sr[0-1] (通用,CentOS 較常見)
/dev/cdrom (當前 CDROM)磁帶機/dev/ht0 (IDE 界面)
/dev/st0 (SATA/SCSI界面)
/dev/tape (當前磁帶)IDE硬碟機/dev/hd[a-d] (舊式系統才有)

MSODS(MBR,Master Boot Record)分割表格式与限制:

早期的Linux系统为了相容于windows磁盘,因此支持Windows的MBR的方式来处理开机管理程序与分割表

开机管理程序记录区与分割表通通放在磁盘的第一个磁区,这个磁区通常是512Bytes大小。所以第一个磁区有两个重要资料:

(1)、主要开机记录区(MBR,Master Boot Record):可以安装开机管理程序的地方,有446Bytes

(2)、分割表(partition table)记录整个磁盘分割状态,有64bytes

磁碟分割表的作用示意圖
圖2.2.2、磁碟分割表的作用示意圖

  • 其實所謂的『分割』只是針對那個64 bytes的分割表進行設定而已!
  • 硬碟預設的分割表僅能寫入四組分割資訊
  • 這四組分割資訊我們稱為主要(Primary)或延伸(Extended)分割槽
  • 分割槽的最小單位『通常』為磁柱(cylinder)
  • 當系統要寫入磁碟時,一定會參考磁碟分割表,才能針對某個分割槽進行資料的處理

为啥要分割:

  1. 資料的安全性:
    因為每個分割槽的資料是分開的!所以,當你需要將某個分割槽的資料重整時,例如你要將電腦中Windows的C槽重新安裝一次系統時, 可以將其他重要資料移動到其他分割槽,例如將郵件、桌面資料移動到D槽去,那麼C槽重灌系統並不會影響到D槽! 所以善用分割槽,可以讓妳的資料更安全。 
  2. 系統的效能考量:
    由於分割槽將資料集中在某個磁柱的區段,例如上圖當中第一個分割槽位於磁柱號碼1~100號,如此一來當有資料要讀取自該分割槽時, 磁碟只會搜尋前面1~100的磁柱範圍,由於資料集中了,將有助於資料讀取的速度與效能!所以說,分割是很重要的!

利用延伸分割(Extended)来使硬盘分成更多的区。该目的是:使用额外的磁区来记录分割信息,延伸分割本身并不能被拿来格式化。

 

磁碟分割表的作用示意圖
圖2.2.3、磁碟分割表的作用示意圖

 

 

 

以上5个由延伸分割切出来的分割槽,就被称为逻辑分割槽(logical partition)。

 

对MBR的主要分割、延伸分割和逻辑分割的特性做一个简单的定义:

  • 主要分割與延伸分割最多可以有四筆(硬碟的限制)
  • 延伸分割最多只能有一個(作業系統的限制)
  • 邏輯分割是由延伸分割持續切割出來的分割槽;
  • 能夠被格式化後,作為資料存取的分割槽為主要分割與邏輯分割。延伸分割無法格式化;
  • 邏輯分割的數量依作業系統而不同,在Linux系統中SATA硬碟已經可以突破63個以上的分割限制;

 

MBR的存在问题:由于每组分割表仅有16Bytes而已,因此可记录的信息是相当有限的。

常见问题如下:

  • 作業系統無法抓取到 2.2T 以上的磁碟容量!
  • MBR 僅有一個區塊,若被破壞後,經常無法或很難救援。
  • MBR 內的存放開機管理程式的區塊僅 446bytes,無法容納較多的程式碼。

 

GUID partition table,GPT磁盘分割表

由于目前有4k的磁区出现,为了相容于所有的磁盘,因此在词曲的定义上面,大多会使用所谓的逻辑区块位置(Logical Block Address,LBA)。

MBR僅使用第一個 512bytes區塊來紀錄不同, GPT使用了 34 LBA區塊來紀錄分割資訊!同時與過去MBR僅有一的區塊,被幹掉就死光光的情況不同, GPT除了前面 34 LBA之外,整個磁碟的最後 33 LBA也拿來作為另一個備份!這樣或許會比較安全些吧!詳細的結構有點像底下的模樣

GPT 分割表的結構示意圖
圖2.2.7、GPT 分割表的結構示意圖

上述圖示的解釋說明如下:

  • LBA0 (MBR 相容區塊)

MBR模式相似的,這個相容區塊也分為兩個部份,一個就是跟之前 446 bytes相似的區塊,儲存了第一階段的開機管理程式而在原本的分割表的紀錄區內,這個相容模式僅放入一個特殊標誌的分割,用來表示此磁碟為 GPT格式之意。而不懂 GPT分割表的磁碟管理程式,就不會認識這顆磁碟,除非用戶有特別要求要處理這顆磁碟,否則該管理軟體不能修改此分割資訊,進一步保護了此磁碟喔!

  • LBA1 (GPT 表頭紀錄)

這個部份紀錄了分割表本身的位置與大小,同時紀錄了備份用的 GPT分割 (就是前面談到的在最後 34 LBA 區塊) 放置的位置,同時放置了分割表的檢驗機制碼 (CRC32),作業系統可以根據這個檢驗碼來判斷 GPT 是否正確。若有錯誤,還可以透過這個紀錄區來取得備份的 GPT(磁碟最後的那個備份區塊)來恢復 GPT 的正常運作!

  • LBA2-33 (實際紀錄分割資訊處)

LBA2區塊開始,每個 LBA都可以紀錄 4 筆分割紀錄,所以在預設的情況下,總共可以有 4*32 = 128筆分割紀錄喔!因為每個 LBA 512bytes,因此每筆紀錄用到 128 bytes的空間,除了每筆紀錄所需要的識別碼與相關的紀錄之外,GPT在每筆紀錄中分別提供了 64bits來記載開始/結束的磁區號碼,因此,GPT分割表對於單一分割槽來說,他的最大容量限制就會在『 264 *512bytes = 263 * 1Kbytes = 233*TB = 8 ZB』,要注意 1ZB = 230TB啦!你說有沒有夠大了?

 

开机流程中的BIOS与UEFI开机检测程序

BIOS是一个写在主板上的一个软件,BIOS是开机时计算机系统会主动执行的第一个程序。

整个开机到操作系统前的过程是这样的:

  1. BIOS:開機主動執行的韌體,會認識第一個可開機的裝置;
  2. MBR:第一個可開機裝置的第一個磁區內的主要開機記錄區塊,內含開機管理程式;
  3. 開機管理程式(boot loader):一支可讀取核心檔案來執行的軟體;
  4. 核心檔案:開始操作系统的功能

引导加载程序(Bootloader)的主要任务如下:

  • 提供選單:使用者可以選擇不同的開機項目,這也是多重開機的重要功能!
  • 載入核心檔案:直接指向可開機的程式區段來開始作業系統;
  • 轉交其他loader:將開機管理功能轉交給其他loader負責。

多重引导:加载程序除了安装在MBR外,还可以安装在每个分区的引导扇区(Boot Sector)。

 

開機管理程式的工作執行示意圖
圖2.2.8、開機管理程式的工作執行示意圖

UEFI BIOS 搭配GPT开机的流程

1、UETI:(UnifiedExtensible Firmware Interface)统一可延伸软件界面。

2、BIOS与UEFI的区别

比較項目傳統 BIOSUEFI使用程式語言組合語言C 語言硬體資源控制使用中斷 (IRQ) 管理
不可變的記憶體存取
不可變得輸入/輸出存取使用驅動程式與協定處理器運作環境16 位元CPU 保護模式擴充方式透過 IRQ 連結直接載入驅動程式第三方廠商支援較差較佳且可支援多平台圖形化能力較差較佳內建簡化作業系統前環境不支援支援

UEFI大多用于启动操作系统之前的硬件检测、开机管理、软件设定等目的

 

Linux安装模式下,磁盘分割的选择

目录树结构:

以根目录为主,然后向下呈现分支状的目录结构的一种文件结构。整个目录树结构最重要的就是那个根目录(Root directory),这个根目录的表示方法为一条斜线“/”。

 

目錄樹相關性示意圖
圖2.2.9、目錄樹相關性示意圖

结合目录树的架构与磁盘内的数据:挂载(mount

所谓挂载(mount)是:利用一个目录当成进入点,将磁盘分区的数据放置在该目录下;即、进入该目录就可以读取该分区的意思。这个操作我们称为“挂载”,这个“进入点”称为“挂载点”。

目錄樹與分割槽之間的相關性
圖2.2.10、目錄樹與分割槽之間的相關性

如:Windows下,u盘在电脑一显示为F盘,你要打开U盘就到F盘下,在电脑2,U盘显示为H盘,你要打开U盘就到H盘下,这就是装置与磁盘槽对应的关系,就是Windows概念下的“挂载”。

 

重点回顾:

  • 新添購電腦硬體配備時,需要考量的角度有『遊戲機/工作機』、『效能/價格比』、『效能/消耗瓦數』、『支援度』等;
  • 舊的硬體配備可能由於保存的問題或者是電子零件老化的問題,導致電腦系統非常容易在運作過程中出現不明的當機情況
  • Red Hat的硬體支援:https://hardware.redhat.com/?pagename=hcl
  • 在Linux系統中,每個裝置都被當成一個檔案來對待,每個裝置都會有裝置檔名。
  • 磁碟裝置檔名通常分為兩種,實際SATA/USB裝置檔名為/dev/sd[a-p],而虛擬機的裝置可能為/dev/vd[a-p]
  • 磁碟的第一個磁區主要記錄了兩個重要的資訊,分別是: (1)主要開機記錄區(Master Boot Record, MBR):可以安裝開機管理程式的地方,有446 bytes (1)分割表(partition table):記錄整顆硬碟分割的狀態,有64 bytes;
  • 磁碟的 MBR 分割方式中,主要與延伸分割最多可以有四個,邏輯分割的裝置檔名號碼,一定由5號開始;
  • 如果磁碟容量大於 2TB 以上時,系統會自動使用 GPT 分割方式來處理磁碟分割。
  • GPT 分割已經沒有延伸與邏輯分割槽的概念,你可以想像成所有的分割都是主分割!
  • 某些作業系統要使用 GPT 分割時,必須要搭配 UEFI 的新型 BIOS 格式才可安裝使用。
  • 開機的流程由:BIOS-->MBR-->-->boot loader-->核心檔案;
  • boot loader的功能主要有:提供選單、載入核心、轉交控制權給其他loader
  • boot loader可以安裝的地點有兩個,分別是 MBR 與 boot sector
  • Linux作業系統的檔案使用目錄樹系統,與磁碟的對應需要有『掛載』的動作才行;
  • 新手的簡單分割,建議只要有/及swap兩個分割槽即可

0 0
原创粉丝点击