Apa perbedaan antara UUID dan PARTUUID?

14

Saya telah mengikuti prosedur di forum pi raspberry untuk membuat Raspberry Pi 3 saya menggunakan kunci USB alih-alih kartu SD sebagai sistem file root dengan harapan membuatnya lebih kuat untuk kehilangan daya.

Prosesnya berhasil, tetapi saya kehilangan waktu karena saya bingung dengan UUID dan PARTUUID untuk partisi (gunakan blkid dan lihat bagaimana perbedaannya). Apa tujuan keduanya? Lebih mudah untuk memperbaiki kebingungan saya dengan menggunakan UUID daripada PARTUUID di mana-mana, tetapi gagal, saya harus menggunakan PARTUUID (saya pikir akan mungkin menggunakan campuran, tetapi saya tidak mencoba mencari satu).

Perhatikan bahwa halaman yang dikutip mengisyaratkan bahwa UUID untuk drive adalah PARTUUID untuk partisi, tetapi kemudian saya berharap bahwa UUID sama untuk semua partisi drive, bukan itu masalahnya.

Pemrogram
sumber
1
Hai AProgrammer, dan selamat datang di pertukaran tumpukan Raspberry Pi. Saya pikir Anda harus mempertimbangkan bahwa ini bukan pertanyaan tentang Raspberry Pi! Lebih banyak orang akan melihat pertanyaan ini (baik untuk menjawabnya maupun untuk mendapat manfaat dari jawaban yang ditawarkan) jika itu ada di, mungkin, di forum Linux utama.
Tai Viinikka
@TaiViinikka, saya mengakui telah ragu-ragu antara ini dan unix.se, tetapi mengingat bahwa saya bertemu dengan raspberry pi dan bahwa saya tidak pernah menemukan masalah setelah bekerja dengan debian dan distribusi turunan debian selama 23 tahun pada x86, termasuk UUID tanpa bertemu dengannya - refleks saya adalah bagian dari penyebab masalah saya -, saya pikir mungkin ada hubungan dengan raspberry pi.
Pemrogram
Itu cukup dimengerti dan saya senang Anda mendapat jawaban. Pengalaman saya [jauh lebih singkat] berbeda dari Anda; setiap partisi yang saya miliki memiliki UUID dan PARTUUID yang tidak cocok: root @ herald: ~ # cat / proc / cpuinfo vendor_id: GenuineIntel model name: 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" Maka saya mencapai kesimpulan sebaliknya.
Tai Viinikka

Jawaban:

13

Tentang Perbedaan antara UUID dan PARTUUID

Anda bisa mendapatkan beberapa petunjuk tentang perbedaan antara UUIDdan PARTUUIDdengan menentukan -popsi.

blkid -p /dev/sda1

atau perangkat / partisi apa pun yang Anda lihat. Anda mungkin telah memperhatikan bahwa jika ada beberapa partisi pada UUIDperangkat yang sama , PARTUUIDsebagian besar sama dengan nomor partisi yang ditambahkan.

A UUIDdijamin unik. Sejauh yang saya tahu, tabrakan tidak akan terjadi dalam masa kehidupan semesta. Namun, Anda akan perhatikan bahwa PARTUUIDjauh lebih pendek. Ini dimaksudkan untuk menjadi "lokal" yang unik, dan tabrakan kemungkinan besar terjadi di antara semua yang diketahui PARTUUIDs.

Tentang UUID

UUID hanyalah pengidentifikasi unik. Mereka digunakan untuk berbagai tujuan. Anda dapat membuatnya menggunakan uuidgenfungsi.

Untuk bacaan lebih lanjut tentang UUID:

$man uuidgen 

Atau Internet:

manpage untuk uuidgen

Beberapa lagi menggunakan UUID contoh

$cat /etc/fstab

Untuk sistem GNU / Linux yang lebih baru, Anda akan memiliki daftar semua partisi dan UUID-nya. UUID baru dihasilkan untuk setiap partisi baru. Jadi, jika mempartisi ulang drive yang diberikan, semua UUID blkid untuk drive itu akan berubah.

Bagian dari alasan UUID digunakan sebagai pengidentifikasi partisi dan drive adalah untuk mempertahankan pengidentifikasi bahkan ketika drive ditambahkan atau dipasang dalam urutan yang berbeda. Pada waktu sebelumnya, fstabakan memiliki pengidentifikasi seperti /dev/sda1... Ini memiliki kelemahan karena mungkin memiliki sda1drive atau partisi yang berbeda secara fisik jika entah bagaimana urutan pemasangan diubah.

Tentang PARTUUID

PARTUUIDs adalah komponen dari GUID Partition Tables (GPT) yang merupakan pengganti untuk partisi disk Master Boot Record (MBR) terkait.

