CodeGym /Adesua ahorow /Docker SELF /管理文件系統:指令 lsblk, blkid

管理文件系統:指令 lsblk, blkid

Docker SELF
等級 6 , 課堂 0
開放

管理文件系統:指令 lsblk, blkid

1. 理解檔案系統的重要性

歡迎來到我們的新課程講座,讓我們一起進入 Linux 檔案系統的奇妙世界吧!今天我們會學到如何找到設備、了解它們的結構,以及認識它們使用的檔案系統類型。我們還會利用 lsblkblkid 這些工具,加入一些指令列的魔法。當然也會聊聊,為什麼程式化管理數據的方式這麼酷!

什麼是檔案系統?

如果作業系統是你電腦的「心臟」,那檔案系統就是它的「神經系統」。正是它組織並管理對存儲裝置(硬碟、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: 設備名稱。例如,sdasdb。字母 (ab...) 對應於設備系統檢測的順序。
  • 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. 處理未掛載的設備

有時候你連接一個硬碟或隨身碟,但它不顯示為已掛載。這可能是因為缺少有效的檔案系統。使用 lsblkblkid 可以快速了解發生了什麼。

假設你連接了一個 USB 存儲設備,但在 lsblk 的輸出中看到:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb      8:16   1   16G  0 disk 

這意味著設備 sdb 沒有有效的分區。檢查 blkid 的輸出,以確保它是否有檔案系統:

blkid /dev/sdb

如果沒有輸出,這就證實了:設備尚未格式化。我們會在下一堂課討論這個問題。


5. 比較 lsblkblkid

這兩個命令都很有用,但使用方式不同:

  • 使用 lsblk 來獲取整個系統的概覽:什麼在那裡,有哪些分區已掛載。
  • 使用 blkid 來獲取文件系統的詳細信息(類型、標籤、UUID)。

比較表

命令 主要用途 輸出
lsblk 顯示設備、它們的分區與掛載點 NAME, SIZE, TYPE, MOUNTPOINT, FSTYPE 等
blkid 請求文件系統的訊息(UUID, LABEL, TYPE) UUID, TYPE, LABEL

6. 範例:從尋找設備到了解其結構

任務

  1. 找到已連接的 USB 設備。
  2. 確定其文件系統。
  3. 準備設備進行掛載。

步驟

  1. 連接設備並執行:

    lsblk
    
    找到你的設備。例如,sdb
  2. 檢查文件系統是否存在:

    blkid /dev/sdb
    

    如果文件系統不存在,你會看到空內容輸出。這意味著設備需要格式化。

  3. 如果文件系統存在,你會看到其類型和 UUID。現在可以用於進一步操作(例如掛載)。

現在你掌握了操作 Linux 文件系統的知識。在下一節課中,我們將專注於格式化設備,創建文件系統並準備它們開始運作!準備好迎接將「生澀」的磁碟轉變成可用工具的令人興奮的過程吧。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION