ความแตกต่างระหว่าง UUID และ PARTUUID คืออะไร


15

ฉันได้ทำตามขั้นตอนในฟอรัม raspberry piเพื่อให้ Raspberry Pi 3 ของฉันใช้คีย์ USB แทนการ์ด SD เป็นระบบไฟล์รากด้วยหวังว่าจะทำให้การสูญเสียพลังงานแข็งแกร่งขึ้น

กระบวนการทำงาน แต่ฉันเสียเวลาเพราะฉันสับสน UUID และ PARTUUID สำหรับพาร์ติชัน (ใช้ blkid และดูว่าพวกเขาจะแตกต่างกันอย่างไร) จุดประสงค์ของทั้งคู่คืออะไร? มันง่ายกว่าที่จะแก้ไขความสับสนของฉันโดยใช้ UUID แทน PARTUUID ทุกที่ แต่ล้มเหลวฉันต้องใช้ PARTUUID (ฉันคิดว่าคงเป็นไปได้ที่จะใช้มิกซ์ แต่ฉันไม่ได้พยายามค้นหา)

โปรดทราบว่าหน้าที่อ้างถึงบอกเป็นนัยว่า UUID นั้นใช้สำหรับไดรฟ์คือ PARTUUID สำหรับพาร์ติชัน แต่จากนั้นฉันก็คาดหวังว่า UUID จะเหมือนกันสำหรับพาร์ติชันทั้งหมดของไดรฟ์


1
สวัสดี AProgrammer และยินดีต้อนรับสู่การแลกเปลี่ยน Raspberry Pi ฉันคิดว่าคุณควรพิจารณาว่านี่ไม่ใช่คำถามเกี่ยวกับ Raspberry Pi! ผู้คนจำนวนมากจะเห็นคำถามนี้ (ทั้งเพื่อตอบและได้รับประโยชน์จากคำตอบที่นำเสนอ) ถ้าอยู่ในฟอรัม Linux หลัก
Tai Viinikka

@ TaiViinikka ฉันยอมรับว่าลังเลระหว่างสิ่งนี้กับ unix.se แต่เนื่องจากฉันพบปัญหากับราสเบอร์รี่ pi และฉันไม่เคยพบปัญหาหลังจากทำงานกับเดเบียนและเดเบียนที่กระจายมาเป็นเวลา 23 ปีใน x86 รวมถึง UUID ที่ไม่มี การพบมัน - ปฏิกิริยาตอบสนองของฉันเป็นส่วนหนึ่งของสาเหตุของปัญหาของฉัน - แม้ว่าฉันจะมีความสัมพันธ์กับราสเบอร์รี่ปี่
AProgrammer

ค่อนข้างเข้าใจได้และฉันดีใจที่คุณได้รับคำตอบ ประสบการณ์ของฉัน [ผู้บวชมาก] แตกต่างจากของคุณ ทุกพาร์ติชันที่ฉันมี UUID และ PARTUUID ไม่ตรงกัน: root @ herald: ~ # cat / proc / cpuinfo ผู้ขาย_id: ชื่อรุ่น GenuineIntel: Intel (R) Atom (TM) CPU D2550 @ 1.86GHz root @ herald: ~ # blkid / dev / sda1: LABEL = "Boot" UUID = "e92827af-6c5d-4438-b22a-8f9b3b4dc4f0" TYPE = "ext4" PARTUUID = "44e5688f-01" และฉันก็มาถึงข้อสรุปที่ตรงกันข้าม
Tai Viinikka

คำตอบ:


14

บนความแตกต่างระหว่าง UUID และ PARTUUID

คุณสามารถรับคำแนะนำเล็กน้อยเกี่ยวกับความแตกต่างระหว่างUUIDและPARTUUIDโดยการระบุ-pตัวเลือก

blkid -p /dev/sda1

หรืออุปกรณ์ / พาร์ทิชันใด ๆ ที่คุณกำลังดูอยู่ คุณอาจสังเกตเห็นว่าหากมีหลายพาร์ติชันบนUUIDอุปกรณ์เดียวกันPARTUUIDส่วนใหญ่จะเหมือนกันกับหมายเลขพาร์ติชันต่อท้าย

