如何在 Linux 中列出磁盘分区

在这个简短的指南中,我们将看到在 Linux 和类 Unix 操作系统中查找和列出磁盘分区的所有可能方法。 在进入主题之前,让我们快速了解一下什么是磁盘分区以及在 Linux 中磁盘分区是如何命名的。

Linux中的磁盘分区

磁盘分区或磁盘切片是一种将物理存储磁盘设备划分为多个逻辑部分的方法。 这些部分称为分区。 硬盘驱动器可以包含一个或多个分区。

在 Linux 和类 Unix 系统中,磁盘通常分为三个分区:

  • 一个分区用于保存系统文件。 它通常安装在 "/" (root 目录)。
  • 一个分区用于保存用户配置文件和他们的个人数据。 它安装在 /home 目录。
  • 还有一个 交换 分割。

所有分区都应该使用文件系统进行格式化,因为 example EXT4,在安装操作系统和/或在其中保存任何数据之前。

分区表信息存储在基于 BIOS 的系统中的主引导记录 (MBR) 和基于 UEFI 的系统中的 GUID 分区表 (GPT) 中。

在系统启动时,BIOS 或 UEFI 扫描所有存储设备,检测 MBR/GPT 区域,找到启动盘,从默认启动盘加载内存中的 bootloader 程序(即 grub2),执行启动代码读取分区表和识别 /boot 分区,将内核加载到内存中,最后将控制权传递给内核。 内核负责其余的引导过程并加载操作系统。

Linux 中的磁盘和分区名称

您需要知道 Linux 在创建、挂载和删除分区时使用的正确名称。

Linux 中的磁盘名称和分区名称与其他操作系统不同。 Linux OS 中的基本命名方案如下:

  • 第一个软盘驱动器的名称是 /dev/fd0.
  • 第二个软盘驱动器的名称是 /dev/fd1, 等等。
  • 检测到的第一个硬盘(主主)被命名为 /dev/sda.
  • 检测到的第二个硬盘名为 /dev/sdb, 等等。
  • 第一张 SCSI CD-ROM 被命名为 /dev/scd0. 它也被称为 /dev/sr0.

你可能想知道什么 sda 确实代表。 sd 原本是为了参考 SCSI磁盘 设备,但它现在通常用于指代 SATA 设备和任何可移动设备。

每个磁盘上的分区通过在磁盘名称后附加一个十进制数字来表示。 为了 example, sda1 是第一个 SCSI 硬盘中的第一个分区, sda2 代表第一个磁盘驱动器的第二个分区,sdb1 是第二个硬盘驱动器的第一个分区,依此类推。 通俗地说, s 指接口(SATA、SAS 或 SCSI), d 用于磁盘, a 是设备ID,数字是分区ID。 这同样适用于添加到系统的后续磁盘。

对于本指南而言,了解 Linux 磁盘和分区名称就足够了。 如果您想了解更多详细信息,快速的网络搜索可能会产生许多相关结果。 让我们回到主题。 在 Linux 中查看磁盘分区的方法有很多种。 首先,我们将从 lsblk 命令行实用程序。

1、在Linux中使用lsblk命令列出磁盘分区

lsblk 实用程序用于显示有关指定块设备以及所有可用块设备的信息,以及它们在 Linux 中的分区方案。 它读取 sysfs 文件系统和 udev db 收集磁盘和分区的信息并以树状格式显示输出。

要使用 lsblk 命令列出磁盘和分区信息,只需不带任何选项运行它:

$ lsblk

或者,

$ sudo lsblk

样本输出:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0    7:0    0   55M  1 loop /snap/core18/1705
loop1    7:1    0   55M  1 loop /snap/core18/1754
loop2    7:2    0 69.4M  1 loop /snap/lxd/15223
loop3    7:3    0 71.2M  1 loop /snap/lxd/15913
loop4    7:4    0 27.1M  1 loop /snap/snapd/7264
loop5    7:5    0 29.8M  1 loop /snap/snapd/8140
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0    1M  0 part 
└─sda2   8:2    0   20G  0 part /
sr0     11:0    1 1024M  0 rom  
使用 Linux 列出磁盘分区 lsblk 命令

正如您在上面的输出中看到的, lsblk 命令列出一个名为 20GB 的磁盘 sda,有两个分区,即 sda1sda2. 如果你看下面 类型 上面输出中的列,它显示了设备的类型,即 磁盘 或者 部分 (即分区)。

您是否注意到还有一个分区名称 sr0? 它表示作为光学介质安装的 ISO 映像。

您的系统中可能有多个设备。 在这种情况下,只需指定磁盘设备名称,如下所示:

$ lsblk /dev/sda

上面的命令将显示第一个磁盘驱动器中的分区详细信息。

您甚至可以显示更多详细信息,包括文件系统类型、UUID、挂载点等,如下所示:

$ lsblk -io KNAME,TYPE,SIZE,MODEL,FSTYPE,UUID,MOUNTPOINT

或者,您可以使用 -fm 显示挂载点、大小、所有者、模式的选项:

$ lsblk -fm

2.在Linux中使用fdisk命令显示磁盘分区

磁盘 是一个命令行、对话框驱动的程序,用于在 Linux 中管理分区表和硬盘上的分区。

要在 Linux 中显示磁盘分区,请运行 fdisk 命令与 -l 选项为 root 或者 sudo 用户:

$ sudo fdisk -l

样本输出:

[...]
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 46F42576-F542-4AD4-9BE4-31E59BAFE3C1

Device     Start      End  Sectors Size Type
/dev/sda1   2048     4095     2048   1M BIOS boot
/dev/sda2   4096 41940991 41936896  20G Linux filesystem
使用显示磁盘分区 fdisk Linux中的命令

在上面的输出中,您将看到所有可用的磁盘分区。

要查看特定磁盘驱动器中的分区表,请明确提及其名称,如下所示:

$ sudo fdisk -l /dev/sda

3、在Linux中使用sfdisk检查硬盘分区

磁盘 is 是一个面向脚本的工具,用于对任何块设备进行分区。 Sfdisk 的用法与 fdisk 的用法相同。

使用以下命令检查 Linux 中的硬盘分区 sfdisk 命令,运行:

$ sudo sfdisk -l

您还可以检查特定设备中的分区。

$ sudo sfdisk -l /dev/sda

4.使用cfdisk检查Linux磁盘分区

磁盘 是一个基于 curses 的命令行程序,用于在 Linux 和类 Unix 系统中对任何块设备进行分区。

使用检查 Linux 中所有可用的磁盘分区 cfdisk, 跑:

$ sudo cfdisk

样本输出:

使用 cfdisk 检查 Linux 磁盘分区使用 cfdisk 检查 Linux 磁盘分区

要退出,请按 q 或选择 辞职 使用箭头键选择并按 ENTER。

默认情况下,Cfdisk 会列出以下分区的详细信息 /dev/sda 磁盘。

5.在Linux中使用blkid查找磁盘分区

blkid 是另一个命令行程序,用于列出所有可识别的分区及其 UUID(通用唯一标识符)。

要列出 Linux 机器中的所有分区,请运行 blkid root 或者 sudo 用户:

$ sudo blkid

样本输出

/dev/sda2: UUID="81bb4976-a820-4e0d-92ab-1a754f9837bd" TYPE="ext4" PARTUUID="ea153271-0c12-4b95-9dee-3dab58a1fd03"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/sda1: PARTUUID="02fcad04-66ea-41e0-8673-4e3fbbf1883a"
在 Linux 中使用 blkid 查找磁盘分区在 Linux 中使用 blkid 查找磁盘分区

您还可以列出表中的所有分区,包括当前挂载点:

$ sudo blkid -o list

样本输出:

device     fs_type label    mount point    UUID
------------------------------------------------------------------------
/dev/sda2  ext4             /              81bb4976-a820-4e0d-92ab-1a754f9837bd
/dev/loop0 squashfs         /snap/core18/1705 
/dev/loop1 squashfs         /snap/core18/1754 
/dev/loop2 squashfs         /snap/lxd/15223 
/dev/loop3 squashfs         /snap/lxd/15913 
/dev/loop4 squashfs         /snap/snapd/7264 
/dev/loop5 squashfs         /snap/snapd/8140 
/dev/sda1                   (not mounted)  

6.使用hwinfo工具获取磁盘分区详情

华文资讯 是一个免费的、开源的命令行实用程序,用于查找 Linux 系统硬件信息。 它会探测 Linux 系统中存在的硬件并显示每个硬件设备的详细信息。

许多 Linux 发行版默认不安装 Hwinfo。 请参考以下链接在您的 Linux 系统中安装 Hwinfo。

  • 如何使用 Hwinfo 查找 Linux 系统硬件信息

安装后,运行以下命令以获取 Linux 系统中的磁盘分区列表 hwinfo 效用:

$ hwinfo --block --short

样本输出:

disk:                                                           
  /dev/sda             VBOX HARDDISK
partition:
  /dev/sda1            Partition
  /dev/sda2            Partition
cdrom:
  /dev/sr0             VBOX CD-ROM
使用 hwinfo 获取磁盘分区详细信息使用 hwinfo 获取磁盘分区详细信息

这里 --short 选项用于以用户友好的格式精确显示磁盘名称、分区名称和 CD ROM,不包括所有其他细节。

如果要显示分区的完整详细信息,只需删除 --short 选项。

7.用inxi列出Linux分区详情

印西 是一个命令行系统信息工具。 这个脚本是专门为控制台和 IRC 构建的。 它也被用作论坛技术支持的调试工具,以快速确定用户的系统配置和硬件。

Inxi 默认不可用。 您需要将它安装在您的 Linux 机器中,如以下指南所示:

  • 如何使用 inxi 查找 Linux 系统详细信息

安装后,列出分区详细信息 inxi使用 -P 标志:

$ inxi -P

样本输出:

