PARTUUID 在 Ubuntu 14.04 下不起作用

PARTUUID 在 Ubuntu 14.04 下不起作用

我正在尝试使用以下方法找出我的 USB 分区的起始位置

lsblk -o name,label,partuuid

它给了我以下输出:

lsblk: unknown column: partuuid

我认为“partuuid”不是 Ubuntu 允许的命令。有什么办法可以找到此信息吗?

答案1

如果目标是通过“partuuid”(实际上是 GUID)来识别分区,您可以通过 GPT fdisk(gdisksgdiskcgdisk)获取分区唯一 GUID。如果您需要从脚本或单行命令中获取它,sgdisk这是最好的选择。您可以这样做:

$ sudo sgdisk -i 2 /dev/sda | grep unique
Partition unique GUID: 4D72D277-2E94-4760-8B38-8A487615E2E3

-i 2此示例从分区 2 (即/dev/sda)获取分区的唯一 GUID(“partuuid” /dev/sda2。此示例通过管道传输输出,grep只是为了隔离相关的一行 - 此特定sgdisk命令返回七行输出,其中包含有关分区的各种类型的信息。

要将 GUID 与已知值匹配,您需要循环遍历所有分区,对输出进行进一步处理。与查看 的内容相比/dev/disk/by-partuuid/,这可能很尴尬,但根据更广泛的目标,它可能会有所帮助或必要。例如,如果您尝试收集有关分区(但不是该选项的输出包括分区的名称(以及它们所包含的文件系统),sgdisk而不仅仅是分区的 GUID —— 正如我所说,该-i选项有七行输出:

$ sudo sgdisk -i 2 /dev/sda
Partition GUID code: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (Linux filesystem)
Partition unique GUID: 4D72D277-2E94-4760-8B38-8A487615E2E3
First sector: 1128448 (at 551.0 MiB)
Last sector: 2664447 (at 1.3 GiB)
Partition size: 1536000 sectors (750.0 MiB)
Attribute flags: 0000000000000000
Partition name: 'Unused /boot'

如果您想显示所有摘要数据,甚至只是其中的三四行,那么使用它可能会sgdisk比尝试从其他来源拼凑起来更好。

答案2

我找到 UUID 的方法是首先确定我想从哪个 USB 分区启动,我通过输入

lsblk

它给了我一个开发树,概述了 SDB1、SDB2 和 SDB3。我知道我想从 SDB2 启动,因为这是根文件系统。

我编写了一个小脚本,将 /dev/sdb 作为变量传递。

#!/bin/sh
sudo dd if=/dev/$1 bs=4 skip=110 count=1 | hexdump

它给了我错误的字节序格式的 PARTUUID,所以我只是把它换了一下。所以 SDB2 的 UUID 是 xxxxxxxx-02

答案3

PARTUUID 在 Ubuntu 14.04 下不起作用

根据 OP 问题下的评论,Ubuntu 14.04 不支持该PARTUUID标志。

PARTUUID 在 Ubuntu 16.04 下运行,显示你的 USB 驱动器

正如您所见,PARTUUID它可以在我的 Ubuntu 16.04 上正常工作,显示 USB 拇指驱动器/闪存驱动器的 UUID:

$ lsblk -o NAME,FSTYPE,LABEL,PARTUUID,MOUNTPOINT,SIZE,MODEL
NAME        FSTYPE LABEL            PARTUUID                             MOUNTPOINT   SIZE MODEL
sdb                                                                                   7.6G USB Flash Disk  
└─sdb1      vfat   LIVE_USB         bb958812-01                          /media/ric   7.6G 
sda                                                                                 931.5G HGST HTS721010A9
├─sda4      ntfs   WINRETOOLS       c8cd5c7e-48fc-4aac-8c57-abcf6819b3ce              450M 
├─sda2                              0e4d96d3-5164-4d2f-9786-5e7b5066034e              128M 
├─sda5      ntfs   Image            b929ccc6-7ceb-4c50-a14c-8e41bf9d401f             11.4G 
├─sda3      ntfs   HGST_Win10       8778bdd3-e557-4f16-8fd6-9d44dcfe0c0a /mnt/d       919G 
└─sda1      vfat   ESP              edde67a5-6d32-425b-8e4e-6343b3e3f6f1              500M 
nvme0n1                                                                               477G Samsung SSD 960 PRO
├─nvme0n1p5 ext4   NVMe_Ubuntu_16.0 f1f35cf5-1b79-4d43-84e3-9b10ea3f9e3c /           44.6G 
├─nvme0n1p3                         6471dce0-3ba5-49b9-bd13-667ad8f72b10               16M 
├─nvme0n1p1 ntfs                    f5872f63-c0c7-4136-b65d-b89becdfc138              450M 
├─nvme0n1p6 swap   Linux Swap       4aeb7d53-7ad5-41b2-99f3-cae583bca6b7 [SWAP]       7.9G 
├─nvme0n1p4 ntfs   NVMe_Win10       f354f364-9819-4209-955a-297505eebfd0 /mnt/c     414.9G 
├─nvme0n1p2 vfat                    5a989e57-3bb3-4821-907f-5822bb14a635 /boot/efi     99M 
└─nvme0n1p7 ntfs   Shared_WSL+Linux 1ca41115-5e65-4ade-8825-b9a2807ae51c /mnt/e         9G 

答案4

仅查看 UUIDPARTUUID 您可以使用ls

  • ls -l /dev/disk/by-partuuid/查看所有分区的 partuuid

  • ls -l /dev/disk/by-partuuid/查看所有分区的 uuid


UUID 的正确标签只是 uuid,因此在命令中将“partuuid”替换为“uuid”。

lsblk -o name,label,uuid

您可能sudo还需要读取 UUID。


但实际上,如果你尝试找出我的 USB 分区的起始位置您可能想要使用其他东西,例如fdiskcfdiskparted或可能是最好的gparted

相关内容