1つの論理ボリュームを備えた外付けHDDがあり、次のようにマウントできます。udisksctl mount -b /dev/mapper/wd0hdd-wd0
/media/username/wd
の下に新しいディレクトリが作成されます。これは、wd
がディスクのラベルwd0
が論理ボリュームの名前、username
がユーザー名であるため、予想される動作です。
ただし、udisks2が標準のLinuxパーティション(lvm以外)で通常行うように、外付けHDDを接続すると、この論理ボリュームを(このコマンドを入力せずに)自動的にマウントできるようにしたいと思います。 [問題1]
さらに、/media/username/wd
は755の権限を持つroot:rootに属していることに気付きました。これは、通常のユーザーとしてパーティションのルートにファイル/ディレクトリを作成できないため、問題があります。標準のLinuxパーティションの場合、作成されたディレクトリはusername
に属していますが、これは予期されている[問題2]
最後に、Nautilusは標準のLinuxパーティションでは通常のようにボリュームを左側のペインに表示せず、代わりにOther Locations
にあります。ただし、gnome-extension Place Status Indicator
は、新しいwd
を他のドライブの下に正しくリストします。 [問題3]
Udisks2に、特定の論理ボリュームがリムーバブルメディアとして自動マウントされると見なすように指示する方法を見つけます。
単一の論理パーティションで外部ドライブをセットアップします。
Sudo lvmdiskscan # Suppose sdc is the candidate
Sudo pvcreate /dev/sdc
Sudo vgcreate wd0hdd /dev/sdc1
Sudo lvcreate -l 100%FREE -n wd0 wd0hdd
Sudo mkfs.ext4 /dev/wd0hdd/wd0
[任意] Gnome-Diskを使用してディスクのラベルをwd
に変更します
Ubuntuを再起動し、nautilusと/media/username
で何が起こるかを確認します
ここで何が役立つか教えてください。
問題を追跡するのに役立つ何かをログで見つけようとしましたが、journactlには何も表示されませんが、udisksctl monitor
を使用してデバイスをマウントした直後に、udisksctl mount -b /dev/mapper/wd0hdd/wd0
のおかげで問題のヒントが見つかるかもしれません
17:49:54.019: Added /org/freedesktop/UDisks2/jobs/2
org.freedesktop.UDisks2.Job:
Bytes: 0
Cancelable: true
ExpectedEndTime: 0
Objects: ['/org/freedesktop/UDisks2/block_devices/dm_2d5']
Operation: filesystem-mount
Progress: 0.0
ProgressValid: false
Rate: 0
StartTime: 1553186994019094
StartedByUID: 0
17:49:54.095: /org/freedesktop/UDisks2/jobs/2: org.freedesktop.UDisks2.Job::Completed (true, '')
17:49:54.095: Removed /org/freedesktop/UDisks2/jobs/2
17:49:54.140: /org/freedesktop/UDisks2/block_devices/dm_2d5: org.freedesktop.UDisks2.Filesystem: Properties Changed
MountPoints: /media/mil/wd1
17:49:54.141: /org/freedesktop/UDisks2/block_devices/dm_2d5: org.freedesktop.UDisks2.Block: Properties Changed
UserspaceMountOptions: uhelper=udisks2
17:49:54.141: /org/freedesktop/UDisks2/block_devices/sdd: org.freedesktop.UDisks2.PartitionTable: Properties Changed
Partitions: ['/org/freedesktop/UDisks2/block_devices/sdd1']
これらのマウントオプションを変更できた場合、このUserspaceMountOptions: uhelper=udisks2
が役立つかどうかはわかりません。
HintAuto
プロパティとudisks2
HintAuto
は、udisks2のUDISKS_AUTO
のおかげでオーバーライドできるプロパティです。物理パーティションがudisksctl info -b /dev/sdc1 | grep HintAuto
-> HintAuto: true
であることがわかりました。ただし、論理デバイスudisksctl info -b /dev/mapper/wd0hdd-wd0 | grep HintAuto
-> HintAuto: false
の場合、HintAuto
はfalseです。
Autodev LVM logical volume with udev rule and udisks2 で説明されているudevルールのおかげで、論理ボリュームのHintAutoの値を上書きできましたが、udisks2
がまだ自動マウントされないため、問題は解決しませんパーティション。
直接編集するかgnome-disk-utilityを使用して/etc/fstab
を使用します。起動時に自動マウントするという問題は解決しますが、ディスクを後者に接続した場合は解決しません。また、問題2も問題3も解決しません(x-gvfs-showで解決できると思いますが、解決しません)。私が知る限り、/etc/fstab
は静的ドライブ用であり、udisks2はあらゆる種類のリムーバブルドライブ用です。したがって、 udisks2ソリューション。
ディスクが接続されたときにデーモンが検出したすばらしいシェルスクリプトを使用します。たぶん、他に選択の余地はないが、上記の3つの問題すべてを解決するスクリプトが見つからなかった場合は、フムです。また、私はまだudisks2で作業ができると信じています。
すべての論理ボリュームを自動マウントするようにudisks2に指示します。私の論理ボリュームの一部が他のLinuxシステムであるため、それは望ましくありません。とにかく、それを行う方法は見つかりませんでした。
人々は尋ねることができます:
-なぜ単一の標準パーティションではなく、ディスク全体に単一のLVMパーティションがあるのですか? KISS!
-はい、そうです!ただし、ここで達成しようとしているのは、最終的に達成したいことの単純なシナリオにすぎません。 EFIモードでマルチブートする小さなESPパーティションをインストールした別のディスクと、2つの異なるLinuxとメディアデータ用の3番目の巨大な論理ボリュームを持つ2つの論理ボリュームを含む別のLVM物理ボリュームがあります。ほとんどの場合、このディスクはパソコンに接続されているだけなので、メディアデータストレージパーティションはバックアップと音楽にのみ使用しますが、コンピューターなしで他の場所に行ってディスクを持ってくるだけなので、自分のLinux、emacs、音楽プレーヤーを好きなように構成して快適な環境で作業を開始するこのコンテキストでは、LVMはこのセットアップで暗号化のサイズ変更と管理を簡単に行うのに非常に役立ちます。
最後に、多くの人が試行した後、論理ボリュームを自動マウントするために私が見つけた最善かつ唯一の有効なソリューションは、SystemDを使用することです。 <path-to-mount-folder>.mount
の下に<path-to-mount-folder>.automount
および/etc/systemd/system/
ファイルを作成します
media-username-wd.mount
[Unit]
Description=Western Digital external drive mount in media
[Mount]
What=/dev/wdhdd0/wd0
Where=/media/username/wd
Type=ext4
Options=defaults
[Install]
WantedBy=multi-user.target
media-username-wd.automount
[Unit]
Description=Western Digital external drive automount in media
[Automount]
Where=/media/username/wd
[Install]
WantedBy=multi-user.target
これらの新しいサービスをインストールする
systemctl daemon-reload
systemctl disable media-mil-wd.mount
systemctl enable media-mil-wd.automount
サービス.mount
は無効になっており、.automount
のみが意図的に有効になっています。前者はfstabの精神で起動時にパーティションをマウントするために使用され、後者は検出時にパーティションを自動マウントするために使用されます(外部ドライブが接続されています)。作成されたすべての.mount
ファイルには.automount
ファイルの存在が必要ですが、サービスを有効にする必要はありません。
ステータスを確認する
systemctl start media-mil-wd.automount
systemctl status media-mil-wd.automount
TomášTomečekさんの計り知れない投稿 Automount with SystemD に感謝します。これは、私がそれをもっと早く発見した場合に限り、udevのマニュアルを読む時間を節約できたでしょう。
最後に、この解決策は今や私の主な問題である[Problem1]と[Problem2]であるNiceを解決するのに十分です。しかし、それは[Problem3]を解決しませんが、私は今のところそれに耐えることができます。
Nautilusへの完全な統合である[Problem3]をより簡単に、または解決することができる場合は特に、私はまだ提案を受け入れています。