GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menemukan UUID dari sistem file

Solusi 1:

Perintah lain yang mungkin tersedia dan juga bekerja cukup baik untuk ini adalah 'blkid'. Itu bagian dari paket e2fsprogs. Contoh penggunaannya:

Cari data di /dev/sda1:

[email protected]:~$ sudo blkid /dev/sda1
/dev/sda1: UUID="727cac18-044b-4504-87f1-a5aefa774bda" TYPE="ext3"

Tampilkan data UUID untuk semua partisi:

[email protected]:~$ sudo blkid
/dev/sda1: UUID="727cac18-044b-4504-87f1-a5aefa774bda" TYPE="ext3"
/dev/sdb: UUID="467c4aa9-963d-4467-8cd0-d58caaacaff4" TYPE="ext3"

Tampilkan data UUID untuk semua partisi dalam format yang lebih mudah dibaca:(Catatan:dalam rilis yang lebih baru, blkid -L memiliki arti yang berbeda, dan blkid -o list harus digunakan sebagai gantinya)

[email protected]:~$ sudo blkid -L
device     fs_type label    mount point    UUID
-------------------------------------------------------------------------------
/dev/sda1 ext3             /              727cac18-044b-4504-87f1-a5aefa774bda
/dev/sdc  ext3             /home          467c4aa9-963d-4467-8cd0-d58caaacaff4

Hanya tampilkan UUID untuk /dev/sda1 dan tidak ada yang lain:

[email protected]:~$ sudo blkid -s UUID -o value /dev/sda1
727cac18-044b-4504-87f1-a5aefa774bda

Solusi 2:

Hanya Untuk Disk Berpartisi GPT

Pada disk berformat GPT, setiap partisi diberi GUID, yang merupakan bentuk UUID, meskipun mungkin bukan yang dimaksud oleh poster aslinya. Oleh karena itu jawaban ini mungkin kurang membantu penanya asli. Namun demikian saya yakin ada perbedaan penting yang harus diperhatikan.

Untuk mendapatkan GUID partisi 1 pada disk /dev/sda berformat GPT, serta label partisinya dan seterusnya:

sudo sgdisk -i 1 /dev/sda

atau semuanya dengan:

ls -l /dev/disk/by-partuuid

Untuk mem-boot dengan root sistem file berada di partisi tertentu, Anda akan menggunakan sintaks parameter kernel linux:

root=PARTUUID=87654321-4321-4321-abcd-123456789012

Dalam hal ini Anda dapat menentukan hanya awal UUID--cukup unik. Parameter ini lebih primitif dan dapat dipahami oleh kernel lebih awal dalam proses bootingnya.

Ada perbedaan semantik antara ini:

Disk menampung partisi, partisi menampung sistem file, sistem file menyimpan direktori dan file. Untuk beberapa penyiapan dan sistem operasi, terdapat lebih banyak lapisan.

UUID GUID dan label terkait merujuk ke partisi, tetapi bukan konten partisi. Partisi baru di disk yang sama, atau partisi di disk baru akan memiliki UUID GUID baru. Partisi yang sama dapat menampung satu sistem file satu hari dan satu lagi pada hari yang berbeda. Itu hanya ada untuk disk berformat GPT, tetapi tidak untuk disk yang dipartisi sebelumnya. Biasanya tidak ada lagi utilitas di sini selain menentukan root=/dev/sda1 atau root=8:1 .

Jawaban lainnya saat ini mengacu pada UUID dari sistem file di beberapa partisi yang berisi. Jika sistem file disalin, secara keseluruhan, ke partisi atau hard disk lain, nilainya tetap sama. UUID ini berguna untuk menemukan sistem file yang dipindahkan. Oleh karena itu ini mungkin lebih relevan bagi kebanyakan orang. Parameter kernel Linux root=UUID=87654321-4321-4321-a567-123456789012 mengacu pada ini.

Saya percaya root=LABEL= dan root=UUID= diimplementasikan oleh ruang pengguna awal, kode init yang saya lihat tempo hari di sistem saya menerjemahkan parameter ini ke /dev/disk/by-uuid dan /dev/disk/by-label (tautan yang saya percaya dibuat oleh udev di ruang pengguna di sistem).

[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/init/do_mounts.c#n183

Solusi 3:

Cara bersih-skrip untuk melakukan ini yang berfungsi pada semua jenis sistem file adalah:

lsblk -no UUID <device-containing-FS>

Atau, diberi mountpoint (atau file apa pun di dalamnya):

lsblk -no UUID $(df -P <file> | awk 'END{print $1}')

Outputnya adalah UUID, seluruh UUID, dan hanya UUID.

Solusi 4:

Cara termudah untuk melakukannya untuk ext2/ext3/ext4 adalah:

/sbin/tune2fs -l /dev/sda1

Solusi 5:

Cara yang disarankan untuk melakukannya adalah dengan melakukan

sudo vol_id -u /dev/sda2

Untuk informasi lebih lanjut tentang penggunaan UUID, lihat artikel ini (dari bantuan ubuntu, tetapi dapat digunakan untuk semua distro linux yang menggunakan UUID).

Seperti disebutkan dalam komentar untuk pertanyaan ini, vol_id mungkin tidak ada di jalur Anda. Di ubuntu ada di /sbin jadi yang di atas akan berfungsi. Untuk fedora tampaknya perlu

sudo /lib/udev/vol_id -u /dev/sda2

Jika distribusi lain memiliki vol_id di tempat lain, kirimkan komentar dan saya akan menambahkannya ke jawaban ini.


Linux
  1. Cara membuat sistem file pada partisi Linux atau volume logis

  2. Bagaimana Menemukan Offset Dari Sistem File Ext4?

  3. Bagaimana Cara Meningkatkan Ukuran Sistem File Agar Sesuai Dengan Partisi?

  1. Bagaimana menemukan ukuran inode dari sistem file ext2/ext3/ext4?

  2. Cara menemukan opsi pemasangan sistem file yang saat ini dipasang

  3. Bagaimana cara memasang sistem file di lingkungan hanya-baca?

  1. CentOS / RHEL :Cara mengubah UUID sistem file

  2. CentOS / RHEL :Cara menemukan UUID perangkat atau sistem file

  3. Bagaimana cara menemukan ukuran tumpukan maksimum?