
Scientific Linux 6.3 を実行しているノートブックをいくつか持っています。
サスペンド機能は、1 つの問題を除いて、非常にうまく機能しています。
ノートパソコンがSamba共有をマウントし、この共有を介していくつかのビデオを再生すると、サスペンド機能が動作しなくなり、ノートパソコンが突然5一時停止まで数分。
繰り返しますが、この問題は、Samba 共有経由でビデオを視聴した場合にのみ発生します。
質問: なぜですか? サスペンド機能が関与した直後に、Samba が何かを開いたままにして 5 分間のタイムアウトを必要とするのですか?
何が起こっているのかを調べるためにどこを見ればよいか、何かアドバイスがあればありがたいです。または、サスペンド ボタンが押されたかどうかをチェックする bash スクリプトを記述して、マシンに対して xy* 操作を実行する方法を教えてください。
(*xy=この問題を修正するもの)
答え1
マウント中に接続が中断されると、Samba 共有の反応がかなり悪くなるという経験があります。
ストレージより先にネットワークがダウンしている可能性があります。そのため、システムが Samba 共有を使用してネットワーク接続なしでは実行できない操作をしようとしている可能性があります。回避策としては、サスペンド時に自動的にアンマウントし (その後再マウントする場合もあります) ます。
#!/bin/bash
if [ $1 == "suspend" ]; then
umount -afl -t cifs
fi
これを配置して/etc/pm/sleep.d/
実行可能にすると、サスペンドのたびに実行されるはずです。ただし、すぐに実行されるかどうかは実際にテストできません。コメントでフィードバックしてください。ただし、プログラムが共有内のファイルにアクセスしている場合は問題が発生します。-l
ファイルシステム ツリーからマウント解除して、-f
共有サーバーにアクセスできない場合でも確実に機能するようにする必要があります。
これをステートフルに拡張し、再開時にマウントを復元する(試みる)こともできます。
公式ソースを見つけることができませんでした。おそらく最善の方法は、Linux カーネル ソースをチェックして、デバイスがサスペンドに送信される順序を確認し、サスペンド時に cifs が何をしようとしているかなどを確認することです。
答え2
1)
sudo 権限を設定します。
visudo
USERNAME ALL = NOPASSWD: /bin/mount //192.168.1.1/Share /home/USERNAME/Desktop/Share -t cifs*
USERNAME ALL = NOPASSWD: /bin/umount -f -a -t cifs
USERNAME ALL = NOPASSWD: /bin/umount -f -l -a -t cifs
USERNAME ALL = NOPASSWD: /sbin/modprobe -r -f cifs
=================================================================================
2)
通常ユーザーの場合:
vi ~/.mountsamba.sh; chmod +x ~/.mountsamba.sh
#!/bin/bash
case $1 in
mount)
echo 'In progress...'
/usr/bin/sudo /bin/mount //192.168.1.1/Share /home/USERNAME/Desktop/Share -t cifs -o ro,bg,intr,soft,noexec,nosuid,nodev,password=,nolock
pkill nautilus
echo "MOUNTShare - `date`" | /usr/bin/logger
;;
umount)
echo 'folyamatban...'
/usr/bin/sudo /bin/umount -f -a -t cifs
/usr/bin/sudo /bin/umount -f -l -a -t cifs
sleep 5
/usr/bin/sudo /sbin/modprobe -r -f cifs
pkill nautilus
echo "UMOUNTShare - `date`" | /usr/bin/logger
;;
*)
exit 1
;;
esac
===============================================================================
3)
GNOMEパネルにアイコンを配置します:
gnome-terminal -x bash -c "/home/USERNAME/.mountsamba.sh mount"
gnome-terminal -x bash -c "/home/USERNAME/.mountsamba.sh umount"
===================================================================================
4)
autofs を使用する場合:
vi /etc/auto.master
/- /etc/auto.samba --timeout=120
vi /etc/auto.samba
/home/USERNAME/Desktop/Share -fstype=cifs,bg,intr,soft,ro,noexec,nosuid,nodev,password=,nolock ://192.168.1.1/Share