systemdを使用してUSBドライブをきちんとマウント解除します。

systemdを使用してUSBドライブをきちんとマウント解除します。

/etc/fstab以下のように追加のルールを追加してUSBドライブの自動マウントを構成しました。

/dev/sda1  /media  vfat  noauto,nofail,x-systemd.automount,x-systemd.idle-timeout=2,x-systemd.device-timeout=2

その後、systemdはこのエントリを選択して、fsab-generatorマウントと自動マウント用の2つのユニットファイルを作成します/dev/sda1

  • メディア自動マウント
  • メディアマウント

一度挿入すると、USBドライブは指定されたマウントポイントに正しくマウントされます。これはを実行することによって確認されましたls /media。 Journalctlの出力は次のとおりです。

Sep 17 13:19:55 pcxx systemd[1]: Mounted /media.
Sep 17 13:19:57 pcxx systemd[1]: Unmounting /media...
Sep 17 13:19:57 pcxx systemd[1]: Unmounted /media.

1. systemdが/mediaインストール直後に削除されるのはなぜですか?

USBドライブを使用した後、きちんとマウント解除できるようにすることが目的です。

これを行う方法は2つあります。

最初は実行中ですumount /media。これで操作は完了しますが、media.automount サービスが破損します。 Journalctlと実行時に観察されるエラーメッセージsystemctl status -l media.automountは次のとおりです。

Sep 17 13:28:44 pcxx systemd[1]: media.automount: Got invalid poll event 16 on pipe (fd=59)
Sep 17 13:28:44 pcxx systemd[1]: media.automount: Failed with result 'resources'.

2番目はsystemdのumountコマンドを実行することですsystemd-umount /media。この操作も実行されますが、media.mount および media.automount サービスは停止します。その結果、次のUSBドライブを挿入すると自動的にマウントされず、自動マウントの目的が無効になります。

2.自動マウントサービスを停止せずにsystemdによって自動的にマウントされたドライブをアンマウントする正しい方法はありますか?

答え1

Q1:systemdが/mediaをマウントした直後にアンマウントするのはなぜですか?

A1:2秒間アクティビティがない場合は削除するように指示したので:

このx-systemd.idle-timeoutオプションはこれを制御します。項目で2秒に設定しました/etc/fstabx-systemd.idle-timeout=2

Q2.自動マウントサービスを停止せずにsystemdによって自動マウントされたドライブをアンマウントする正しい方法はありますか?

A2.私たちはあなたのためにそれをやってみましょうsystemd.automount

Q1と同様に、このx-systemd.idle-timeoutオプションは、マウントがアンマウントされる前にマウントがアイドル状態になることができる時間を制御します。現在設定したとおり2秒です。したがって、2秒間アクティビティがないと、USBドライブがマウント解除されます。この時点でやるべきことは、ドライブを取り外し/取り外しすることだけです。コマンドを使用するには、アンマウントされていることを確認することもできますlsblk -f。 USBドライブにマウントポイントがないと表示されている場合は、まだマウントされていません。明確に説明するために、私のシステムの例は次のとおりです(無視mmcblk0- システムSDカードです)。

USBドライブをマウントすると、lsblk -f次のマウントポイントが表示されますsdb1
pi@raspberrypi3b:~ $ lsblk -f
NAME        FSTYPE FSVER LABEL      UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sdb
└─sdb1      ext4   1.0   SANDISK8GB e5cb39a9-b041-4339-92f5-4172201a4b1a    2.6G    59% /home/pi/SANDISK8GB_ThumbDrv
mmcblk0
├─mmcblk0p1 vfat   FAT32 boot       C839-E506                               203M    19% /boot
└─mmcblk0p2 ext4   1.0   rootfs     568caafd-bab1-46cb-921b-cd257b61f505   26.3G     5% /
出力を監視すると、journalctl --follow次のようなメッセージが表示され、USBドライブが設定された時間アイドル状態になった後にマウント解除されたことを知らせますx-systemd.idle-timeout
Jan 17 10:46:40 raspberrypi3b systemd[1]: Unmounting /home/pi/SANDISK8GB_ThumbDrv...
Jan 17 10:46:40 raspberrypi3b systemd[750]: home-pi-SANDISK8GB_ThumbDrv.mount: Succeeded.
Jan 17 10:46:40 raspberrypi3b systemd[1]: home-pi-SANDISK8GB_ThumbDrv.mount: Succeeded.
Jan 17 10:46:40 raspberrypi3b systemd[1]: Unmounted /home/pi/SANDISK8GB_ThumbDrv.
別のドライブが得られるまで、ドライブはアンマウントされたままになります。自動マウント要求。この例では、ls下の最初の行の最後に示すようにCLIを入力して要求をトリガーします。
Jan 17 10:40:38 raspberrypi3b systemd[1]: home-pi-SANDISK8GB_ThumbDrv.automount: Got automount request for /home/pi/SANDISK8GB_ThumbDrv, triggered by 927 (ls) 
Jan 17 10:40:38 raspberrypi3b systemd[1]: Mounting /home/pi/SANDISK8GB_ThumbDrv...
Jan 17 10:40:38 raspberrypi3b kernel: EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null)
Jan 17 10:40:38 raspberrypi3b systemd[1]: Mounted /home/pi/SANDISK8GB_ThumbDrv.
次の手順を実行して、USBドライブがマウント解除されていることを確認できます。lsblk -fマウントポイントが表示されない場合は、デバイスがマウントされていません。
pi@raspberrypi3b:~ $ lsblk -f
NAME        FSTYPE FSVER LABEL      UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sdb
└─sdb1      ext4   1.0   SANDISK8GB e5cb39a9-b041-4339-92f5-4172201a4b1a
mmcblk0
├─mmcblk0p1 vfat   FAT32 boot       C839-E506                               203M    19% /boot
└─mmcblk0p2 ext4   1.0   rootfs     568caafd-bab1-46cb-921b-cd257b61f505   26.3G     5% /

答え2

mountの代わりに/media新しいディレクトリを作成し、そこにマウントします。 /mediaこれはほとんどのLinuxで予約されている場所です。

関連情報