A UUIDรับประกันว่าจะไม่ซ้ำกัน เท่าที่ฉันรู้การชนจะไม่เกิดขึ้นภายในช่วงชีวิตของจักรวาล อย่างไรก็ตามคุณจะทราบว่าPARTUUIDสั้นกว่ามาก เหล่านี้จะหมายถึงการเป็น "ท้องถิ่น" PARTUUIDsที่ไม่ซ้ำกันและการชนส่วนใหญ่มีแนวโน้มเกิดขึ้นระหว่างที่รู้จักกันทั้งหมด

บน UUID

UUID เป็นเพียงตัวระบุที่ไม่ซ้ำกัน พวกเขาจะใช้เพื่อวัตถุประสงค์ที่แตกต่างกัน คุณสามารถสร้างพวกเขาโดยใช้uuidgenฟังก์ชั่น

สำหรับการอ่านเพิ่มเติมเกี่ยวกับ UUIDs:

$man uuidgen 

หรืออินเทอร์เน็ต:

manpage สำหรับ uuidgen

UUID เพิ่มเติมบางตัวอย่างใช้

$cat /etc/fstab

สำหรับระบบ GNU / Linux ที่ใหม่กว่าคุณจะมีรายการพาร์ติชั่นและ UUID ทั้งหมด UUID ใหม่ถูกสร้างขึ้นสำหรับแต่ละพาร์ติชันใหม่ ดังนั้นหากแบ่งพาร์ติชันของไดรฟ์ที่กำหนดไว้ UUID ของ blkid ทั้งหมดใหม่สำหรับไดรฟ์นั้นจะเปลี่ยนไป

ส่วนหนึ่งของเหตุผลที่ UUID ถูกใช้เป็นตัวระบุของพาร์ติชันและไดรฟ์คือการรักษาตัวระบุไว้แม้ว่าจะมีการเพิ่มหรือติดตั้งไดรฟ์ในลำดับอื่น ในครั้งก่อนผู้fstabจะมีตัวระบุเช่น/dev/sda1... นี่มีข้อเสียของการsda1เป็นไดรฟ์หรือพาร์ติชันที่แตกต่างกันทางกายภาพถ้าอย่างใดลำดับการติดตั้งถูกเปลี่ยน

บนพาร์ทเนอร์

PARTUUIDs เป็นส่วนประกอบของ GUID Partition Tables (GPT) ซึ่งใช้แทนการแบ่งพาร์ติชันดิสก์ที่เกี่ยวข้องกับ Master Boot Record (MBR)

สำหรับการอ่านเพิ่มเติมดูLinux.com - การใช้ตารางพาร์ทิชัน GUID ใหม่ใน Linux

Linux.com พูดว่า:

GPT GUIDs (ตัวระบุที่ไม่ซ้ำกันทั่วโลก) และ Linux UUIDs ที่คุ้นเคยของเรา (ตัวระบุที่ไม่ซ้ำแบบสากล) ไม่ใช่สิ่งเดียวกัน Linux UUID เป็นฟังก์ชันของระบบไฟล์และสร้างขึ้นเมื่อระบบไฟล์ถูกสร้างขึ้น หากต้องการดู Linux UUID ให้เปิดคำสั่ง blkid ให้สังเกตรหัสพาร์ติชัน GUID และวิธีที่ระบุว่า "ข้อมูลพื้นฐานของ Microsoft" ใช่แล้ว Microsoft มักจะล้มเหลวเพราะพาร์ติชั่น EXT4 นี้ทำให้ Windows ไม่มีทางอ่าน แต่จะเห็นว่ามันเป็นพาร์ติชั่นที่ไม่ฟอร์แมต คุณจะไม่เห็นสิ่งนี้ด้วย gdisk รุ่นปัจจุบันเนื่องจากจนถึงปี 2011 ไม่มีระบบไฟล์ Linux GUID ตอนนี้ก็มีดังนั้นหากคุณไม่ได้ใช้ Linux ตัวเก่าเหมือนของฉัน (มิ้นต์ 13) คุณก็จะได้

GUID ที่ไม่เหมือนใครของ Partition คือสิ่งที่คุณจะใช้ใน fstab เช่นนี้:

PARTUUID = 8C208C30-4E8F-4096-ACF9-858959BABBAA / ข้อมูลผู้ใช้ ext4 ค่าเริ่มต้น 0 0


