fstabが実際のファイルシステム名の代わりにUUIDを使用するのはなぜですか?


21

たとえば、これはmyの最初の行です/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. 2からは推測する大丈夫ですUUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a表し/dev/vda内の最初の列が与えられたということfstabですか<file system>

  2. だから、/etc/fstabこれに変更しても大丈夫でしょうか?

    /dev/vda    /    ext4    errors=remount-ro    0    1
    
  3. 編集:はい(上記の質問に対して)の場合、なぜsudo blkidコマンドは異なるUUIDを表示し/dev/vdaますか?

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

    ここに何が欠けていますか?

    回答:(3)ホストのクラウドのバグだと結論付けます。そのため、blkid(またはls -l /dev/disk/by-uuid)で報告されるUUIDはで使用されるものと同じである必要があり/etc/fstabます。


sudo blkidコマンドでUUIDを確認してください。
アビナッシュラジ14年

@AvinashRajうーん、奇妙なことに、sudo blkidコマンドはに対して異なるUUIDを出力し/dev/vdaます。これは私の混乱に追加されます。:)(質問を更新しました。)
its_me 14年

blkidコマンドが別のUUIDを表示するのは良い兆候ではありません-現在のUUIDを「ls -l / dev / disk / by-uuid」で確認してください。そのvdaから、基盤となるVMインフラストラクチャが何かを変更したのでしょうか?
liquidat

@liquidatこれは私が得た出力ですlrwxrwxrwx 1 root root 9 Jun 18 11:04 6f469437-4935-44c5-8ac6-53eb54a9af26 -> ../../vda。他の質問については、ウェブホストに連絡します。
its_me 14年

fstabエントリが明らかに間違っているため、マシンが再起動しない可能性があると思います。クローンディスクまたは何かである可能性があります。fstabで指定されたUUIDを持つ他のデバイスはないと思いますか?
liquidat

回答:


22

UUIDを使用する利点は、オペレーティングシステムがハードディスクに提供する実際のデバイス番号から独立していることです。

システムに別のハードディスクを追加し、何らかの理由でOSが古いディスクがのsdb代わりになったと判断したとしますsda

fstabデバイス名を指している場合、起動プロセスが失敗します。しかし、UUIDの場合は問題ありません。

UUIDに関するより詳細な情報は、ブログ投稿「UUIDとLinux:知っておく必要があるすべて」にも記載されています。


うん。新しいディスクを追加しなくても、カーネルはいつか2つのドライブのdevマウントをスワップすることを決定する場合があります。参照wiki.archlinux.org/index.php/Persistent_block_device_naming
トミー

別のUUIDを持つ別のディスクにイメージを複製したい場合はどうなりますか?
aloplop85

UUIDがあまり役に立たない状況が少なくとも1つあります。ディスク全体のクローンを作成して再起動すると、いずれかのディスクまたは間違ったディスクからパーティションがマウントされる場合があります。
boot13

それは本当です-リンクされたブログの投稿をチェックしてください。
liquidat

ディスクのクローンを作成する場合は、新しいディスクのUUIDを変更する必要があります。tune2fs xfs_adminまたはreiserfstuneは、ファイルシステムに応じてこれを実行できます。
steveayre

3

その場合、/ etc / fstabをこれに変更できますか?

可能ですおそらく大丈夫ですが、ほとんどの場合、UUIDのままにしておくことをお勧めします。

UUIDは、この場合ブロックデバイス上のパーティションを識別するために使用される任意の文字列です。パーティション自体に保存され、必要に応じて別のパーティションに割り当てることができます(MACアドレスのようなもの)。

UUIDを使用する利点は、紛れもないことですが、そうでは/dev/vdaありません。可能性があり、これは文脈で完全に理論的かもしれないが(あなたが唯一の特定の種類の一つのドライブを持っているので、例えば)、それはブート時に別のドライブなってしまうことが起こり。

デバイス名を使用することが問題を引き起こすことができる別のより微妙な例は一貫したネットワークデバイス名を使用するいくつかのシステムの最近のスイッチです。これがアップグレードとして発生し、どこかでネットワークスクリプトでハードコーディングされたデバイス名を使用すると、壊れてしまいます。並列WRTブロックデバイスの例は、命名スキームを変更するカーネルまたはudevのアップグレードです。

UUIDの1つのポイントは、この種のことを可能かつ無痛にすることです。あなたがしながら、そうすることができ、デバイス名を使用し、そうすることにも利点がない場合を除き、あなたは異なるドライブを交換するシステムを持っている。つまり、あなたがそれを行うには十分な理由を持っていない場合(例えば)は、とスティックUUID


はい。それでは、/dev/vdain のさまざまなUUIDを説明し/etc/fstab、レポートしblkidますか?(お持ちでない場合は、更新された質問をご覧ください。)
its_me 14年

5
更新を要求するのではなく、別の質問(「マウントされたパーティションのUUIDがfstabのものと異なるのはなぜですか?」)として質問する必要があります。
goldilocks 14年

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、両方の名前が「/」にマウントされているように見えるため、あるデバイスの多くの名前の1つであるようです。

あなたは、ディレクトリを見ると/dev/disk/by-uuid/あなたのようなものをポイントシンボリックリンクを参照することができ/dev/sda1/dev/sdb1私のサーバー上に。これは、仮説を確認する別の方法かもしれません。/dev/diskにはサブディレクトリby-id、がありby-pathby-uuidこれらはすべて同じデバイスの別名であるように見えます。


その場合、問題は(私の質問で更新されたように)、2つの異なるUUIDを取得することです/dev/vda!もう一度質問をご覧ください。
its_me 14年

1
元の質問に答えた場合は、「回答済み」とマークして新しい質問を書くことをお勧めします。これは、無関係な回答、修正された質問ではなく元の質問で機能する回答を収集しないようにするためです。
ブルースエディガー14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.