LinuxのCD-ROMドライブをWindowsに共有する
WindowsのDVDドライブが壊れたのですが、滅多に使わないので、取り敢えず間に合わせにLinux機のCD-ROMドライブをsambaで共有しました。ただ、壊れたWindowsはパートさんが使っているので、僕がいない時にもCDを使う可能性があります。
そこで、sambaのオプションのpreexecとpostexecを使って、mount / umountを実行するようにしました。それまでは、それほど使うこともなかったので、/etc/fstabの設定すらしていませんでした。というか、autofsが/misc/cdに自動マウントしてくれていたので、そっちを使っていたのですが、アンマウントがタイムアウトを待たなければならないようで、どうもWindowsを使っているパートさんにはわかりづらいと思ったので、autofsは止めました。というか、確認したらCDだけの為にサーバーを動かしていたようなので、アンインストールしました。
で、/etc/fstabの設定ですが、あんまり深いことを考えずにusersでマウントできるようにしました。自分が使う時に、rootになるのも面倒なので。ついでに、USBフラッシュメモリもfstabに登録しておきました。
/etc/fstabの一部
/dev/cdrom /mnt/cdrom iso9660 noauto,users,kudzu,ro 0 0 /dev/sda1 /mnt/usbmem vfat noauto,users 0 0
ユーザーでマウントできるか試してみた。
$ mount /mnt/cdrom $ mount /mnt/usbmem
マウントは問題なし。次はsambaの設定。僕の環境では/etc/samba/smb.confを編集します。
[cd-rom] path = /mnt/cdrom locking = No read only = Yes guest ok = Yes preexec = /bin/mount /mnt/cdrom postexec = /bin/umount /mnt/cdrom
以上を追加しておいた。これで、preexecでmountしてpostexecでアンマウントしてくれる筈。
最初は手動でマウントしていた時の癖でmountにファイルシステムとかデバイスまでフルに 書いちゃってたんでfstabを参照しなかったのだと思うのだけど、preexecじゃなくてroot preexecにしないと マウントしてくれなくて、ちょっとハマりました。つまり丁寧に書き過ぎちゃうと、せっかく指定したfstabが 役に立たなくなっちゃう訳ですね。
# /etc/rc.d/init.d/smb restart
sambaを再起動してみて、パートさんのWindowsのネットワークから共有フォルダにアクセスしてみると、ちゃんとCDの中身が見られました。で、エクスプローラを閉じてイジェクトボタンを押してみると?出てこない…。仕方ないので、Linuxにログインしてumountしてみると「デバイスを使用中です」って言われる。参った。
Windowsをログオフしてからイジェクトボタンを押したら、無事にCDを取り出すことができました。 これはたまたまだったみたいで、USBメモリが外せなくなる時と同じ感じですね。 再起動してから、何度か試してみましたが、その後は問題なくアンマウントできているようです。
| 固定リンク
「Linux」カテゴリの記事
- httpsになったらレイアウトが崩れたりスクリプトが動かなかったりを修正(2023.06.19)
- ntpdを止めないでntpdateで同期する(2020.08.22)
- WSLのDebianでfishのヘルプを表示。shutdownコマンドでwslの終了も。(2020.08.04)
- python requests.exception.SSLError SSL接続でエラーが出る(2020.07.27)
- chkconfigできない…。debianでサービスの自動起動を設定する(2018.07.03)
この記事へのコメントは終了しました。
コメント