2019年1月29日火曜日

USB外付けハードディスクのマウント Debian

接続したら、外付けUSBハードディスクの所有者が rootになって書き込みできない。

結論:
接続したまま
$ sudo chown -R user:user /media/user/ラベル名 or UUID

抜き差し後も、再起動後も userで読み書き可能になった。
-R ディレクトリごと
user:user 所有者:グループ

前提:
OS: Debian GNU/Linux 9.7 (stretch)
Desktop : KDE Plasma version 5.8.6
USB ハードディスク : UUID (Universally Unique Identifier)による機器の指定が面倒なので、ext4にフォーマット時にラベル指定 (例 ExDisk)。

原因(曖昧):
初めて該当外付けハードディスクを繋いだとき、フォーマットとディスク検査をやるためにroot状態だったからなのか、udisks2がルートでスクリプトを作ってしまった...とか?

関連:
udisks2について
・Debian 8 (jessie)以降、外部接続のメディアは udisks2というサービス(D-Bus, udisksd)によって自動認識される。
・(多分) 接続をudisksdが検知して D-Busを使って動的に /media/user/下にLabel名 or UUIDで適切にマウントポイントを作る。
・KDEでUSBにメディアを接続したときアンダーバー(パネル)に現れる「デバイスの通知」や、クリックでのマウント/アンマウントはこのサービスを利用している。
・KDEシステム設定→ ハードウェア : Removable Strageも udisks2の設定。

・udisks2のサービス確認。
$ ps aux | grep udisks
/usr/lib/udisks2/udisksd の表示がでれば、サービスが動いている。

udisks2が動いていれば
例)
$ udisksctl status
MODEL                     REVISION  SERIAL               DEVICE
--------------------------------------------------------------------------
WDC WD10EZRX-00A8LB0      01.01A01  WD-WCC1U1234567      sda   
WDC WD10EARS-00Y5B1       80.00A80  WD-....
...
BUFFALO External HDD      0000      00123456789999D      sdc
...接続のみで、まだマウントしてない BUFFALO...も表示される。

・udisksctl の使用例
マウントする
$ udisksctl mount -b /dev/sdc1
Mounted /dev/sdc1 at /media/user/ExDisk
-b ブロックデバイス

アンマウント
$ udisksctl unmount -b /dev/sdc1

状態確認
$ udisksctl status


・systemctl を使って udisks2をコントロール
サービスの停止
# systemctl stop udisks2.service

停止の確認
# systemctl status udisks2

サービス開始
# systemctl start udisks2
サービス再起動
# systemctl restart udisks2

udisks2はディフォルトでboot時に自動的に起動する。起動サービスから削除して無効化
# systemctl disable udisks2

マニュアル起動も阻害
# systemctl mask udisks2
maskの確認
# systemctl is-enabled udisks2
masked (とのみ表示)
マスクの解除
# systemctl unmask udisks2
無効化の確認
# systemctl is-enabled udisks2
再有効化
# systemctl reenable udisks2

systemctlによるudisks2の確認
# systemctl status udisks2
# systemctl show udisks2

以上素人のメモ

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。