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

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

たとえば、これは私の最初の行です/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/vdafstab<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(または)報告されたUUIDls -l /dev/disk/by-uuid/etc/fstab

答え1

UUIDを使用する利点は、ハードドライブにオペレーティングシステムが提供する実際のデバイス番号とは無関係です。

システムに別のハードドライブを追加しましたが、何らかの理由でオペレーティングシステムが既存のディスクをsdb代わりに使用することにしたと想像してくださいsda

fstabデバイス名を指すと、起動プロセスが混乱します。ただし、UUIDの場合は問題になりません。

UUIDの詳細については、ブログ投稿でも確認できます。「UUIDとLinux:あなたが知っておくべきこと」

答え2

では、/etc/fstabをこれで修正できますか?

あなたできるそうだろうおそらく問題ありません。しかし、UUIDを維持する方が良いでしょう。

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

UUIDを使用するとあいまいではないという利点がありますが、その逆は真では/dev/vdaありません。できる起動時に別のドライブになることがあります。しかし、これは文脈上完全に理論的なものかもしれません(たとえば、特定の種類のドライブしかないため)。

デバイス名を使用すると問題が発生する可能性があるもう1つの微妙な例は、最近一部のシステムでデバイス名を使用するように切り替えました。一貫したネットワークデバイス名。アップグレードでこれが発生し、一部のネットワークスクリプトでハードコードされたデバイス名を使用すると、競合が発生します。 WRTブロックデバイスの並列例は、名前付けスキームを変更するカーネルまたはudevアップグレードです。

UUIDの利点は、これらのことが可能で簡単にできることです。だからあなたはできるデバイス名を使用すると、何の利点もありません。〜しない限り(例)他のドライブを交換できるシステムがあります。つまり、そうする正当な理由がなければ、UUIDに固執する

答え3

man fstabファイルの内容と意味をかなり簡潔に読むことができます/etc/fstab。私のx86(非常に最近のArch Linuxサーバー)は、man fstab以下を提供します。

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

はい。どちらのデバイスも「/」にインストールされているように見えるため、/dev/vda一部のデバイスの多くの名前の1つであるようです。UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a

そのディレクトリを見ると、/dev/disk/by-uuid/私のサーバーの/dev/sda1ようなものを指すシンボリックリンクを見ることができます。/dev/sdb1これは仮説をテストする別の方法です。同じデバイスの代替名として表示されるサブディレクトリが/dev/diskあります。by-idby-pathby-uuid

関連情報