Partition:
  ID-1: / size: 19.56 GiB used: 5.72 GiB (29.3%) fs: ext4 
  dev: /dev/sda2 

如果要显示完整的分区详细信息,请使用 -p (很小的字):

$ inxi -p

样本输出:

Partition: ID-1: / size: 19.56 GiB used: 5.72 GiB (29.3%) fs: ext4 dev: /dev/sda2 
           ID-2: /snap/core18/1705 raw size: 54.9 MiB size: <superuser/root required> used: <superuser/root required> 
           fs: squashfs dev: /dev/loop0 
           ID-3: /snap/core18/1754 raw size: 54.9 MiB size: <superuser/root required> used: <superuser/root required> 
           fs: squashfs dev: /dev/loop1 
           ID-4: /snap/lxd/15223 raw size: 69.3 MiB size: <superuser/root required> used: <superuser/root required> 
           fs: squashfs dev: /dev/loop2 
           ID-5: /snap/lxd/15913 raw size: 71.2 MiB size: <superuser/root required> used: <superuser/root required> 
           fs: squashfs dev: /dev/loop3 
           ID-6: /snap/snapd/7264 raw size: 27.1 MiB size: <superuser/root required> used: <superuser/root required> 
           fs: squashfs dev: /dev/loop5 
           ID-7: /snap/snapd/8140 raw size: 29.8 MiB size: <superuser/root required> used: <superuser/root required> 
           fs: squashfs dev: /dev/loop4 
使用 Inxi 列出 Linux 分区详细信息使用 Inxi 列出 Linux 分区详细信息

8.通过探测proc文件系统手动列出所有磁盘分区

过程文件系统 (或不久 过程) 是由 Linux 内核维护的虚拟文件系统。 它有时也被称为进程信息伪文件系统。 它不包含“真实”文件,而是运行时系统信息,例如系统内存、安装的设备、硬件配置等。所有这些信息都可以在一个名为的特殊目录下获得 /proc 在 Linux 中。

磁盘和分区详细信息可在 /proc/partitions 文件。 因此,我们可以通过查看该文件的内容来列出所有磁盘分区 cat 命令:

$ cat /proc/partitions 

样本输出:

major minor  #blocks  name

   7        0      56264 loop0
   7        1      56268 loop1
   7        2      71008 loop2
   7        3      72952 loop3
   7        4      30540 loop4
   7        5      27740 loop5
  11        0    1048575 sr0
   8        0   20971520 sda
   8        1       1024 sda1
   8        2   20968448 sda2
在 Linux 中通过探测 proc 文件系统列出磁盘分区在 Linux 中通过探测 proc 文件系统列出磁盘分区

9、在Linux中使用parted查看磁盘分区

分开 是一个命令行程序,用于在 Linux 和类 Unix 系统中操作磁盘分区。 它支持
多种分区表格式,包括 MS-DOS 和 GPT。 Parted 专门用于在大于 2TB 的磁盘中创建和管理分区。

要查看 Linux 中的磁盘分区,请运行 parted 命令与 -l 选项:

$ sudo parted -l

样本输出:

Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2097kB  1049kB                     bios_grub
 2      2097kB  21.5GB  21.5GB  ext4
在 Linux 中使用 parted 查看磁盘分区在 Linux 中使用 parted 查看磁盘分区

上述所有工具都是基于命令行的。 如果你是一个对 Terminal 不太熟悉的新手,你可以使用以下两个图形工具来检查 Linux 中的分区详细信息。

10.在Linux中使用GParted查看磁盘分区详情

GNOME 分区编辑器 (或不久 GParted) 是一个图形前端 parted 命令行工具。 使用 GParted,您可以通过简单易用的图形界面创建和管理磁盘分区。

默认情况下不安装 GParted,但它在多个 Linux 发行版的默认存储库中可用。 因此,您可以使用发行版的默认包管理器安装 GParted。 为了 exampleGpated 可以安装在 Debian、Ubuntu 和其他基于 DEB 的系统上,如下所示:

$ sudo apt install gparted

要查看您的磁盘分区表,只需从菜单或 Dash 打开 GParted 实用程序。

使用 GParted 查看磁盘分区详细信息使用 GParted 查看磁盘分区详细信息

重要的提示: 除非您知道自己在做什么,否则不要更改任何内容。

11. 使用 GNOME Disks 查找磁盘分区

GNOME 磁盘 或 gnome-disk-utility 是一个图形实用程序,用于在 Linux 中查看、修改和配置磁盘和媒体。 它预装在具有 GNOME 桌面环境的 Linux 发行版中。

打开 GNOME 磁盘实用程序以查找硬盘中的所有可用分区。

使用 GNOME 磁盘查找磁盘分区使用 GNOME 磁盘查找磁盘分区

就这样。 这些是列出 Linux 磁盘分区的几种方法。 还有许多其他工具和命令可用于查找磁盘中的分区。 我想我已经覆盖得够多了。 如果您认为我错过了此列表中的任何重要工具,请随时在下面的评论部分留言。

Christopher Muschitz 的特色图片来自 关注.