如何 - Linux 列出磁盘分区命令
通常,您的硬盘驱动器被划分为一个或多个逻辑磁盘,称为分区。此划分在硬盘 0 扇区中的分区表中描述。设备通常是 /dev/sda、/dev/sdb 等。设备名称指的是整个磁盘,设备名称如下:
- /dev/hd*– IDE 磁盘。/dev/hda 将是第一个 IDE 硬盘,/dev/hdb 将是第二个 IDE 硬盘,依此类推。
- /dev/sd*– SCSI 或 SATA 磁盘,包括 SSD。/dev/sda 将是第一个 SATA/SCSI 硬盘,/dev/sdb 将是第二个 SATA/SCSI 硬盘,依此类推。
- /dev/nvme*– NVM Express (NVMe) pci SSD。/dev/nvme0n1 将是第一个 NVMe SSD,/dev/nvme1n1 将是第二个 NVMe SSD,依此类推。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 是的 |
要求 | Linux 终端 |
类别 | 命令 |
操作系统兼容性 | Alma • Alpine • Arch • Debian • Fedora • Mint • openSUSE • Pop!_OS • RHEL • Rocky • Stream • SUSE • Ubuntu • WSL |
预计阅读时间 | 10 分钟 |
lsblk 命令列出 Linux 上的块设备
要列出所有块设备,请运行 lsblk 命令:
我们还可以对 lsblk 显示的信息进行微调,如下所示,以仅列出 Linux 分区和其他数据:
$ sudo lsblk
$ sudo lsblk /dev/DEVICE
$ sudo lsblk /dev/sda
$ sudo lsblk -l
# use the grep command/egerp command to filter out info #
$ sudo lsblk -d | grep disk
$ sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT
使用 lsblk 列出 Linux 上的磁盘和分区
$ sudo lsblk -f -m
$ sudo lsblk -f -m | grep ext4
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT SIZE OWNER GROUP MODE sda 931.5G brw-rw---- ├─sda1 vfat DE61-52C6 946M 1% /boot/efi 953M brw-rw---- ├─sda2 linux_raid_member debian:0 2213c9e0-bde0-c07a-5dc6-fa92db3b9aeb 954M brw-rw---- │ └─md0 ext4 62343176-6dcf-4b0d-b440-825dc83a7553 769.5M 10% /boot 953M brw-rw---- └─sda3 linux_raid_member debian:1 89a83a31-7c6c-7b4a-6313-7dc17b1f5b5d 929.7G brw-rw---- └─md1 crypto_LUKS 45b8c33e-a710-4062-b98f-a32a45c9d947 929.5G brw-rw---- └─md1_crypt LVM2_member uQEZdt-Fdjc-QMUj-4Jn7-y712-xkU7-IOby2F 929.5G brw-rw---- ├─md1_vg0-swap swap b04c0ffc-46b5-4e6d-9c73-8da81cd71eb0 [SWAP] 7.5G brw-rw---- └─md1_vg0-root ext4 c493757e-56a9-4d2b-bb05-437b8a1863cb 791G 8% / 922.1G brw-rw---- sdb 931.5G brw-rw---- ├─sdb1 vfat DE61-E2ED 953M brw-rw---- ├─sdb2 linux_raid_member debian:0 2213c9e0-bde0-c07a-5dc6-fa92db3b9aeb 954M brw-rw---- │ └─md0 ext4 62343176-6dcf-4b0d-b440-825dc83a7553 769.5M 10% /boot 953M brw-rw---- └─sdb3 linux_raid_member debian:1 89a83a31-7c6c-7b4a-6313-7dc17b1f5b5d 929.7G brw-rw---- └─md1 crypto_LUKS 45b8c33e-a710-4062-b98f-a32a45c9d947 929.5G brw-rw---- └─md1_crypt LVM2_member uQEZdt-Fdjc-QMUj-4Jn7-y712-xkU7-IOby2F 929.5G brw-rw---- ├─md1_vg0-swap swap b04c0ffc-46b5-4e6d-9c73-8da81cd71eb0 [SWAP] 7.5G brw-rw---- └─md1_vg0-root ext4 c493757e-56a9-4d2b-bb05-437b8a1863cb 791G 8% / 922.1G brw-rw----
了解显示块设备和分区的 lsblk 选项
- -m:显示有关 Linux 权限的信息
- -f:列出有关 Linux 文件系统的信息
- -l:强制列表格式输出选项
- -d:避免打印持有者。换句话说,只看到块设备/磁盘名称
- -o NAME,FSTYPE,SIZE,MOUNTPOINT:仅显示按照表 1 选定的列。
柱子 | 描述 |
---|---|
NAME | 设备名称 |
KNAME | 内部内核设备名 |
PATH | 设备节点的路径 |
MAJ:MIN | major:次设备号 |
FSAVAIL | 可用的文件系统大小 |
FSSIZE | 文件系统大小 |
FSTYPE | 文件系统类型 |
FSUSED | 使用的文件系统大小 |
FSUSE% | 文件系统使用百分比 |
MOUNTPOINT | 设备安装位置 |
LABEL | 文件系统标签 |
UUID | 文件系统 UUID |
PTUUID | 分区表标识符(通常是 UUID) |
PTTYPE | 分区表类型 |
PARTTYPE | 分区类型UUID |
PARTLABEL | 分区标签 |
PARTUUID | 分区 UUID |
PARTFLAGS | 分区标志 |
RA | 设备预读 |
RO | 只读设备 |
RM | 可移动设备 |
HOTPLUG | 可移动或热插拔设备(usb、pcmcia 等) |
MODEL | 设备标识符 |
SERIAL | 磁盘序列号 |
SIZE | 设备尺寸 |
STATE | 设备状态 |
OWNER | 用户名 |
GROUP | 组名 |
MODE | 设备节点权限 |
ALIGNMENT | 对齐偏移 |
MIN-IO | 最小 I/O 大小 |
OPT-IO | 最佳 I/O 大小 |
PHY-SEC | 物理扇区大小 |
LOG-SEC | 逻辑扇区大小 |
ROTA | 旋转装置 |
SCHED | I/O 调度程序名称 |
RQ-SIZE | 请求队列大小 |
TYPE | 设备类型 |
DISC-ALN | 丢弃对齐偏移量 |
DISC-GRAN | 丢弃粒度 |
DISC-MAX | 丢弃最大字节数 |
DISC-ZERO | 丢弃零数据 |
WSAME | 写入相同的最大字节数 |
WWN | 唯一存储标识符 |
RAND | 增加随机性 |
PKNAME | 内部父内核设备名称 |
HCTL | 主机:通道:目标:SCSI 的 Lun |
TRAN | 设备传输类型 |
SUBSYSTEMS | 去重子系统链 |
REV | 设备修订 |
VENDOR | 设备供应商 |
ZONED | 区域模型 |
如何使用 blkid 定位/打印块设备属性
除了物理块存储和逻辑分区之外,您的 Linux 机器可能还具有软件 RAID 和加密硬盘。我们可以使用 blkid 命令确定块设备所拥有的文件系统类型及其属性:
$ sudo blkid
输出结果如下;因此建议使用 lsblk:
/dev/sda1: UUID="DE61-52C6" TYPE="vfat" PARTUUID="f865858a-df77-4f1a-b18c-a494134f412b" /dev/sda2: UUID="2213c9e0-bde0-c07a-5dc6-fa92db3b9aeb" UUID_SUB="126de583-13fd-b611-2860-7f6fc9b2f07e" LABEL="debian:0" TYPE="linux_raid_member" PARTUUID="e0beeb54-9bec-4cfe-8a61-70e64f8bb666" /dev/sda3: UUID="89a83a31-7c6c-7b4a-6313-7dc17b1f5b5d" UUID_SUB="3beaaf76-2166-dabf-7ffe-8e26a185cac6" LABEL="debian:1" TYPE="linux_raid_member" PARTUUID="ce1568c8-073f-4891-843f-1ea97d7e3f2b" /dev/sdb1: UUID="DE61-E2ED" TYPE="vfat" PARTUUID="4e5121bd-f9ff-4d7c-9d76-b5d4b2f997a3" /dev/sdb2: UUID="2213c9e0-bde0-c07a-5dc6-fa92db3b9aeb" UUID_SUB="2e8ddb77-48e0-57f1-aafb-2353541e4ff4" LABEL="debian:0" TYPE="linux_raid_member" PARTUUID="8680225f-2cd5-47dd-a99a-13add748e88d" /dev/sdb3: UUID="89a83a31-7c6c-7b4a-6313-7dc17b1f5b5d" UUID_SUB="a3b5b4a3-3455-17ee-7a6c-d0480688baab" LABEL="debian:1" TYPE="linux_raid_member" PARTUUID="9d20666b-d2df-4a31-9b9b-c28819b5deb4" /dev/md0: UUID="62343176-6dcf-4b0d-b440-825dc83a7553" TYPE="ext4" /dev/md1: UUID="45b8c33e-a710-4062-b98f-a32a45c9d947" TYPE="crypto_LUKS" /dev/mapper/md1_crypt: UUID="uQEZdt-Fdjc-QMUj-4Jn7-y712-xkU7-IOby2F" TYPE="LVM2_member" /dev/mapper/md1_vg0-swap: UUID="b04c0ffc-46b5-4e6d-9c73-8da81cd71eb0" TYPE="swap" /dev/mapper/md1_vg0-root: UUID="c493757e-56a9-4d2b-bb05-437b8a1863cb" TYPE="ext4"
使用 fdisk 命令列出 Linux 附近的分区
打开终端窗口(选择“应用程序”>“附件”>“终端”)。输入su -su 命令提示符后,输入 root 密码,切换到 root 用户。或者使用 sudo 命令,然后运行 fdisk 命令:
或者
这是我从 Linux 桌面看到的内容:
$ su -
# fdisk -l
$ sudo fdisk -l
Disk /dev/sda: 251.1 GB, 251059544064 bytes 255 heads, 63 sectors/track, 30522 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0008fcd3 Device Boot Start End Blocks Id System /dev/sda1 * 1 14 104448 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 14 13068 104857600 83 Linux /dev/sda3 13068 13198 1048576 82 Linux swap / Solaris /dev/sda4 13198 30523 139163648 5 Extended /dev/sda5 13198 30523 139162624 83 Linux
-l 选项显示指定设备的分区表,然后退出。如果没有指定设备,则使用 /proc/partitions(如果存在)中提到的设备。您可以按如下方式指定设备名称(在此示例中列出 /dev/sda 的分区):
$ sudo fdisk -l
sfdisk在Linux中使用命令显示磁盘分区
sfdisk 命令充当 Linux 的分区表操作器。您也可以使用此工具列出分区:
Linux 分区信息:
$ sudo sfdisk -l /dev/sda
$ sudo sfdisk -lu /dev/sda
$ sudo sfdisk -ls /dev/sda
71669760 Disk /dev/sda: 8922 cylinders, 255 heads, 63 sectors/track Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sda1 * 0+ 104- 105- 838656 83 Linux /dev/sda2 104+ 235- 131- 1048576 82 Linux swap / Solaris /dev/sda3 235+ 8922- 8688- 69781504 83 Linux /dev/sda4 0 - 0 0 0 Empty
在哪里,
- -l:列出设备的分区。
- -s:列出分区的大小。
- -u或-uS或-uB或-uC或-uM:以扇区为单位接受或报告(分别为块、柱面、兆字节)。默认值为柱面,至少在几何形状已知的情况下。
列出 Linux 大于 2TB 的分区大小
fdisk 或 sfdisk 命令不会列出任何大于 2TB 的分区。要解决这个问题,您需要将 GNU parted 命令与 GPT 分区结合使用。它支持 Intel EFI/GPT 分区表。分区表 (GPT) 是物理硬盘上分区表布局的标准。它是 Intel 提出的可扩展固件接口 (EFI) 标准的一部分,用于替代过时的 PC BIOS,后者是原始 IBM PC 留下的少数遗物之一。EFI 使用 GPT,而 BIOS 使用主引导记录 (MBR)。在此示例中,使用 parted 命令列出 /dev/sdb 上的分区:
$ sudo parted /dev/sdb
GNU/Linux parted 提示符:
GNU Parted 3.3 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
通过在 (parted) 提示符下输入“ unit TB ”或“ unit GB ”将单位类型设置为 TB 或 GB :
或者
要在 (parted) 提示符下列出分区,请输入 print 命令:
详细信息:
(parted) unit TB
(parted) unit GB
(parted) print
Model: ATA ST33000651AS (scsi) Disk /dev/sdb: 3001GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 0.00GB 3001GB 3001GB ext4 primary (parted)
要退出 parted 会话,请在 (parted) 提示符下输入“quit”:
(parted) quit
如何列出所有块设备上的所有分区布局?
将 -l 或 –list 选项传递给 parted 命令以列出所有块设备上的分区布局:
$ sudo parted -l
示例输出:
图 01:使用 GNU parted 命令显示 Linux 磁盘分区
lssci 命令列出 SCSI 设备(或主机)及其属性
使用lsscsi 命令显示 SCSI 设备(或主机)及其属性:
$ sudo lsscsi
示例输出:
[0:0:0:0] disk ATA TOSHIBA MK5061GS MF00 /dev/sda [1:0:0:0] cd/dvd MATSHITA BD-RE UJ232A 1.10 /dev/sr0 [2:0:0:0] disk ATA ST9500420ASG 0004 /dev/sdb
这是另一个输出:
关于 GUI 工具的说明
Linux 桌面附带“磁盘和存储”实用程序,用于显示磁盘信息并执行日常任务。从 Gnome 下的活动概览中打开磁盘。
将打开一个对话框,我们可以在其中查看磁盘。例如,我的系统中安装了两个 1 TB 三星 NVMe SSD。确保选择磁盘以查看分区信息。有关其他选项,请参阅 gnome帮助部分。
使用硬件检测工具打印 Linux 上的磁盘分区
您可以安装并使用以下工具。我不会在 Linux 服务器上使用和推广第三方工具,因为内置工具提供了所有信息。但是,我在这里添加了它们,因为它们可能对某些人有用。我们可以使用 hwinfo 命令或 inxi 命令来探测硬件,如下所示:
请参阅以下页面:
$ hwinfo | more
$ hwinfo --block | more
$ hwinfo --block --short
$ inxi -P
$ inxi -p | more
结论
您刚刚学习了如何使用各种 Linux 命令列出磁盘分区。有关详细信息,请参阅“ ls* 命令比您想象的更有用”博客文章和手册页,方法是键入以下 man 命令:
$ man fdisk
$ man lsblk
$ man sfdisk
$ man parted