クイックノート

ちょっとした発見・アイデアから知識の発掘を

起動時のマウントは UUID にすべき!

言われるまでも当たり前のことですが。。。
何も考えずに設定して失敗したので自分への戒めのために書いておきます。

Linux のサーバーに外付けHDD または SSD を増設する場合、
再起動時に手動でマウントするのは面倒なので、
起動時にマウントするように設定したいですよね。

ということで起動時のマウント設定をググると良く出てくるのが、
バイスを使ってマウントする設定方法なんですが、
バイス名は再起動時に変わる可能性があります!

なので、このデバイス名をここにマウントという設定をしていても、
「そんなデバイスないよ?」だったり、
違うデバイスがマウントされたり、
ということになってしまい、
起動時のマウントエラーからの Emergency mode 突入なんてことになります。
(ちなみに本当にファイルシステムが壊れてしまってEmergency modeに入った話は↓の記事です)

clean-copy-of-onenote.hatenablog.com

Q .じゃあ、どうすればいいの! A. UUIDでデバイスを指定しましょう!

バイス名はなぜ変わる?

そもそも、デバイス名が変わってしまうのはなぜでしょう?

バイス名とは、OSが接続されたデバイスを区別するために割り当てた名前です。

OS はデバイスを認識すると、認識した順番に、番号を割り振って、
バイス名をつけます。
/dev/sda1, /dec/sda2 のような感じですね。

あくまでOSが認識した順番なので、
複数のデバイスが接続されていると、
再起動した時に、認識される順番次第で、
バイス名も変わってしまう可能性があります。

UUID とは

UUID というのは、ファイルシステムに割り当てられた個別の識別子のことです。
他のファイルシステムと被らないようにランダムにビット列が割り当てられています。

ファイルシステムを生成する時に、UUIDも割り振られ、
これがそのファイルシステムを識別する番号になります。

UUID 自体は、ファイルシステムに固有に割り当てられるため、
バイス名のように、OS の再起動で変わるものではありません。

そのため、この UUID を指定しておけば、
バイスが入れ替わってマウントされる(されない)問題が回避できます。

UUID を使った起動時マウント設定

それでは、UUIDを使って起動時のマウントの設定を行いましょう。

UUID を調べる

まずは、起動時にマウントするデバイスに割り当てられた UUID を調べる必要があります。

UUID を調べたいデバイス名を特定して、
(デバイス名は入れ替わってる可能性もあるので、マウントして中身をみたりして確認)
次のコマンドをたたきます。

sudo blkid /dev/[デバイス名]

コマンドを実行すると、

/dev/[コマンド名]: UUID="英数字列" ~~~

のような形でUUIDが表示されるので、
これをコピーしておきます。

起動時マウント設定

続いて、UUID を使って起動時のマウント設定を行います。
といっても設定の方法は、デバイス名を使った設定と同様です。

設定ファイル/etc/fstabをエディタで開きます。

sudo nano /etc/fstab

設定ファイルの中に次の行を書き加えます。

UUID=[UUID] [マウント先のディレクトリ] [フォーマット(ext4等)] defaults 0 0

これで設定完了です。

まとめ

サーバーの設定を行う時に、とりあえずググってその通りに設定することはよくありますが、
思考停止でこれをやってしまうと、デバイス名で起動時マウントするなんて設定をしかねないのですね。

ちょっと考えれば、複数のデバイスを接続してる状況だと
バイス名で指定はまずいことに気づけたはずでした。。。

これを反省して、今後は一つ一つの操作の意味や、
その効果をちゃんと考えて操作することを胸に刻んでおきます。

プライバシーポリシー