AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 816519
Accepted
roelvanmeer
roelvanmeer
Asked: 2016-11-23 23:24:06 +0800 CST2016-11-23 23:24:06 +0800 CST 2016-11-23 23:24:06 +0800 CST

linux - 如何列出特定类型的分区?

  • 772

我正在寻找一种方法来列出 Linux 上特定类型的所有分区。(具体来说:所有 EFI 系统分区)。

我知道blkid可以过滤文件系统类型:该命令blkid -t TYPE=vfat返回正确的结果,但不是很健壮:可能有其他不是 ESP 的 vfat 文件系统,或者可能有使用不同文件系统格式化的 ESP。

那么,是否有一个等效的命令可以列出设备但过滤分区类型?

编辑

我需要所有 EFI 系统分区(或 ESP)的列表。这些分区EF00在 gdisk 中具有分区类型或ef在 fdisk 中具有分区类型。它们最常被格式化为 vfat。现在,我可以使用blkid列出所有使用 vfat 格式化的分区,但这会留下两个问题:
a)可能存在未使用 vfat 格式化(或根本未格式化)的 EFI 分区,这些分区将从列表中丢失,并且
b)可能存在格式为 vfat 的常规文件系统,这些文件系统会错误地包含在列表中。因此,匹配文件系统类型不是可行的方法。这就是为什么我正在寻找可以匹配分区类型的东西,所以EF00或ef。

如果这样的命令不存在,我可能需要执行以下操作来获取我想要的信息:
- 列出所有磁盘
- 对于每个磁盘,找出上面是否有 MBR 或 GPT 分区表
- 列出分区表
- 过滤结果以仅打印 ESP 分区

这既麻烦又容易出错,所以如果blkid存在能够匹配分区类型的等价物,我想使用它。

linux partition uefi partition-table
  • 3 3 个回答
  • 2326 Views

3 个回答

  • Voted
  1. Best Answer
    Johan Myréen
    2016-11-24T06:08:33+08:002016-11-24T06:08:33+08:00

    lsblk -o +PARTTYPE在列表中包含分区类型 UUID。EFI 系统分区类型 UUID 是C12A7328-F81F-11D2-BA4B-00A0C93EC93B,因此对此进行 grepping(小写,或使用-i带有 grep 的标志)列出了您的 ESP。

    • 2
  2. gruntboy
    2016-11-24T04:05:43+08:002016-11-24T04:05:43+08:00

    1)对于特定类型的列表分区:

    :~# lsblk -ln -o NAME,TYPE
    ...
    sda          disk
    sda1         part
    sda1_crypt   crypt
    vg0xa-system lvm
    vg0xa-swap   lvm
    vg0xa-tmp    lvm
    vg0xa-var    lvm
    vg0xa-usr    lvm
    ...
    

    也可以看看:lsblk -ln -o NAME,PARTTYPE

    2)或更具体地说:

    :~# lsblk -ln -o NAME,TYPE | grep sda1_crypt
    sda1_crypt   crypt
    
    • 0
  3. Tombart
    2021-02-12T02:06:35+08:002021-02-12T02:06:35+08:00

    为了列出 EFI 分区,您可以使用:

    $ lsblk -ln -o NAME,LABEL | grep EFI_SYSPART | awk '{print $1}'
    nvme0n1p1
    nvme1n1p1
    

    或按文件系统归档FSTYPE:

    lsblk -ln -o NAME,FSTYPE | grep vfat
    nvme0n1p1 vfat
    nvme1n1p1 vfat
    
    • 对于每个磁盘,找出上面是否有 MBR 或 GPT 分区表

    尝试解析 JSON 输出lsblk -J(你需要 version > 2.25,2.33似乎支持这个)。

    您可以使用jqPython/Ruby/Perl 脚本来处理它:

    $ lsblk -J -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL | jq .blockdevices
    [
      {
        "name": "sr0",
        "fstype": null,
        "size": "1024M",
        "mountpoint": null,
        "label": null
      },
      {
        "name": "nvme0n1",
        "fstype": null,
        "size": "894,3G",
        "mountpoint": null,
        "label": null,
        "children": [
          {
            "name": "nvme0n1p1",
            "fstype": "vfat",
            "size": "511M",
            "mountpoint": "/boot/efi",
            "label": "EFI_SYSPART"
          },
          {
            "name": "nvme0n1p2",
            "fstype": "linux_raid_member",
            "size": "29,3G",
            "mountpoint": null,
            "label": null,
            "children": [
              {
                "name": "md2",
                "fstype": "ext4",
                "size": "29,3G",
                "mountpoint": "/",
                "label": "/"
              }
            ]
          },
    ...
    
    • 0

相关问题

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 是否有充分的理由在 Windows 上对磁盘进行分区?

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve