CodeGym /课程 /Docker SELF /文件系统管理:命令lsblk、blkid

文件系统管理:命令lsblk、blkid

Docker SELF
第 6 级 , 课程 0
可用

文件系统管理:命令 lsblk, blkid

1. 理解文件系统的重要性

欢迎来到本课程的新讲座,今天我们将深入探索 Linux 文件系统的奇妙世界。我们会学习如何找到设备,了解它们的结构,并弄清楚上面安装了什么类型的文件系统。通过工具 lsblkblkid 增加一些命令行的魔力。而且,我们还会聊聊为什么用编程来“挖掘”数据总是那么酷!

什么是文件系统?

如果操作系统是你电脑的“心脏”,那么文件系统就是它的“神经系统”。它负责组织和管理对存储设备(硬盘、SSD、USB 设备)上数据的访问。文件系统决定了数据是如何存储、读取和写入的。

你可能会遇到的一些文件系统示例:

  • ext4 — 大多数 Linux 发行版的标准文件系统。
  • NTFS — Windows 使用的文件系统。
  • FAT32 — 常用于外部存储设备和 U 盘。
  • XFS, btrfs — Linux 的更高级替代方案,支持快照等功能。

当你将磁盘或 U 盘连接到 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,它也不会改变)。
  • TYPE: 文件系统的类型。
  • LABEL: 分区的标签。

UUID的实际用途

UUID在Linux中特别重要,因为设备可能会在启动时动态更改其名称。例如,今天叫做/dev/sda的设备,明天可能变成/dev/sdb。借助UUID,你可以使用稳定的标识来挂载设备。在下一次讲座中,我们将更详细地讨论这一点,其中会涉及/etc/fstab文件的操作。


4. 处理未挂载的设备

有时候你连接了磁盘或者U盘,但它并没有显示为已挂载。这可能是因为缺少有效的文件系统。用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