カーネル UUID とは何ですか? なぜそれがおかしいのでしょうか?

カーネル UUID とは何ですか? なぜそれがおかしいのでしょうか?

私は見てきましたDebConf 14: Linus Torvalds による QAそして、19:50 頃に Linux は「UUID はクレイジーなやつだ」と述べています。

UUID は (カーネル レベルで) 何のために使用されますか? Linus はこれによって何を意味しているのでしょうか?

答え1

ファイルシステムは、フォーマット時に、一意に識別するためのランダムな番号が与えられます。昔は、/dev/sda などの任意に割り当てられた ID とパーティション番号で構成される dev ノードを使用して、どのファイルシステムをどこにマウントするかを識別するために、ブートローダーと /etc/fstab を構成する必要がありました。その問題は、パーティション番号が変更されると、既存の参照がすべて壊れてしまうことでした。しかし、ディスク自体の任意の ID が頻繁に変更されるようになったときに、本当に大きな問題が発生しました。IDE ディスクでは 4 つしか存在できなかったため、ドライブが接続されている物理ポートに応じて、/dev/hda か /dev/hdb かが決定されました。ただし、SCSI ディスク、SATA ディスク、または複数のディスク コントローラーを備えたシステムでは、ID は検出された順序で単純に割り当てられ、この順序は多少ランダムで、USB ディスクのプラグを抜いたり抜いたりしなくても、起動ごとに変わる可能性があります。このようなシステムが普及するにつれて、開発ノード名に依存しないことが重要になり、システムはどのファイルシステムをどこにマウントするかを識別するために UUID を使用するように切り替えられ、特定のブート時にどの開発ノードとして表示されるかは問題ではなくなりました。

関連情報