Mengapa fstab menggunakan UUID daripada nama sistem file yang sebenarnya?

21

Misalnya, ini adalah baris pertama dari saya /etc/fstab:

UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a    /    ext4    errors=remount-ro    0    1

Dan inilah output dari df -hperintah (melaporkan ruang disk kosong):

honey@bunny:~$ df -T

Filesystem     Type     1K-blocks    Used Available Use% Mounted on
/dev/vda       ext4      30832636 4884200  24359188  17% /
none           tmpfs            4       0         4   0% /sys/fs/cgroup
udev           devtmpfs    498172      12    498160   1% /dev
tmpfs          tmpfs       101796     320    101476   1% /run
none           tmpfs         5120       0      5120   0% /run/lock
none           tmpfs       508972       0    508972   0% /run/shm
none           tmpfs       102400       0    102400   0% /run/user
  1. Dari keduanya apakah boleh menyimpulkan yang UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13amewakili /dev/vdamengingat kolom pertama fstabadalah <file system>?

  2. Jadi, apakah tidak apa-apa jika saya memodifikasi /etc/fstabini?

    /dev/vda    /    ext4    errors=remount-ro    0    1
    
  3. EDIT: Jika ya (untuk pertanyaan di atas), mengapa sudo blkidperintah menunjukkan UUID yang berbeda untuk /dev/vda?

    $ sudo blkid
    
    /dev/vda: LABEL="DOROOT" UUID="6f469437-4935-44c5-8ac6-53eb54a9af26" TYPE="ext4"
    

    Apa yang kulewatkan di sini?

    Jawab: Saya berkesimpulan (3) menjadi bug di awan host saya. Jadi ya, UUID yang dilaporkan oleh blkid(atau ls -l /dev/disk/by-uuid) harus sama dengan yang digunakan di /etc/fstab.

