自宅仮想環境 - /etc/fstab を sda1 などから UUID に置き換える

前置き

インストール時にテキトーに作った/etc/fstabを昨日修正する予定で、完全に忘れてました。

元の fstab

「とりあえずマウントできればいい」程度で書かれています。

$ cat /etc/fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM
/dev/sda1 /     ext4 defaults 0 1
/dev/sda2 /boot ext4 defaults 0 2
/dev/sda3 /home ext4 defaults 0 2
/dev/sda4 /var  ext4 defaults 0 2

シェル芸

遭遇したことないので実感はないのですが、sda とかは必ずしも同じになるとは限らないそうなので、 UUID を指定してマウントされるようにします。

lsblk -f で UUID が拾えるので、シェル芸でなんとかします。

$ lsblk -f | awk 'NF==4' | cut -c7- | awk '$0="UUID="$3"  "sprintf("%-5s",$4)"  "$2"  defaults           0 2"' | awk '$2=="/"{gsub("2$",1); gsub("defaults         ","errors=remount-ro")}{print}' | cat <(sed 1\!d /etc/fstab) - | tee fstab.new
# UNCONFIGURED FSTAB FOR BASE SYSTEM
UUID=88c99083-a20f-4b7a-a060-bbcc1387848d  /var   ext4  defaults           0 2
UUID=fdf0bc36-6a23-47f0-996d-57afb199427e  /boot  ext4  defaults           0 2
UUID=fffa2250-e91d-4f69-a26a-88f98e01b508  /home  ext4  defaults           0 2
UUID=e6a82ba3-9564-4771-b51b-c6e8949ec4ea  /      ext4  errors=remount-ro  0 1
$ sudo mv fstab.new /etc/fstab

確認

$ sudo reboot

再起動してちゃんと起きてきたことを確認して、ちゃんとマウントされてることを確認しました。

$ mount | grep sda
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/sda2 on /boot type ext4 (rw,relatime,data=ordered)
/dev/sda3 on /home type ext4 (rw,relatime,data=ordered)
/dev/sda4 on /var type ext4 (rw,relatime,data=ordered)

参考にした文献

fstab - ArchWiki