在Linux系统中,查看分区格式是日常运维和系统管理中常见的操作,尤其是在磁盘管理、数据迁移或文件系统维护时,分区格式(也称为文件系统类型)决定了数据的存储方式、权限管理、支持的功能等,常见的格式包括ext4、xfs、NTFS、FAT32、btrfs等,Linux提供了多种命令工具来查看分区格式,每种工具各有特点和适用场景,下面将详细介绍这些方法。
使用lsblk
命令查看分区格式
lsblk
(list block devices)是Linux系统中常用的块设备查看工具,它以树状结构展示磁盘分区信息,包括文件系统类型,该命令简洁直观,适合快速了解系统中的磁盘和分区情况。
基本语法
lsblk [选项] [设备名]
常用参数
-f
:显示文件系统类型(Filesystem Type)、挂载点(Mountpoint)和UUID等信息,这是查看分区格式的关键参数。-l
:以列表形式输出(默认为树状结构)。-o
:自定义输出列,例如lsblk -o NAME,FSTYPE,MOUNTPOINT
只显示设备名、文件系统类型和挂载点。
示例
查看所有磁盘分区的文件系统类型:
lsblk -f
输出示例:
NAME FSTYPE MOUNTPOINT
sda
├─sda1 vfat /boot/efi
├─sda2 ext4 /
└─sda3 swap [SWAP]
sdb
└─sdb1 xfs /data
nvme0n1
└─nvme0n1p1 ext4 /home
从输出中可以直观看到,sda1
是vfat格式(通常用于EFI系统分区),sda2
是ext4格式(根分区),sdb1
是xfs格式(数据分区)等。
使用df
命令查看已挂载分区的格式
df
(disk free)命令主要用于显示磁盘空间使用情况,但结合-T
参数可以同时显示文件系统类型,适合查看已挂载分区的格式信息。
基本语法
df -T [选项] [挂载点/设备名]
常用参数
-T
:显示文件系统类型(Type)。-h
:以人类可读格式显示大小(如K、M、G)。-l
:只显示本地文件系统(不显示网络文件系统)。
示例
查看所有已挂载分区的文件系统类型和使用情况:
df -Th
输出示例:
文件系统 类型 已用 可用 已用% 挂载点
/dev/sda2 ext4 20G 50G 29% /
/dev/sda1 vfat 512M 512M 100% /boot/efi
/dev/sdb1 xfs 80G 120G 40% /data
/dev/nvme0n1p1 ext4 30G 100G 23% /home
tmpfs tmpfs 2G 0 100% /dev/shm
注意:df
命令仅显示已挂载的文件系统,对于未挂载的分区无法查看其格式。
使用blkid
命令查看分区的详细属性
blkid
(block device identifier)命令用于查看块设备的属性,包括文件系统类型、UUID、LABEL等信息,是查看分区格式的常用工具,尤其适合未挂载的分区。
基本语法
blkid [选项] [设备名]
常用参数
-o value
:以键值对形式输出,例如仅显示文件系统类型(blkid -o value -s TYPE /dev/sdb1
)。-s 属性
:指定显示的属性,如TYPE
(文件系统类型)、UUID
、LABEL
等。-g
:刷新设备缓存(适用于新分区或格式变更后)。
示例
查看指定分区的文件系统类型:
blkid /dev/sdb1
输出示例:
/dev/sdb1: UUID="123e4567-e89b-12d3-a456-426614174000" TYPE="xfs" PARTUUID="..."
其中TYPE="xfs"
即表示该分区为xfs格式,若要批量查看所有分区的格式,可结合grep
过滤:
blkid | grep -o 'TYPE="[^"]*"'
使用fdisk
或parted
查看分区表及文件系统类型
fdisk
和parted
是Linux中常用的分区管理工具,除了可以查看分区表信息(如MBR/GPT)外,还能结合其他命令或参数间接获取文件系统类型。
fdisk
命令
fdisk
适用于MBR和GPT分区表,通过p
(打印分区表)命令可以查看分区信息,但不会直接显示文件系统类型,需结合blkid
或lsblk
。
示例:
sudo fdisk -l /dev/sdb
输出示例:
磁盘 /dev/sdb:500 GiB, 536870912000 字节,1048576000 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:...
设备 起点 末尾 扇区 大小 类型
/dev/sdb1 2048 1048575647 1048573600 500G Linux filesystem
类型”列显示的是分区类型标识(如Linux filesystem),但具体文件系统类型(ext4/xfs等)需通过blkid
确认。
parted
命令
parted
功能更强大,支持GPT和MBR,通过print
命令可以显示分区表和文件系统类型(若分区已格式化)。
示例:
sudo parted -l /dev/sdb
输出示例:
Model: ATA WDC WD5000 (scsi)
磁盘 /dev/sdb:500GB
扇区大小(逻辑/物理):512B/512B
分区表:gpt
磁盘标识符:...
编号 起点 终点 大小 文件系统 名称 标志
1 1049kB 500GB 500GB xfs
文件系统”列直接显示了xfs格式,无需额外命令。
不同工具对比及适用场景
为方便选择,以下表格总结了上述工具的特点和适用场景:
工具名 | 主要功能 | 是否显示文件系统类型 | 适用场景 |
---|---|---|---|
lsblk |
列出块设备(树状/列表) | 是(需-f 参数) |
快速查看所有分区及挂载信息 |
df |
显示磁盘空间使用情况 | 是(需-T 参数) |
查看已挂载分区的格式和使用情况 |
blkid |
查看块设备属性(UUID、LABEL等) | 是 | 精确查看分区格式(含未挂载分区) |
parted |
分区管理(支持GPT/MBR) | 是 | 查看分区表及文件系统类型(交互式) |
fdisk |
分区管理(MBR为主) | 间接显示(需结合其他工具) | 查看分区表及分区类型标识 |
相关问答FAQs
Q1:为什么df -T
命令看不到未挂载的分区格式?
A:df
命令的设计目标是显示已挂载文件系统的磁盘使用情况,因此它仅列出系统中当前已挂载的分区,对于未挂载的分区,无法通过df -T
查看其文件系统类型,需使用blkid
、lsblk -f
或parted
等工具,这些工具可以直接读取分区的底层信息,无需依赖挂载状态。
Q2:如何批量查看系统中所有分区的文件系统格式(包括未挂载的)?
A:可以通过组合lsblk
和grep
命令实现,
lsblk -d -o NAME,FSTYPE | grep -v "ROM|loop" | awk '{if($2=="") $2="未格式化"; print "/dev/"$1": "$2}'
解释:
lsblk -d
:仅显示磁盘设备,不显示分区(若需显示分区则去掉-d
);-o NAME,FSTYPE
:指定输出设备名和文件系统类型;grep -v "ROM|loop"
:过滤掉光驱(ROM)和回环设备(loop);awk
:处理输出,未格式化的分区显示为“未格式化”,并拼接设备路径完整路径。
若需更详细的信息(如UUID),可改用blkid
:blkid | grep -o '/dev/[^:]*: TYPE="[^"]*"' | sed 's/: /= /;/" /= /'
输出示例:
/dev/sda1= TYPE="vfat"
,清晰展示设备名和文件系统类型。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/36845.html