ini aku
sumber
Periksa UUID dengan sudo blkidperintah.
Avinash Raj
@AvinashRaj Hmm, anehnya, sudo blkidperintah mengeluarkan UUID yang berbeda untuk /dev/vda. Ini menambah kebingungan saya. :) (Pertanyaan yang diperbarui.)
its_me
Ini bukan pertanda baik bahwa perintah blkid menunjukkan UUID yang berbeda - silakan periksa UUID saat ini dengan `ls -l / dev / disk / by-uuid ''. Sejak vda, mungkinkah infrastruktur VM yang mendasarinya mengubah sesuatu?
liquidat
@liquidat ini adalah output yang saya punya: lrwxrwxrwx 1 root root 9 Jun 18 11:04 6f469437-4935-44c5-8ac6-53eb54a9af26 -> ../../vda. Adapun pertanyaan Anda yang lain, saya akan menghubungi web host tentang hal itu.
its_me
Saya akan mengatakan bahwa mesin mungkin tidak me-reboot karena entri fstab jelas salah. Bisa jadi disk kloning atau sesuatu. Saya menganggap bahwa tidak ada perangkat lain yang memiliki UUID yang diberikan di fstab?
liquidat

Jawaban:

22

Keuntungan menggunakan UUID adalah tidak tergantung dari nomor perangkat aktual yang diberikan sistem operasi kepada hard disk Anda.

Bayangkan Anda menambahkan hard disk lain ke sistem, dan untuk beberapa alasan OS memutuskan bahwa disk lama Anda sekarang sdbbukan sda.

Proses boot Anda akan kacau jika fstabmenunjuk ke nama perangkat. Tetapi dalam kasus UUID, tidak masalah.

Informasi lebih rinci tentang UUID juga dapat ditemukan di posting blog "UUID dan Linux: Semua yang perlu Anda ketahui"

liquidat
sumber
ya. bahkan tanpa menambahkan disk baru, kernel Anda mungkin memutuskan untuk hanya menukar dua drive dev Anda satu hari. Lihat wiki.archlinux.org/index.php/Persistent_block_device_naming
Tommy
apa yang terjadi jika saya ingin mengkloning gambar ke disk lain, yang memiliki UUID yang berbeda?
aloplop85
Ada setidaknya satu situasi di mana UUID kurang berguna: jika Anda mengkloning seluruh disk, lalu reboot, Anda mungkin mendapatkan partisi yang dipasang dari salah satu disk, atau disk yang salah.
boot13
Itu benar - periksa posting blog yang terhubung, bahkan memiliki bagian ketika tidak menggunakannya.
liquidat
Jika Anda mengkloning disk, Anda harus mengubah UUID pada disk baru. tune2fs xfs_admin atau reiserfstune dapat melakukannya tergantung pada sistem file Anda.
steveayre
3

Dalam hal ini, dapatkah saya memodifikasi /etc/ststab untuk ini?

Anda bisa dan mungkin akan baik-baik saja, tetapi kemungkinan besar akan lebih baik untuk meninggalkan UUID.

UUID adalah string acak yang digunakan untuk mengidentifikasi, dalam hal ini, partisi pada perangkat blok; ini disimpan dengan partisi itu sendiri, dan dapat ditugaskan yang berbeda jika diinginkan (semacam alamat MAC seperti).

Keuntungan menggunakan UUID adalah tidak salah lagi, padahal /dev/vdatidak; itu bisa terjadi bahwa akhirnya menjadi drive yang berbeda pada saat boot, meskipun ini mungkin benar-benar teoritis dalam konteks (misalnya, karena Anda hanya memiliki satu drive dari jenis tertentu).

Contoh lain yang lebih halus tentang penggunaan nama perangkat dapat menyebabkan masalah adalah beralihnya beberapa sistem baru-baru ini ke menggunakan nama perangkat jaringan yang konsisten . Jika ini terjadi sebagai pemutakhiran dan Anda menggunakan nama perangkat hardcoded dalam skrip jaringan di suatu tempat, itu akan rusak. Contoh paralel perangkat blok WRT mungkin merupakan peningkatan kernel atau udev yang mengubah skema penamaan.

Salah satu poin UUID adalah membuat hal-hal semacam ini menjadi mungkin dan tidak menyakitkan. Jadi sementara Anda dapat menggunakan nama perangkat, tidak ada keuntungan untuk melakukannya kecuali (misalnya) Anda memiliki sistem di mana Anda menukar drive yang berbeda. Dengan kata lain, jika Anda tidak memiliki alasan yang baik untuk melakukan itu, tetaplah menggunakan UUID .

goldilocks
sumber
Baik. Jadi apa yang menjelaskan UUIDs yang berbeda untuk /dev/vdadi /etc/fstabdan dilaporkan oleh blkid? (Silakan lihat pertanyaan yang diperbarui jika Anda belum.)
its_me
5
Daripada menanyakan pembaruan, Anda harus menanyakannya sebagai pertanyaan terpisah ("Mengapa UUID partisi yang saya pasang berbeda dengan yang ada di fstab?").
goldilocks
2

Anda dapat melakukannya man fstabuntuk membaca konten dan semantik /etc/fstabfile secara ringkas . Di x86 saya, server Arch linux yang terbaru, man fstabmemberi saya ini:

The second field ... describes  the mount point for the filesystem.

Jadi, ya, /dev/vdaternyata adalah salah satu dari banyak nama untuk beberapa perangkat, seperti halnya UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a, mengingat kedua nama tersebut muncul untuk dipasang pada "/".

Jika Anda melihat di direktori /dev/disk/by-uuid/Anda dapat melihat tautan simbolis yang mengarah ke hal-hal seperti /dev/sda1, /dev/sdb1di server saya. Ini mungkin cara lain untuk memeriksa hipotesis Anda. /dev/diskmemiliki subdirektori by-id, by-path, by-uuidyang semua tampak nama-nama alternatif untuk perangkat yang sama.

Bruce Ediger
sumber
Dalam hal ini, masalahnya (seperti yang diperbarui dalam pertanyaan saya) adalah bahwa saya mendapatkan dua UUID berbeda untuk /dev/vda! Silakan lihat pertanyaannya sekali lagi.
its_me
1
Jika saya menjawab pertanyaan asli, mungkin ide yang baik untuk menandainya "dijawab" dan menulis pertanyaan baru, supaya Anda tidak mengumpulkan jawaban yang tidak relevan, jawaban yang bekerja dengan yang asli dan bukan pertanyaan yang dimodifikasi.
Bruce Ediger