KDE未対応ファイル選択ダイアログでWindows共有フォルダへのアクセス-p--qのSmb4kでできそうに思いますがSmb4kの動作がどうも不完全なのでKonsoleからマウントする方法をやります。 NASはI-O DATAのHDL-T3Wです。このNASはNFSには対応しておらずCIFSでマウントします。
(2023.10.11追記。vers=1.0オプションを有効にするにはnodfsオプションが必要になったのでコマンドを変更しました。[SOLVED] cifs mount suddenly no longer works参照。)
必要なCIFSパッケージ
シーゲイトBlackArmor NASを使ってLinuxにNFSおよびCIFSファイル・システムをマウントする方法 | Seagate サポート 日本
mount.cifs(8) — Arch manual pages
これらのページを参考にしました。
mount.cifsが含まれるcifs-utilsパッケージが必要と書いてるものがありましたがmuonでcifsを検索するとすでにインストールされていました。ということでKDE neonでは追加でインストールが必要なパッケージはありませんでした。
mount.cifsについて
マウントに必要な情報
mount.cifsに渡す引数はリモートターゲットとローカルディレクトリです。
NASはルーターで192.168.1.50にバインディングしてあります。NASの共有フォルダ名はdiskでアクセス制限はかけていません。マウントポイントは/mnt/landiskにすることにします。
まずマウントポイントを作成しています。
sudo mkdir /mnt/landisk
次にmount.cifsでマウントしようとしますがSMBのバージョンが2.1以上でないので接続できないのでvers=1.0オプションをつけるように言われます。
sudo mount.cifs //192.168.1.50/disk /mnt/landisk -o vers=1.0,nodfs
これでリモートターゲットのパスワードが聞かれますのでEnterキーを押すとマウントできました。しかし読み取りはできましたが書き込みができません。
sudo mount.cifs //192.168.1.50/disk /mnt/landisk -o vers=1.0,nodfs,noperm,pass=""
nopermオプションを追加で書き込みもできるようになりました。空のパスワードもオプションで渡しています。
Dolphinのリモートのところにもマウントポイントが表示されるようになってGUIでも扱えるようになりました。ここからNASにアクセスするとDolphinのコンテクストメニューの「ここでターミナルを開く」も使えます。
KonsoleでマウントしなくてもDolphinのリモートにあるネットワークから 共有フォルダ(SMB) ー> LANDISK-931159、とたどっていくとGUIではNASにアクセスできるはずですがVirtualBoxのゲストOSのKDE neonからはなぜか「接続が切断されました」と言われてアクセスできませんでした。ホストのKDE neonやゲストOSのWindows10からのアクセスではこのように接続が切断されることはなく原因は不明です。ちなみにWindows10からのアクセスでは適当なユーザー名(anonymous)を入力する必要がありました。
IPアドレスの代わりにDolphinで表示されるLANDISK-931159 という名前を使ってlandisk-931159.localでもマウントできました。
sudo mount.cifs //landisk-931159.local/disk /mnt/landisk -o vers=1.0,nodfs,noperm
NASの切断はumountを使います。
sudo umount /mnt/landisk
Dolphinでワンクリックでマウントできるようにする
この/etc/fstabに書き込む方法でDophinからワンクリックでマウントとアンマウントができるようになりました。
//192.168.1.50/disk /mnt/landisk cifs
vers=1.0,nodfs,password="""",file_mode=0777,dir_mode=0777,noauto,user 0 0
/etc/fstabの最後にこれを追加して再起動するとDolphinのリモートのところにマウントポイントが表示されるようになりました。
/mnt/landiskをクリックするだけでマウントできます。フォルダ内で右クリックして「ここでターミナルを開く」を選択するとKonsoleも起動できました。
LANDISK-9331159というのはDolphinのsmbで開いたものではKonsoleは起動できません。
//192.168.1.1/sda1 /mnt/rt-ac65u cifs vers=1.0,nodfs,password="""",file_mode=0777,dir_mode=0777,noauto,user 0 0
同様にASUS RT-AC65UにUSBでつないだHDDもマウントするようにしました。
大量のファイルを扱うとDolphinがフリーズする
NAS上の1000個ほどの写真と動画を選択するとDolphinがフリーズして使えなくなってしまいました。
smbで接続するとそういうフリーズは発生しません。
ASUS RT-AC65Uに接続したHDDへのアクセス数に制限?
Dolphinのsmbでの接続にも問題があってASUS RT-AC65Uに接続したHDDへアクセスが一つしかできません。
一つのフォルダを見ながら新しいウィンドウで同じHDDにアクセスするとDolphinで認証ダイアログがでてきて以後フォルダにアクセスしてもフォルダが存在しませんと言われてアクセスできなくなります。ASUS RT-AC65UのSAMBAでは認証なしに設定しているので本来はユーザー名もパスワードも入力を求められることはありません。
smbでの接続だけでなくmount.cifsでの接続も一つとカウントされるようでmount.cifsで接続しながらsmbで接続しようとすると同じエラーになってしまいます。
mount.cifsだけで接続している限りはこのような制限はありませんでした。
Windows10からのアクセスでも問題はないので、Dolphinのsmbクライアントとの相性が悪いようです。I-O DATA NAS 3TB HDL-T3WHへのアクセスには問題ありません。
結局cifsにしろsmbにしろファイルのコピーや移動を複数並行して実行させようとすると高確率でDolphinがフリーズするので一つずつ実行させるのが無難です。
FileModifyDateはsmbでは変更されてしまう
ExifToolで写真と動画を日付フォルダに自動整理する-p--qをやっていて気がついたのですが、cifsでマウントしたディスクからローカルにコピーしたファイルのFileModifyDateは変更されませんが、smbでマウントしたディスクからローカルにコピーしたファイルのFileModifyDateはローカルにコピーした日時に変更されてしまいます。
linux - KDE Dolphin not preserving modified date of files when copying to samba share - Super User
ローカルディスクからリモートのNASディスクにcifsでコピーするとファイルのFileModifyDateが更新されるがsmbだと変更されないという逆の現象のQ&Aを見つけました。
他にも同じような報告があって、これはKDEの問題のようです。
cifsとsmbの違いまとめ
cifsでマウントするとTerminalでアクセスできるがsmbではアクセスできない。
cifsでマウントしたフォルダ内で1000個ほどのファイルを選択するとDolphinがフリーズするがsmbではフリーズしない(1000個ほどのファイルを入れたフォルダの操作はcifsでマウントしていても問題ない)。
smbでマウントしたフォルダに複数ウィンドウでアクセスするとDolphinがフリーズするがcifsではフリーズしない。
cifsでマウントしたフォルダからローカルディスクにファイルをコピーしてもFileModifyDateは変更されないがsmbだとコピーした日時にFileModifyDateが変更されてしまう(smbでマウントしたディスク内のコピーでは変更されない)。
これらから判断するとsmbを使うよりもcifsでマウントしたほうがメリットが大きそうです。
0 件のコメント:
コメントを投稿