今回は、/etc/fstab のエントリにある、/boot/efi のマウント情報を書き換えるところだ。
多分、当該のエントリは以下のようになっていると思う。
UUID=XXXX-XXXX /boot/efi vfat umask=0077 0 1つまり、ディスクパーティション(ファイルシステム)に付与されているUUIDを指定して、/boot/efi にマウントしている形になっている。
実はコレが都合が悪い。
システムリストアは、ディスクパーティションから全て作りなおすことを想定しているのだが、/etc/fstab がこのままだと、パーティション・ファイルシステムを作り直す時に、同じUUIDを設定しないといけない。
ところが、OSのインストールメディアからブートした環境では、vfat領域にフォーマットするときに、UUIDを指定することが出来ない。自動でUUIDが振られ、後から変更することが出来ないのだ。
そうなると、リストアの度に、新しく振られたUUIDを確認して、そのUUIDで /etc/fstab を書き換える、という手間が発生する。
というわけで、この手間を省くために UUID指定ではないマウント形式で、/etc/fstab を書き換えてしまおう、というのが今回の主旨。
やり方としては多分以下の2つ。
- デバイスファイル名(/dev/sda1)を指定する
- 任意のボリュームラベル(fatlabel)を付与して、そのラベルでマウント指定する
まずは、当該領域にラベルを付与する必要がある。
ラベルに関しては、アルファベットや記号、11文字以下という制約があり、それに従って付与する必要がある。
ここでは、/boot/efi にマウントする領域、ということで、/BOOT/EFI というラベルにした。
vfat領域にラベルを付与するコマンドは、そのものズバリの fatlabel というコマンドだ。
ただ、fatlabelを確認、付与するためには、一度アンマウントしておいた方が安全のようだ。
具体的には以下のコマンドになる。
$ sudo umount /boot/efi $ sudo fatlabel /dev/sda1 (まだラベルが未設定なので、「NO NAME」と表示されると思う) $ sudo fatlabel /dev/sda1 /BOOT/EFI $ sudo fatlabel /dev/sda1 (設定したラベル「/BOOT/EFI」が表示されるはず)これで、/dev/sda1 に /BOOT/EFI というラベルが付与された。
付与したラベルでマウントできるか確認してみよう。
$ mount | grep /boot/efi $ sudo mount LABEL=/BOOT/EFI /boot/efi $ mount | grep /boot/efi (正しくマウントされたのなら、エントリが表示されるはずだ)後は、/etc/fstab を、UUIDではなく LABELでマウントするように修正しよう。
$ sudo vi /etc/fstab UUID=XXXX-XXXX /boot/efi vfat umask=0077 0 1 ↓(以下のように書き換え) LABEL=/BOOT/EFI /boot/efi vfat umask=0077 0 1書き換えが終わったら、正しくマウントできるか再確認だ。
$ sudo umount /boot/efi $ mount | grep /boot/efi $ sudo mount -a $ mount | grep /boot/efiエラーなくマウント出来れば、次回以降の再起動でも問題なくマウントされるはず。
これで初期設定は終わりかな?次回以降、ようやくスクリプト本体に入れるはず。
というところで今日はおしまい。
0 件のコメント:
コメントを投稿