Чому fstab використовує UUID замість фактичного імені файлової системи?


21

Наприклад, це перший рядок мого /etc/fstab:

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

А ось результат df -hкоманди (звітування про вільний простір на диску):

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. З двох це добре зробити висновок , що UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13aявляє собою /dev/vdaза умови , що перший стовпець в fstabце <file system>?

  2. Отже, було б добре, якби я змінив /etc/fstabце?

    /dev/vda    /    ext4    errors=remount-ro    0    1
    
  3. EDIT: Якщо так (до вищезазначеного питання), чому sudo blkidкоманда показує інший UUID для /dev/vda?

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

    Що я тут пропускаю?

    Відповідь: Я зробив би висновок (3), щоб бути помилкою в хмарі мого господаря. Отже, так, UUID, про який повідомляється blkid(або ls -l /dev/disk/by-uuid), повинен бути таким самим, як і у використанні /etc/fstab.


Перевірте UUID sudo blkidкомандою.
Avinash Raj

@AvinashRaj Хм, дивно, sudo blkidкоманда видає інший UUID для /dev/vda. Це додає моєї розгубленості. :) (Оновлено запитання.)
its_me

Це не є гарним знаком того, що команда blkid показує інший UUID - будь ласка, перевірте поточний UUID на `ls -l / dev / disk / by-uuid ''. З моменту свого vda, можливо, інфраструктура, що лежить в основі VM, щось змінила?
ліквідований

@liquidat Це вихід я отримав: lrwxrwxrwx 1 root root 9 Jun 18 11:04 6f469437-4935-44c5-8ac6-53eb54a9af26 -> ../../vda. Щодо вашого іншого питання, я зв’яжусь із веб-хостом з цього приводу.
its_me

Я б сказав, що машина може не перезавантажитися, оскільки запис fstab є неправильним. Може бути клонований диск чи щось таке. Я вважаю, що не існує жодного іншого пристрою, на якому UUID надано у fstab?
ліквідований

Відповіді:


22

Перевага використання UUID полягає в тому, що він не залежить від фактичного номера пристрою, який операційна система надає вашому жорсткому диску.

Уявіть, що ви додаєте інший жорсткий диск у систему, і чомусь ОС вирішує, що ваш старий диск зараз sdbзамість sda.

Ваш процес завантаження буде відкручений, якщо вказуватиме fstabна ім’я пристрою. Але у випадку UUID - це добре.

Більш детальну інформацію про UUID можна також знайти у блозі "UUID та Linux: Все, що вам потрібно знати"


так. навіть не додаючи новий диск, ваше ядро ​​може вирішити просто поміняти один день двома дисками кріплень вашого диска. Дивіться wiki.archlinux.org/index.php/Persistent_block_device_naming
Tommy

що станеться, якщо я хочу клонувати зображення на інший диск, на якому є інший UUID?
aloplop85

Принаймні одна ситуація, коли UUID є менш корисними: якщо ви клонуєте весь диск, перезавантажте, ви можете отримати розділи, що монтуються з будь-якого диска, або з неправильного диска.
boot13

Це правда - перевірте пов’язану публікацію блогу, у ній навіть є розділ, коли їх не використовувати.
ліквідувати

Якщо ви клонуєте диск, вам слід змінити UUID на новому диску. tune2fs xfs_admin або reiserfstune можуть робити це залежно від вашої файлової системи.
steveayre

3

У такому випадку я можу змінити / etc / fstab до цього?

Ви можете, і це, мабуть, буде добре, але, швидше за все, було б краще залишити UUID.

UUID - це довільні рядки, які використовуються для ідентифікації в цьому випадку розділу на блоковому пристрої; він зберігається разом із самим розділом і за бажанням може бути призначений інший (на зразок MAC-адреси).

Перевага використання UUID полягає в тому, що він безпомилковий, тоді /dev/vdaяк ні; це може трапитися так, що він закінчує тим , що інший диск під час завантаження, хоча це може бути повністю теоретичний контекст (наприклад, тому що у вас є тільки один диск певного типу).

Іншим більш тонким прикладом, коли використання імені пристрою може спричинити проблему, було нещодавнє переключення деяких систем на використання послідовних імен мережевих пристроїв . Якщо це відбулося як оновлення, і ви десь використали ім'я пристрою з жорстким кодом у мережевому сценарії, воно порушиться. Паралельний приклад блокових пристроїв WRT може бути оновленням ядра або udev, що змінює схему іменування.

Одним із пунктів UUID є зробити такі речі можливими та безболісними. Отже, хоча ви можете використовувати ім'я пристрою, немає переваги в цьому, якщо (наприклад, у вас немає системи, де ви можете обмінюватися різними дисками. Іншими словами, якщо у вас немає вагомих причин для цього, дотримуйтесь UUID .


Гаразд. Так що пояснює різні UUID , для /dev/vdaв /etc/fstabі повідомив blkid? (Будь ласка, дивіться оновлене запитання, якщо ви цього не зробили.)
its_me

5
Замість того, щоб запитувати в оновленнях, вам слід задати це як окреме запитання ("Чому мій монтований UUID-розділ відрізняється від встановленого у fstab?").
goldilocks

2

Можна зробити man fstabдосить лаконічне прочитання змісту та семантики /etc/fstabфайлу. На моєму x86, досить сучасному сервері Arch linux, це man fstabдає мені таке:

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

Так, так, /dev/vdaмабуть, це одне з багатьох імен для деякого пристрою, як UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a, з огляду на те, що обидва імені, мабуть, встановлюються на "/".

Якщо ви заглянете в каталог , на моєму сервері /dev/disk/by-uuid/можна побачити символічні посилання, які вказують на такі речі, як . Це може бути ще один спосіб перевірити свою гіпотезу. підкаталоги , , які все здаються альтернативні імена для того ж самого пристрою./dev/sda1/dev/sdb1/dev/diskby-idby-pathby-uuid


У цьому випадку проблема (оновлена ​​в моєму запитанні) полягає в тому, що я отримую два різних UUID /dev/vda! Будь ласка, подивіться це питання ще раз.
its_me

1
Якщо я відповів на оригінальне запитання, можливо, було б корисно позначити його "відповіденим" і написати нове запитання, просто щоб ви не збирали невідповідних відповідей, відповідей, які працюють з оригіналом, а не зміненим запитанням.
Брюс Едігер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.