- 第一篇: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)
- 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 個以上)
- 開機管理程式紀錄區與分割表放在「第一個磁區」,這個磁區通常是 512 bytes,會有兩個資料:
- GUID partition table, GPT 磁碟分割表
- LBA0(MBR 相容區塊):儲存第一階段開機管理模式
- LBA1(GPT 表頭紀錄):紀錄分割表本身的位置與大小,與備份用的 GPT 分割
- LB2-33(實際紀錄分割資訊處)
2.2.3 開機流程中的 BIOS 與 UEFI 開機檢測程式
- BIOS 搭配 MVR/GPT 的開機流程
- BIOS:開機主動執行的認體,認識第一個可開機的裝置
- MBR:第一個可開機裝置的第一個磁區內的主要開機紀錄區塊,內含開機管理程式
- 開機管理程式(boot loader):可讀取核心檔案來執行的軟體
- 核心檔案:開始作業系統的功能
- UEFI BIOS 搭配 GPT 的開機流程
- 比較:
- 傳統 BIOS:
- 組合語言
- 使用中斷管理,不可變的記憶體存取,不可變的輸入/輸出存取
- 16 位元
- 透過 IRQ 連結
- 第三方支援較差
- 圖形化能力較差
- 不支援內建簡化系統前環境
- UEFI
- C 語言
- 使用驅動程式與協定
- CPU 保護模式
- 直接載入驅動程式
- 第三方支援佳,且可支援多平台
- 圖形化能力較佳
- 支援內建簡化系統前環境
- 傳統 BIOS:
- UEFI 簡直就像低階的作業系統,但基於功能華麗但效能不佳,因此這個問題不需擔心
- 比較:
2.2.4 Linux 安裝模式下,磁碟分割的選擇(極重要)
- 目錄樹結構(directory tree)
- Linux 所有資料都是以檔案型態來呈現
- 以根目錄為主,向下呈現分支狀的目錄結構的一種檔案架構
- 現在的問題是「如何結合目錄樹的架構與磁碟內的資料」?這時候就牽扯到「掛載(mount)」了
- 檔案系統與目錄樹的關係(掛載)
- 掛載,就是利用一個目錄當成進入點,將磁碟分割槽的資料放置在該目錄下
- 也就是說,進入該目錄就可以讀取該分割槽
- distributions 安裝時,掛載點與磁碟分割的規劃
- 建議使用「Custom」安裝模式
- 初次接觸 Linux 只要分割「/」、「swap」即可
- 建議分割:預留一個備用的剩餘磁碟容量
- 建議使用「Custom」安裝模式
安裝 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/