《鳥哥 Linux 私房菜:基礎篇》Chapter 02 - 主機規劃與磁碟分割


  • 第一篇:Linux 的規劃與安裝
    • Chapter 00 計算機概論
    • Chapter 01 Linux 是什麼與如何學習
    • Chapter 02 主機規劃與磁碟分割
    • Chapter 03 安裝 CentOS7.x
    • Chapter 04 首次登入與線上求助
  • 第二篇:Linux 檔案、目錄與磁碟格式
  • 第三篇:學習 Shell 與 Shell Scripts
  • 第四篇:Linux 使用者管理
  • 第五篇:Linux 系統管理員

2.1 Linux 與硬體的搭配

跟 Windows 系統不一樣,各個元件或裝置在 Linux 底下都是「一個檔案」!

2.1.1 認識電腦的硬體配備

  • 個人電腦各元件的相關性
  • 購買電腦的考量
    • 遊戲機/工作機:現在電腦遊戲很多需要 3D 光影,CPU 與顯卡資源會被消耗得非常多,而大多辦公環境需要用到的是 Office 與瀏覽器,入門級電腦就很夠用了。
    • 「效能/價格比」與「效能/消耗瓦數比」:如果貴一倍的產品,只增加 10% 效能,性價比太低,不如買主流一點但非最高檔的產品。
    • 支援度:並非所有硬體都會支援特定作業系統。

2.1.2 選擇與 Linux 搭配的主機配備

  • CPU
  • RAM
  • Hard Disk
  • VGA
  • Network Interface Card
  • 光碟、軟碟、鍵盤與滑鼠

2.1.3 各硬體裝置在 Linux 中的檔名

在 Linux 系統中,每個裝置都被當成一個檔案來對待,i.e. IDE 介面的硬碟的檔案名稱即為 /dev/sd[a-d],亦即有 /dev/sda, /dev/sdb, /dev/sdc, /dev/sdd

  • SCSI/SATA/USB: /dev/sd[a-p]
  • USB 快閃碟: /dev/sd[a-p] (與 SATA 相同)
  • Virtl/O 介面: /dev/vd[a-p] (用於虛擬機器內)
  • 軟碟機: /dev/fd[0-7]
  • 印表機: /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] (舊式系統才有)

2.1.4 使用虛擬機器學習

虛擬化系統可以很簡單的製作出相仿的硬體資源。目前 Linux 系統大多使用 KVM 這個虛擬化軟體。


2.2 磁碟分割

Linux 系統是安裝在電腦元件的磁碟,我們知道一塊磁碟可以分割成多個分割槽(partition),就像 Windows 的 C:, D:, E: 槽,C:, D:, E: 槽就是分割槽。

2.2.1 磁碟連接的方式與裝置檔名的關係

正常的實體機器大概使用都是 /dev/sd[a-] 的磁碟檔名,至於虛擬機器環境底下,為了加速,可能就會使用 /dev/vd[a-p] 這種裝置檔名。

磁碟盤可細分出磁區(Sector)與磁軌(Track)兩種單位,磁區分成兩種大小:512 bytes, 4 Kbytes。

2.2.2 MSDOS(MBR)與 GPT 磁碟分割表(Partition Table)

  1. MSDOS(MBR)分割表格式與限制
    • 開機管理程式紀錄區與分割表放在「第一個磁區」,這個磁區通常是 512 bytes,會有兩個資料:
      • 主要開機記錄區(Master Boot Record, MBR):可以安裝關機管理程式的地方,有 446 bytes。
      • 分割表(Partition Table):紀錄整顆硬碟分割的狀態,有 64 bytes。
    • 分割表所在區塊僅有 64 bytes 容量,因此最多僅能有四組紀錄區,每組紀錄區紀錄了該區段的起始與結束的磁柱號碼。
    • 由於分割表就只有 64 bytes,主要(Primary)或延伸(Extended)分割槽
      • 其實所謂的「分割」只是針對那個 64 bytes 的分割表進行設定而已
      • 硬碟預設的分割表僅能寫入四組分割資訊
      • 這四組分割資訊我們稱為主要(Primary)或延伸(Extend)分割槽
      • 分割槽的最小單位「通常」為磁柱(cylinder)
      • 系統要寫入磁碟時,一定會參考磁碟分割表,才能針對某個分割槽進行資料的處理
    • 既然第一個磁區所在的分割表只能紀錄四筆資料,可否利用額外的磁區來紀錄更多的分割資訊
      • 延伸分割的目的:使用額外的磁區來紀錄分割資訊,延伸分割本身不能被拿來格式化
      • 由延伸分割繼續分割出來的就是 邏輯分割槽 (右邊五個)
      • 裝置檔名
        • P1:/dev/sda1
        • P2:/dev/sda2
        • L1:/dev/sda5(前面四個號碼都是保留給 Primary or Extended)
        • L2:/dev/sda6
        • L3:/dev/sda7
        • L4:/dev/sda8
        • L5:/dev/sda9
    • 統整:
      • 主要分割於延伸分割最多可以有四筆
      • 延伸分割最多只能有一個
      • 邏輯分割是由延伸分割持續切割出來的分割槽
      • 主要分割與邏輯分割能夠被格式化;延伸分割不能被格式化
      • 邏輯分割的數量依作業系統不同(Linux SATA 硬碟突破 63 個以上)
  2. GUID partition table, GPT 磁碟分割表
      • LBA0(MBR 相容區塊):儲存第一階段開機管理模式
      • LBA1(GPT 表頭紀錄):紀錄分割表本身的位置與大小,與備份用的 GPT 分割
      • LB2-33(實際紀錄分割資訊處)

