---
# System prepended metadata

title: 'Linux 筆記 | 基礎篇 #002 : 磁盤分區與掛載'
tags: [Linux, 計算機]

---

# Linux 筆記 | 基礎篇 #002 : 磁盤分區與掛載

在 Linux 系統中所謂的「磁盤分區」，意思是將物理設備的磁盤空間，劃分成多個抽象的邏輯區域，每個邏輯區域都可單獨格式化成特定的文件系統、作為不同的掛載點（後面說明何謂「掛載」），而磁盤分區的主要好處有下面幾個：

1. **提高系統穩定性**：一個分區的問題，不會影響到其他分區，也可避免一個分區的資料滿了影響整個系統。
2. **提高性能**：通過合理的磁盤分區，可以優化磁盤讀寫的效率，不同分區可選擇不同的文件系統或掛載選項，以針對不同類型的數據做優化。
3. **便於備份及管理**： 可針對不同分區採取不同數據備份、數據恢復的策略。
4. **提高安全性** : 可針對不同分區設置不同的文件權限和掛載選項，限制某些區域的訪問或執行權限。

## 掛載 (Mount)

可以把「掛載」理解成類似於「映射」的概念，就是將一個物理設備的磁盤地址對應到系統抽象地址的動作，之後要訪問某個物理的磁盤分區，只要通過系統的「掛載點」也就是抽象地址就可達成了，例如下方的掛載指令：
```
mount /dev/sda1 /mnt/data
```
這段指令的意思就是將 /dev/sda1 這一物理地址掛載到 /mnt/data 系統地址，從而讓用戶透過 /mnt/data 這個目錄訪問到磁盤分區上的資料。

### 掛載選項 (Mount Options)

掛載選項是用來指定「如何掛載」的參數，這些選項參數可以控制設備的訪問方式、性能、權限等方面的行為，在掛載時由 mount 指令的 -o 參數來設置，舉例：

- 將設備的磁盤分區掛載為只讀，用戶只能讀取不能異動
```
mount -o ro /dev/sda1 /mnt/data
```
- 掛載為讀寫
```
mount -o rw /dev/sda1 /mnt/data
```
- 掛載為只讀，並且禁止執行任何程式
```
mount -o ro,noexec /dev/sda1 /mnt/data
```
## Linux 系統中的常見分區
1. **/ (根目錄)**
-    整個文件系統的起始點，所有其他目錄都是由這裡衍生出來的。
-    系統的核心部分，包含了所有系統文件和目錄結構，如 /bin、/etc、/lib 等，這些都是系統運行所需的基本檔案。。
-    所有的硬碟分區、設備文件都會在根目錄下建立目錄或文件。

2. **/boot (啟動分區)**
-    /boot 分區存放系統啟動過程中所需的檔案，如 Linux 內核、啟動加載器、初始化腳本等。
-    此分區是啟動過程的關鍵，系統會透過 /boot 來加載內核來啟動。
-    如 Linux 內核檔案 (vmlinuz)、引導加載程序 (如 grub) 的配置文件、initrd 跟 initramfs （幫助啟動時加載必要的驅動程式）。

3. **/root (根用戶目錄)**
-    超級用戶的家目錄。
-    存放有關 root 用戶的個人配置文件和數據。
-    不應該放一般用戶的資料，是放重要系統文件的地方。

4. **/home (用戶目錄)**
-    除了 root 用戶以外的普通用戶存放個人文件、配置、數據的地方。
-    每個用戶在家目錄下都有一個自己的子目錄，如 /home/user1
-    通常該分區的容量最大，類似於 MacOS 的 /Users/louisyang。

5. **/swap (交換空間)**
-    虛擬記憶體空間，用於記憶體與磁盤數據交換，當作擴展的記憶體來使用。
-    當物理記憶體不夠用時，系統會將不活躍的頁面從記憶體交換到這個分區。
-    但磁盤讀寫效能遠低記憶體，所以過度交換會影響性能。

6. **/tmp  (臨時目錄)**
-    用於存放應用程序在運行時產生的臨時檔案。
-    如會話、臨時性緩存等等，重啟時會自動清空，系統也需要定期清理。

7. **/var  (變動數據)**
-    存放經常會變化的數據跟檔案。
-    如日誌、待處理的隊列或應用程式的緩存等。
-    ex: /var/log、/var/cache。
8. **/srv  (服務數據)**
-    存放系統提供的服務相關數據。
-    如 Web 服務器的網站文件。
-    FTP 服務器的共享文件。