この質問に対する回答が多いのはわかっていますが、これが自動的に行われるような答えは見つかりませんでした。外付けHDDの最後のパーティションをマウント解除すると(複数ある可能性があるため)、電源をオフにしたいと思います(udisksctl power-off
)外付けHDDなので、USBケーブルを安全に取り外すことができます。
Bashスクリプトを作成してグローバルパーティションアンマウントイベントにフックできる方法はありますか?そのデバイスにマウントされているパーティションの数を確認でき、そのデバイスが外付けHDDである場合は、電源をオフにするコマンドを発行できます。これはできますか?もしそうなら?ドキュメントへの参照は私を助けるかもしれません。
これはUbuntu 19.04にあります。
これは7年の長い物語です。
この問題は、バージョン1からバージョン2へのアップグレード時にUDiskの内部を変更することで発生します。
LaunchPadに バグ1067876 として記載されています。私は多くの時間を費やして何が悪いのかを判断しようとしましたが、運はありませんでした。
これはあなたの質問に対する部分的な回答ですが、とにかくそれは実用的な解決策です。
私は、ハードディスクとUSBデバイスが回転しているマシンで使用しています。
個人的には、次の2つのソリューションのいずれかを使用します。
一部のデバイスでは、Caja(MATE DEファイルマネージャー、Nautilus 2.3xのフォーク)にまだドライブを安全に削除することがわかります。
それをクリックすると、ハードディスクがスピンダウンし、USBフラッシュ/ SSDのLEDがオフになります。
Cajaに安全に削除が表示されない場合は、GNOMEディスク(gnome-disks
コマンド)、必要なドライブを選択し、そのインターフェースでPower Offをクリックします。
次にHDDがスピンダウンし、LEDが消灯します。
自動スクリプトの作成は少し難しい作業です。また、可能性のある既存の解決策を見つけるために、githubまたは他の場所で検索を試みることもできます。
また、半分は答えます。
バックアップハードドライブ用にデスクトップスターターを作成しました。
cat bin/Backup-Platte-umount.sh
#!/bin/bash
#devicenodes finden
devname=$(findmnt | grep media | awk '{print $2}' | egrep -v 'sda|sdb')
export dev=$(findmnt | grep media | awk '{print $2}' | egrep -v 'sda|sdb' | sed 's/.$//' | head -n1)
#backup-platte umounten
umount $devname && notify-send 'Backup-Platte raus' && udisksctl power-off -b $dev
説明しようと思います。私はそれがあまり得意ではありません。
devname=$(findmnt | grep media | awk '{print $2}' | egrep -v 'sda|sdb')
メディア内のマウンテットファイルシステムを検索します。私の2つの内蔵ディスクはegrep -v 'sda|sdb'
次の部分は変数をエクスポートします。
export dev=$(findmnt | grep media | awk '{print $2}' | egrep -v 'sda|sdb' | sed 's/.$//' | head -n1
Gives me the pur harddrive node for udisksctl power-off
findmnt | grep media | awk '{print $2}' | egrep -v 'sda|sdb' | sed 's/.$//' | head -n1
/dev/sdc
そしてそれは動作します。
bash -x bin/Backup-Platte-umount.sh
++ findmnt
++ grep media
++ awk '{print $2}'
++ egrep -v 'sda|sdb'
+ devname='/dev/sdc1
/dev/sdc3
/dev/sdc2'
++ findmnt
++ grep media
++ awk '{print $2}'
++ egrep -v 'sda|sdb'
++ sed 's/.$//'
++ head -n1
+ export dev=/dev/sdc
+ dev=/dev/sdc
+ umount /dev/sdc1 /dev/sdc3 /dev/sdc2
+ notify-send 'Backup-Platte raus'
+ udisksctl power-off -b /dev/sdc
シェルとしてbashでのみテストすることに注意してください