LinuxでUSBドライブが自動的にマウントされる方法は、新しいリリースごとに変わるようです(幸いにも私はDebianを使用しているので、2年ごとに数日間無駄になります)。 usbmount、udisks、udisks2、udisks-glue、pmount、カスタムudevルールがありましたが、おそらくもっと多くを忘れていました。 (一見すると、名前付きアイテムが1つ以上afuse
存在するようですが、よく文書化されていません。)これらのどれももはや機能しません(少なくとも私にとっては)。
DebianでUSBドライブを自動マウントする「現在の」方法は何ですか?次のudev
ルールを使用しましたが、ストレッチからバスターへの更新後に動作が停止しました。
SUBSYSTEM=="usb", DRIVERS=="usb-storage", ACTION=="add", \
RUN+="mkdir /media/usb%n; mount -o gid=plugdev,umask=002,fmask=111,users /dev/%k%n /media/usb%n"
また、私が見逃したかもしれない新しいバージョンにアップデートした後でも安定して動作することができる安定したソリューションは何ですか?
答え1
あなたは作ることができますsystemd.mount
そしてsystemd.automount
ユニットファイル。例は次のとおりです。
/dev/sdb1
以下にインストールするにはファイルを作成し/mnt/mountpoint
ますmnt-mountpoint.mount
。
sudo nano /etc/systemd/system/mnt-mountpoint.mount
注:ユニットファイルの名前はdir-sub-dir.mount
マウントポイントから抽出されます/dir/sub-dir
(/media/mountpoint
この名前のデバイスをマウントする必要がある場合media-mountpoint.mount
)。
次に、次の行を貼り付けます。
[Unit]
Description=Mount sdb1
[Mount]
What=/dev/disk/by-uuid/UUID_here
Where=/mnt/mountpoint
Type=auto
Options=defaults
[Install]
WantedBy=multi-user.target
でblkid
置き換えるuuidです。UUID_here
/dev/sdb1
mnt-mountpoint.automount
ファイルを生成します。
sudo nano /etc/systemd/system/mnt-mountpoint.automount
次の行が含まれます:
[Unit]
Description=Automount usb
[Automount]
Where=/mnt/mountpoint
[Install]
WantedBy=multi-user.target
USBを接続してデバイスを起動して起動します。
sudo systemctl daemon-reload
sudo systemctl enable --now mnt-mountpoint.mount mnt-mountpoint.automount
答え2
アップデート[2022-03-06]:apt install udisks2
USB自動マウント機能を提供する必要があります。
私はDebianのnautilus、udisks2、libglib2.0-bin(gioバイナリを含む)のパッケージ依存関係を調べました。これの上に建て、これの上にArchlinux USBディスクページ私は今信じています:
- 実際にインストールを実行する最も先進的な技術はudisks2です。自動マウントの次善策は
udisksctl unmount -b /dev/$DEVICE
。 - 「標準」Debian Gnomeのインストールでは、Nautilusはデスクトップのアイコンを制御します。 USBドライブを挿入すると、ドライブアイコンが表示されますが、アイコンをクリックするまでドライブをマウントできません。
- おそらく、USB自動マウント機能を備えた最小デスクトップ用の最良のオプションは次のとおりです。ウディスキー。
udiskieを起動するためのユーザーsystemdサービスを追加しました。
[Unit]
Description=Udiskie automount daemon
[Install]
WantedBy=graphical-session.target
[Service]
ExecStart=/usr/bin/udiskie --verbose --use-udisks2 --automount --no-config --notify --tray --appindicator
答え3
StretchからBuster(ヘッドレスRaspberry Pi Zero W)にアップグレードした後も同じ問題が発生しました。私の場合は、/etc/fstab
systemdが自動的にインストール単位を生成する方法を使用しています。私のすべてのディスクはfstabで指定されており、Stretchのホットプラグに自動的にマウントされます。バスターで失敗したすべて。 (ただし、再起動時にディスクは正常にマウントされます。)
問題の原因は次のとおりです。変化新しいシステムバージョンでは:
* The .device units generated by systemd-fstab-generator and other generators do not automatically pull in the corresponding .mount unit as a Wants= dependency. This means that simply plugging in the device will not cause the mount unit to be started automatically. But please note that the mount unit may be started for other reasons, in particular if it is part of local-fs.target, and any unit which (transitively) depends on local-fs.target is started.
次のコマンドで確認しましたsystemctl show my-mount.mount
。デバイスがリストにありませんWantedBy=
。 (local-fs.target
ストレッチには対応local-fs.target
するデバイスがありますが、両方ともdev-sdaX.device
リストされます。)結果として、ディスクを挿入するとmy-mount.mount
デバイスの起動はトリガされません。
だから私に役立つ解決策は、local-fs.target
新しいディスクが挿入されるたびにトリガーされる新しいudevルールを作成することでした。
$ cat /etc/udev/rules.d/98-usb-disk-mount.rules
ACTION=="add", KERNEL=="sd?[0-9]", SUBSYSTEM=="block", RUN+="/bin/systemctl start local-fs.target"
(注:systemctl start local-fs.target
fstabディスクマウントをトリガするには、このコマンドを使用することをお勧めします。システムマニュアル.)