我已按照raspberry pi论坛中的步骤进行操作,以使我的Raspberry Pi 3使用USB密钥而不是SD卡作为根文件系统,以希望它对断电更加可靠。流程有效,但我浪费了时间,因为我混淆了UUID和PARTUUID进行分区(使用blkid并查看它们之间的区别)。两者的目的是什么?通过在各处使用UUID而不是PARTUUID来解决我的困惑比较容易,但是失败了,我不得不使用PARTUUID(我认为可以使用混合,但我没有尝试搜索它)。 br />
请注意,引用的页面暗示该驱动器的UUID是该分区的PARTUUID,但是我希望该驱动器的所有分区的UUID都相同,事实并非如此。

评论

嗨,AProgrammer,欢迎来到Raspberry Pi堆栈交换。我认为您应该考虑这不是有关Raspberry Pi的问题!如果可能在主要的Linux论坛中,那么会有更多的人看到此问题(既可以回答问题,又可以从提供的答案中受益)。

@TaiViinikka,我承认在此和unix.se之间犹豫不决,但考虑到我遇到了树莓派问题,并且在使用x86上的debian和debian衍生发行版工作了23年之后,包括UUID,但没有遇到过问题满足它-我的反思是造成问题的原因之一-尽管我可能与树莓派有关系。

这是可以理解的,我很高兴您得到了答案。我的经历(很简短)与您的经历有所不同。我拥有的每个分区的UUID和PARTUUID不匹配:root @ herald:〜#cat / proc / cpuinfo vendor_id:真正的Intel型号名称:Intel(R)Atom(TM)CPU D2550 @ 1.86GHz root @ herald:〜#blkid / dev / sda1:LABEL =“启动” UUID =“ e92827af-6c5d-4438-b22a-8f9b3b4dc4f0” TYPE =“ ext4” PARTUUID =“ 44e5688f-01”这样我得出了相反的结论。

#1 楼

关于UUID和PARTUUID之间的区别
通过指定UUID选项,您可以得到有关PARTUUID-p之间区别的一些提示。
blkid -p /dev/sda1

或您要查看的任何设备/分区。您可能已经注意到,如果同一个UUID设备上有多个分区,则PARTUUID几乎都是相同的,并附加了分区号。
UUID保证是唯一的。据我所知,在宇宙的生命周期内不会发生碰撞。但是,您会注意到PARTUUID短得多。这些是“本地”唯一的,并且冲突很可能发生在所有已知的PARTUUIDs之间。
在UUID上
UUID只是唯一的标识符。它们用于许多不同的目的。您可以使用uuidgen函数生成它们。
有关UUID的更多信息,请参见:
$man uuidgen 

或Internet:uuidgen的联机帮助页
更多UUID使用示例
$cat /etc/fstab

对于较新的GNU / Linux系统,您将拥有所有分区及其UUID的列表。为每个新分区生成一个新的UUID。因此,如果对给定的驱动器进行重新分区,则该驱动器的所有blkid UUID都会更改。不同的顺序。在以前的时间中,fstab将具有诸如/dev/sda1之类的标识符。如果具有某种方式更改了安装顺序,则其缺点是sda1可能是物理上不同的驱动器或分区。
在PARTUUIDs
PARTUUIDs是GUID分区表(GPT)的组成部分,它替代了与主引导记录(MBR)相关的磁盘分区。
有关更多信息,请参阅Linux.com-在Linux中使用新的GUID分区表
Linux .com说:

GPT GUID(全局唯一标识符)和我们熟悉的Linux UUID(通用唯一标识符)虽然具有相同的有用目的,但它们具有不同的用途:为块设备提供唯一的名称。 Linux UUID是文件系统的功能,并且在创建文件系统时创建。要查看Linux UUID,只需启动blkid命令
,请注意分区GUID代码以及其显示为“ Microsoft基本数据”的方式。是的,Microsoft总是会崩溃,因为这是EXT4分区,因此Windows无法读取它,但是会将其视为未格式化的分区。在当前版本的gdisk中,您将看不到这一点,因为直到2011年为止,还没有Linux文件系统GUID。现在有了,所以如果您不使用像我的旧Linux(Mint 13),则会看到一个正确的Linux GUID(0FC63DAF-8483-4772-8E79-3D69D8477DE4)。
分区唯一的GUID是您将在fstab中使用的内容,例如:
PARTUUID = 8C208C30-4E8F-4096-ACF9-858959BABBAA / data ext4用户,默认值为0 0


评论


谜底加深了。查看几个块设备,每个分区有一个设备PTUUID,有一个UUID和PARTUUID。根据磁盘以及可能对其进行格式化和分区的工具而定,PARTUUID是否源自磁盘PTUUID。我的问题是关于分区UUID,您可以将其与带有blkid的PARTUUID一起使用。

– AProgrammer
17年10月10日在17:15

@AProgrammer:在我的答案中添加了一些信息。

–RubberStamp
17年10月10日在18:16

好的,总而言之,可以通过blkid -p获得一个磁盘UUID,将其称为PTUUID,有一个分区UUID,其blkid调用PARTUUID,某些文件系统具有一个UUID,blk​​id调用UUID。我仍然不清楚为什么至少在某些地方,当我的Linux系统仅引用UUID时,将根文件系统移至树莓派上的USB密钥时,为什么必须使用PARTUUID而不是UUID,但我不是自愿的进行更多测试,并检查真正需要PARTUUID的地方,以及在需要的地方仍可以使用UUID的地方,但我想只有cmdline.txt才需要。

– AProgrammer
17年11月11日在17:31

我在两个具有相同UUID的不同磁盘上有两个分区。对于“宇宙的生命”而言,如此之多……

–étale-cohomology
19年11月11日在19:14

#2 楼

据我了解。

UUID一词通常是指“通用唯一标识符”,在Windows世界中称为GUID。有几种不同的方案,但是大多数情况下,现代UUID / GUID本质上是一个很大的随机数或哈希值和一些标志位。唯一标识符,它是文件系统内部存储的元数据的一部分。 “ PARTUUID”是指存储在分区表中或从分区表派生的分区的唯一标识符。

这些唯一标识符可以是也可以不是实际的UUID。据我所知。


对于GPT分区表,“ PARTUUID”是GPT分区表的GUID。
对于MBR分区表,“ PARTUUID”形成通过将磁盘标识符与分区号连接起来

对于EXT4,Linux swap,BTRFS以及可能是其他Linux本地文件系统类型,“ UUID”是存储在文件系统元数据中的UUID。
对于FAT和NTFS,“ UUID”似乎是卷序列号,FAT为32位,NTFS为64位。

请注意,通过“ UUID”和“ PARTUUID”安装根文件系统的支持各不相同。 。 IIRC在没有initrd的情况下运行的内核可以通过“ PARTUUID”安装,但不能通过“ UUID”安装。较旧版本的initramfs-tools可以通过“ UUID”安装,而不能通过“ PARTUUID”安装,而最新的initramfs-tools支持这两种。