2016年3月14日月曜日

システムバックアップその3

前回に引き続いて、システムバックアップの初期設定。
今回は、/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つ。
  1. デバイスファイル名(/dev/sda1)を指定する
  2. 任意のボリュームラベル(fatlabel)を付与して、そのラベルでマウント指定する
正直、どちらでもいいとは思うんだが、今回は(2)を採用する。
 
まずは、当該領域にラベルを付与する必要がある。
ラベルに関しては、アルファベットや記号、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 件のコメント:

コメントを投稿