目次

SDカードを起動時に自動でマウントする (systemd)

v4.x 系より Ubuntu 18.04LTS となっており、init system が systemd に変更されています。
また、Overlayroot の仕組みにより起動時に fstab が書き換えられるため、通常の Linux での方法での自動マウントができません。

systemd の .mount unit を作成することで起動時の自動マウントが実現できます。


設定

SDカードの第一パーティション(/dev/mmcblk0p1) を ext4 でフォーマットし、/mnt/sd にマウントする場合の設定です。

mnt-sd.mount の作成

/etc/systemd/system/mnt-sd.mount ファイルを作成します。
unit ファイル名は、mount point のパス名を -(ハイフン) でつなげた名前にする必要があります1)

mnt-sd.mount
[Unit]
Description=SDCard
 
[Mount]
What=/dev/mmcblk0p1
Where=/mnt/sd
Type=ext4
Options=noatime
 
[Install]
WantedBy=multi-user.target


有効化

起動時に自動で実行させるため、有効化します。

root@plum:~# systemctl daemon-reload 
root@plum:~# systemctl enable mnt-sd.mount
Created symlink /etc/systemd/system/multi-user.target.wants/mnt-sd.mount → /etc/systemd/system/mnt-sd.mount.
root@plum:~# 


確認

再起動して確認すると、/mnt/sd にマウントされていることが確認できます。

root@plum:~# mount|grep /mnt/sd
/dev/mmcblk0p1 on /mnt/sd type ext4 (rw,noatime)
root@plum:~# systemctl status mnt-sd.mount | cat
● mnt-sd.mount - SDCard
   Loaded: loaded (/etc/systemd/system/mnt-sd.mount; enabled; vendor preset: enabled)
   Active: active (mounted) since Wed 2019-06-12 15:44:05 JST; 3min 7s ago
    Where: /mnt/sd
     What: /dev/mmcblk0p1
  Process: 334 ExecMount=/bin/mount /dev/mmcblk0p1 /mnt/sd -t ext4 -o noatime (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 1140)
   CGroup: /system.slice/mnt-sd.mount

Jun 12 15:44:05 plum systemd[1]: Mounting SDCard...
Jun 12 15:44:05 plum systemd[1]: Mounted SDCard.
1)
/mnt/sd –> mnt-sd