2.2.3 開機流程中的 BIOS 與 UEFI 開機檢測程式

  1. BIOS 搭配 MVR/GPT 的開機流程
    • BIOS:開機主動執行的認體,認識第一個可開機的裝置
    • MBR:第一個可開機裝置的第一個磁區內的主要開機紀錄區塊,內含開機管理程式
    • 開機管理程式(boot loader):可讀取核心檔案來執行的軟體
    • 核心檔案:開始作業系統的功能
  2. UEFI BIOS 搭配 GPT 的開機流程
    • 比較:
      • 傳統 BIOS:
        • 組合語言
        • 使用中斷管理,不可變的記憶體存取,不可變的輸入/輸出存取
        • 16 位元
        • 透過 IRQ 連結
        • 第三方支援較差
        • 圖形化能力較差
        • 不支援內建簡化系統前環境
      • UEFI
        • C 語言
        • 使用驅動程式與協定
        • CPU 保護模式
        • 直接載入驅動程式
        • 第三方支援佳,且可支援多平台
        • 圖形化能力較佳
        • 支援內建簡化系統前環境
    • UEFI 簡直就像低階的作業系統,但基於功能華麗但效能不佳,因此這個問題不需擔心

2.2.4 Linux 安裝模式下,磁碟分割的選擇(極重要)

  1. 目錄樹結構(directory tree)
    • Linux 所有資料都是以檔案型態來呈現
    • 以根目錄為主,向下呈現分支狀的目錄結構的一種檔案架構
    • 現在的問題是「如何結合目錄樹的架構與磁碟內的資料」?這時候就牽扯到「掛載(mount)」了
  2. 檔案系統與目錄樹的關係(掛載)
    • 掛載,就是利用一個目錄當成進入點,將磁碟分割槽的資料放置在該目錄下
    • 也就是說,進入該目錄就可以讀取該分割槽
  3. distributions 安裝時,掛載點與磁碟分割的規劃
    • 建議使用「Custom」安裝模式
      • 初次接觸 Linux 只要分割「/」、「swap」即可
      • 建議分割:預留一個備用的剩餘磁碟容量

安裝 Linux 前的規劃

  • 選擇適當的 distribution(最新的)
  • 主機的服務規劃與硬體關係
    • 打造 Windows 與 Linux 共存的環境
    • NAT(達成 IP 分享器的功能)
    • SAMBA(加入 Windows 網路上的芳鄰)
    • Mail(郵件伺服器)
    • Web(WWW 伺服器)
    • DHCP(提供用戶端自動取得 IP 的功能)
    • FTP
  • 主機硬碟的主要規劃
    • 當主機系統的硬體出現問題時,你的檔案資料能否安全的保存?
    • 如果需要重新安裝的話,搬移與備份資料成本很高,因此硬碟的分割考量非常重要
    • 沒安裝過十次以上 Linux 系統,是學不會磁碟分割的!
    • 基本分割模式:
      • 簡單:/ & swap
      • 稍微麻煩:/boot, /, /home, /var, Swap

資料來源

鳥哥的 Linux 私房菜: http://linux.vbird.org/linux_basic/

#鳥哥的 Linux 私房菜 #linux







你可能感興趣的文章

React-[useEffect篇]- 元件的生命週期 與 useEffect hook ,與錯誤處理

React-[useEffect篇]- 元件的生命週期 與 useEffect hook ,與錯誤處理

[Note] JS: DOM & DOM manipulation

[Note] JS: DOM & DOM manipulation

Day03:從迴圈看 bytecode

Day03:從迴圈看 bytecode






留言討論