ความลึกลับที่ลึกซึ้งยิ่งขึ้น ดูที่อุปกรณ์ป้องกันหลาย ๆ อันมี PTUUID ของอุปกรณ์และมี UUID และ PARTUUID ต่อพาร์ติชัน ขึ้นอยู่กับดิสก์และอาจเป็นเครื่องมือที่จัดรูปแบบและแบ่งพาร์ติชันนั้น PARTUUID นั้นมาจากดิสก์ PTUUID หรือไม่ คำถามของฉันเกี่ยวกับพาร์ติชัน UUID ซึ่งคุณสามารถใช้ร่วมกับ PARTUUID blkidได้
AProgrammer

@AProgrammer: เพิ่มข้อมูลลงในคำตอบของฉัน
RubberStamp

1
ตกลงโดยสรุปมีดิสก์ UUID ที่คุณสามารถรับได้blkid -pซึ่งเรียกว่า PTUUID มีพาร์ติชัน UUID ที่blkidเรียก PARTUUID และบางระบบไฟล์มี UUID ที่ blkid เรียก UUID ฉันยังไม่ชัดเจนว่าทำไมฉันต้องใช้ PARTUUID แทน UUID อย่างน้อยในบางแห่งเมื่อย้ายระบบไฟล์รูทไปยังคีย์ USB บนราสเบอร์รี่เมื่อระบบ Linux ของฉันอ้างอิง UUID แต่ฉันไม่ได้อาสา เพื่อทำการทดสอบเพิ่มเติมและตรวจสอบว่ามีความต้องการ PARTUUID หรือไม่และฉันยังสามารถใช้ UUID ได้ถ้าฉันต้องการ แต่ฉันเดาว่าcmdline.txtมันต้องการเท่านั้น
AProgrammer

ฉันมีสองพาร์ติชันสำหรับดิสก์สองตัวที่มี UUID เดียวกัน มากสำหรับ " อายุการใช้งานของจักรวาล " ...
étale-cohomology

3

ตามที่ฉันเข้าใจ

คำว่า UUID โดยทั่วไปหมายถึง "ตัวระบุที่ไม่ซ้ำแบบสากล" หรือที่รู้จักกันในโลกหน้าต่างว่าเป็น GUID มีโครงร่างที่แตกต่างกันเล็กน้อย แต่สำหรับ UUIDs / GUID ที่ทันสมัยส่วนใหญ่นั้นโดยทั่วไปแล้วจะเป็นจำนวนสุ่มขนาดใหญ่หรือแฮชและบิตแฟล็กเล็กน้อย

ในกรณีเฉพาะของการเมานต์ระบบไฟล์บน linux "UUID" หมายถึงตัวระบุเฉพาะที่เป็นส่วนหนึ่งของข้อมูลเมตาที่เก็บไว้ภายในระบบไฟล์ "PARTUUID" หมายถึงตัวระบุที่ไม่ซ้ำกันสำหรับพาร์ติชันที่เก็บไว้ในหรือได้รับมาจากตารางพาร์ทิชัน

ตัวระบุที่ไม่ซ้ำกันเหล่านี้อาจหรืออาจไม่ใช่ UUID ที่แท้จริง เท่าที่ฉันสามารถบอกได้

  • สำหรับตารางพาร์ติชัน GPT "PARTUUID" เป็น GUID จากตารางพาร์ติชัน GPT
  • สำหรับตารางพาร์ติชัน MBR "PARTUUID" จะเกิดขึ้นจากการเชื่อมต่อตัวระบุดิสก์กับหมายเลขพาร์ติชัน
  • สำหรับ EXT4, Linux swap, BTRFS และระบบไฟล์อื่น ๆ ของ linux-native ที่เป็นไปได้นั้น "UUID" เป็น UUID ที่เก็บไว้ใน metadata ของระบบไฟล์
  • สำหรับ FAT และ NTFS ดูเหมือนว่า "UUID" จะเป็นหมายเลขซีเรียลวอลุ่ม 32 บิตสำหรับ FAT และ 64 บิตสำหรับ NTFS

โปรดทราบว่าการรองรับการติดตั้งระบบไฟล์รูทด้วย "UUID" และ "PARTUUID" นั้นแตกต่างกันไป IIRC เคอร์เนลที่รันโดยไม่มี initrd สามารถเมานต์ด้วย "PARTUUID" แต่ไม่ใช่โดย "UUID" รุ่นเก่ากว่าของ initramfs-tools สามารถติดตั้งด้วย "UUID" แต่ไม่ใช่ "PARTUUID" ซึ่งเป็นรุ่นล่าสุดของ initramfs-tools ที่รองรับทั้งคู่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.