Untuk bacaan lebih lanjut lihat Linux.com - Menggunakan Tabel Partisi GUID Baru di Linux

Linux.com mengatakan:

GPT GUID (Pengidentifikasi unik global) dan UUID Linux (Pengenal Unik Universal) yang kami kenal bukanlah hal yang sama, meskipun mereka memiliki tujuan yang sama berguna: memberikan nama unik pada perangkat blok. UUID Linux adalah fungsi dari sistem file, dan dibuat ketika sistem file dibuat. Untuk melihat UUID Linux, jalankan saja perintah blkid. Perhatikan kode GUID Partisi, dan bunyinya "Microsoft data dasar." Ya, Microsoft selalu macet, karena ini adalah partisi EXT4, jadi tidak ada cara bagi Windows untuk membacanya, tetapi akan melihatnya sebagai partisi yang tidak diformat. Anda tidak akan melihat ini dengan rilis gdisk saat ini, karena sampai 2011 tidak ada GUID sistem file Linux. Sekarang ada, jadi jika Anda tidak menggunakan Linux lama seperti milik saya (Mint 13), Anda

GUID unik Partisi adalah yang akan Anda gunakan di fstab, seperti ini:

PARTUUID = 8C208C30-4E8F-4096-ACF9-858959BABBAA / pengguna data ext4, standar 0 0

Cap
sumber
Misteri semakin dalam. Melihat beberapa perangkat blok, ada perangkat PTUUID dan ada UUID dan PARTUUID per partisi; tergantung pada disk dan mungkin alat yang memformat dan mempartisi itu, PARTUUID berasal dari disk PTUUID atau tidak. Pertanyaan saya adalah tentang UUID partisi yang dapat Anda aksesi dengan PARTUUID blkid.
Pemrogram
@AProgrammer: Menambahkan beberapa informasi ke jawaban saya.
RubberStamp
1
Ok, secara ringkas, ada disk UUID yang bisa Anda dapatkan dengan blkid -pmenyebutnya PTUUID, ada UUID partisi yang blkidmemanggil PARTUUID dan beberapa sistem file memiliki UUID yang blkid memanggil UUID. Saya masih tidak jelas mengapa saya harus menggunakan PARTUUID daripada UUID, setidaknya di beberapa tempat, ketika memindahkan sistem file root ke kunci USB pada raspberry ketika sistem Linux saya hanya mereferensikan UUID, tetapi saya tidak secara sukarela untuk membuat beberapa tes lagi dan memeriksa di mana benar-benar ada kebutuhan untuk PARTUUID dan di mana saya masih bisa menggunakan UUID jika saya mau, tetapi saya rasa itu hanya cmdline.txtmembutuhkannya.
Pemrogram
Saya memiliki dua partisi pada dua disk berbeda dengan UUID yang sama. Begitu banyak untuk " seumur hidup alam semesta " ...
étale-cohomology
3

Seperti yang saya mengerti.

Istilah UUID secara umum mengacu pada "Pengidentifikasi unik universal", yang dikenal di dunia windows sebagai GUID. Ada beberapa skema yang berbeda tetapi untuk sebagian besar UUID / GUID modern pada dasarnya adalah angka acak besar atau hash dan beberapa bit bendera.

Dalam kasus khusus pemasangan filesystem di linux "UUID" merujuk ke pengidentifikasi unik yang merupakan bagian dari metadata yang disimpan di dalam filesystem. "PARTUUID" mengacu pada pengidentifikasi unik untuk partisi yang disimpan di atau berasal dari tabel partisi.

Pengidentifikasi unik ini mungkin atau mungkin bukan UUID aktual. Sejauh yang saya tahu.

  • Untuk tabel partisi GPT, "PARTUUID" adalah GUID dari tabel partisi GPT.
  • Untuk tabel partisi MBR, "PARTUUID" dibentuk dengan menggabungkan pengidentifikasi disk dengan nomor partisi
  • Untuk EXT4, Linux swap, BTRFS dan mungkin jenis sistem berkas asli linux lainnya "UUID" adalah UUID yang disimpan dalam metadata sistem berkas.
  • Untuk FAT dan NTFS "UUID" tampaknya menjadi nomor seri volume, 32 bit untuk FAT dan 64 bit untuk NTFS.

Perhatikan bahwa dukungan untuk memasang sistem file root dengan "UUID" dan "PARTUUID" bervariasi. IIRC kernel yang berjalan tanpa initrd dapat me-mount dengan "PARTUUID" tetapi tidak dengan "UUID". Initramfs-tools versi lama dapat dipasang dengan "UUID" tetapi tidak "PARTUUID", initramfs-tools terbaru mendukung keduanya.

Peter Green
sumber