管理文件系統:指令 lsblk
, blkid
1. 理解檔案系統的重要性
歡迎來到我們的新課程講座,讓我們一起進入 Linux 檔案系統的奇妙世界吧!今天我們會學到如何找到設備、了解它們的結構,以及認識它們使用的檔案系統類型。我們還會利用 lsblk
和 blkid
這些工具,加入一些指令列的魔法。當然也會聊聊,為什麼程式化管理數據的方式這麼酷!
什麼是檔案系統?
如果作業系統是你電腦的「心臟」,那檔案系統就是它的「神經系統」。正是它組織並管理對存儲裝置(硬碟、SSD、USB 隨身碟)的數據訪問。它負責定義數據如何存放、讀取以及寫入。
以下是你可能遇到的一些檔案系統範例:
- ext4 — 大部分 Linux 發行版的標準檔案系統。
- NTFS — Windows 使用的檔案系統。
- FAT32 — 常用於外部存儲設備及隨身碟。
- XFS, btrfs — Linux 的進階替代選擇,支援如快照等功能。
當你在 Linux 中插入磁碟或隨身碟時,檔案系統需要被「掛載」,系統才能開始與它互動。利用一些指令,我們可以控制這些操作(以及更多功能)。
2. 指令 lsblk
:檢視已連接的設備
lsblk
指令基礎
Linux 提供了很多工具來處理設備和分區。其中最實用的之一就是指令 lsblk
。這個名稱的意思是 "list block devices" —— 列出所有塊設備。
語法很簡單:
lsblk
這個指令會輸出系統中的所有塊設備表格,包括硬碟、SSD、USB 儲存裝置及其分區。
範例輸出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 50G 0 part /
├─sda2 8:2 0 200G 0 part /home
└─sda3 8:3 0 250G 0 part
sdb 8:16 1 16G 0 disk
└─sdb1 8:17 1 16G 0 part /media/usb
- NAME: 設備名稱。例如,
sda
、sdb
。字母 (a
、b
...) 對應於設備系統檢測的順序。 - SIZE: 設備大小。
- TYPE: 設備類型。例如,
disk
是物理磁碟,part
是它的分區。 - MOUNTPOINT: 設備掛載到文件系統中的路徑。
有用的選項
lsblk
是個非常靈活的指令。使用額外的參數,你可以獲得更多信息:
lsblk -f
—— 顯示每個設備的文件系統類型和 UUID(唯一識別碼)。lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT
—— 只輸出感興趣的列(例如名稱、大小、文件系統、掛載點)。
範例:
lsblk -f
結果:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 rootfs 1111-2222-3333-4444 /
├─sda2 ext4 home 5555-6666-7777-8888 /home
└─sda3 swap 9999-AAAA-BBBB-CCCC [SWAP]
sdb vfat USB_DISK AAAA-BBBB /media/usb
3. 命令 blkid
: 唯一識別碼的魔法
有時你需要獲取設備或者它的檔案系統的詳細資訊。這時,命令blkid
就派上用場啦。它的作用是根據檔案系統和UUID來識別設備。
命令 blkid
的基礎
直接執行命令,無需參數:
blkid
輸出範例:
/dev/sda1: UUID="1111-2222-3333-4444" TYPE="ext4"
/dev/sda2: UUID="5555-6666-7777-8888" TYPE="ext4"
/dev/sda3: UUID="9999-AAAA-BBBB-CCCC" TYPE="swap"
/dev/sdb1: UUID="AAAA-BBBB" TYPE="vfat" LABEL="USB_DISK"
- UUID: 分區的唯一識別碼(即使設備名稱改變,比如從
sda
變成sdb
,UUID依然保持不變)。 - TYPE: 檔案系統的類型。
- LABEL: 分區標籤。
UUID的實用性
UUID在Linux中特別重要,因為設備名稱在系統啟動時可能會動態變化。例如,今天叫/dev/sda
的設備,明天可能會變成/dev/sdb
。透過UUID,可以穩定地識別並掛載設備。我們在接下來的課程中還會進一步探討,包括/etc/fstab
檔案的操作。
4. 處理未掛載的設備
有時候你連接一個硬碟或隨身碟,但它不顯示為已掛載。這可能是因為缺少有效的檔案系統。使用 lsblk
和 blkid
可以快速了解發生了什麼。
假設你連接了一個 USB 存儲設備,但在 lsblk
的輸出中看到:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 1 16G 0 disk
這意味著設備 sdb
沒有有效的分區。檢查 blkid
的輸出,以確保它是否有檔案系統:
blkid /dev/sdb
如果沒有輸出,這就證實了:設備尚未格式化。我們會在下一堂課討論這個問題。
5. 比較 lsblk
和 blkid
這兩個命令都很有用,但使用方式不同:
- 使用
lsblk
來獲取整個系統的概覽:什麼在那裡,有哪些分區已掛載。 - 使用
blkid
來獲取文件系統的詳細信息(類型、標籤、UUID)。
比較表
命令 | 主要用途 | 輸出 |
---|---|---|
lsblk |
顯示設備、它們的分區與掛載點 | NAME, SIZE, TYPE, MOUNTPOINT, FSTYPE 等 |
blkid |
請求文件系統的訊息(UUID, LABEL, TYPE) | UUID, TYPE, LABEL |
6. 範例:從尋找設備到了解其結構
任務
- 找到已連接的 USB 設備。
- 確定其文件系統。
- 準備設備進行掛載。
步驟
連接設備並執行:
找到你的設備。例如,lsblk
sdb
。檢查文件系統是否存在:
blkid /dev/sdb
如果文件系統不存在,你會看到空內容輸出。這意味著設備需要格式化。
如果文件系統存在,你會看到其類型和 UUID。現在可以用於進一步操作(例如掛載)。
現在你掌握了操作 Linux 文件系統的知識。在下一節課中,我們將專注於格式化設備,創建文件系統並準備它們開始運作!準備好迎接將「生澀」的磁碟轉變成可用工具的令人興奮的過程吧。
GO TO FULL VERSION