Debian etch(PPC版)でnfsサーバを以下の設定で立て、自宅LAN内で
ファイル共有をする事が出来ました。
root@nfsserv# cat /etc/exports
/home/share 192.168.0.0/255.255.255.0(rw,sync,subtree_check)
root@nfsserv# /etc/init.d/nfs-kernel-server start
Exporting directories for NFS kernel daemon....
Starting NFS kernel daemon: nfsd mountd.
root@client# mount -t nfs -o rw nfsserv:/home/share /mnt/share
root@client# touch /mnt/share/hoge
root@client# ls
hoge
ここまでは正常に動作しているのですが、この環境でnfsservにUSB外付けハードディスクドライブ(/dev/sdb,プライマリパーティションでext3なsdb1がひとつだけある)を接続しました。
root@nfsserv# mkdir /home/share/sdb1
root@nfsserv# mount -o rw /dev/sdb1 /home/share/sdb1
root@nfsserv# chown nobody /home/share/sdb1
root@nfsserv# chgrp nogroup /home/share/sdb1
root@nfsserv# ls -l /home/share/
drwxrwxrwx 5 nobody nogroup 4096 2010-02-14 23:35 sdb1/
root@nfsserv# ls /home/share/sdb1
bar/ foo/ lost+found/
root@nfsserv# exit
user@nfsserv$ touch /home/share/sdb1/hello
user@nfsserv$ ls -l /home/share/sdb1/hello
-rw-r--r-- 1 user user 0 2010-02-15 00:23 /home/share/sdb1/hello
と、ローカルからは読み書き出来ているのですが、
exportfs -ra、nfs-kernel-serverの再起動、クライアントからの
NFSディレクトリ再マウント後
root@client# ls /mnt/share/sdb1
何も表示されない
root@client# touch /mnt/share/sdb1/hoge
touch: `/mnt/alice/sdb1/hoge'にtouchできませんでした: Permission denied
となってしまいます。
デバイスのマウントの仕方が悪いのか、/etc/exportsの書き方が悪いのか、分かりませんでした。
NFSでの公開ディレクトリ以下に、USBハードディスクをマウントして、クライアントから読み書きしたいのですが、どのようにすればいいでしょうか。
No.2ベストアンサー
- 回答日時:
この場合、USBハードディスクはNFSクライアント側からは見えません。
NFSクライアントから見えている「………/sdb1」は、サーバ側にてUSB-HDDがマウントされる前のディレクトリです。一般に、「子ファイルシステム」(USB-HDDのことです)をマウントしている「親ファイルシステム」(/usr/shareのことです) をNFSで export しても、NFSクライアントから見えるのは「親」のみで「子」は見えません。USB-HDDだけでなく、普通のATA/SCSIなHDDでも同じ結果になります。これは現在のLinux(ほとんどのUnixでも同じ)におけるNFSサーバの仕様です。
(ユーザモードNFSしかなかった時代の古いLinuxでは、実はこの場合でもUSB-HDDが見えたのですが、最近主流のカーネルモードNFSでは見えません)
クライアントからUSB-HDDを見えるようにするには、いくつか方法があります。
1. USB-HDDをマウントした部分も明示的にexportする
これが正攻法です。
- nfsserv上の /etc/exportfs に以下を追記
/home/share/sdb1 192.168.0.0/255.255.255.0(rw,sync,subtree_check)
- clientでマウント
mount -t nfs -o rw nfsserv:/home/share/sdb1 /mnt/share/sdb1
(クライアント側には /mnt/share/sdb1 を mkdir しておいてください)
2. exportのオプションに nohide オプションをつける
nohideオプションにはいろいろな制限があります。詳細はexports(5)。
3. サーバ側で、カーネルモードNFSではなくユーザモードNFSを使用する。
ユーザモードNFS(nfs-user-server)を使うと「親のファイルシステム」をexportするだけで「子のファイルシステム」が見えるようになります。ただし、速度はかなり低下します。
早速のご回答ありがとうございました。
> USB-HDDだけでなく、普通のATA/SCSIなHDDでも同じ結果になります。これは現在のLinux(ほとんどのUnixでも同じ)におけるNFSサーバの仕様です。
なるほど!クライアントが親に対する権限を持っていても、子のファイルシステムが全く別個のものだと、それ相応扱いが変わってくるのですね。subtree_checkオプションを曖昧な意味で認識していました。
> (ユーザモードNFSしかなかった時代の古いLinuxでは、実はこの場合でもUSB-HDDが見えたのですが、最近主流のカーネルモードNFSでは見えません)
ユーザモードとカーネルモード、どのように振舞いの差があるのか勉強してみたいと思います。
ご提示頂きました方法では、1番でやってみたいと思います。(しっかりと動作してくれました)
口下手な質問にも関わらず、的確な原因提示に加え、それに対する対処法をいくつも頂き、非常に助かりました。本当にありがとうございます。
No.1
- 回答日時:
さっぱりわかんないんだけど…
HDDに割り当てられたデバイスファイル名の変化
(USBストレージではよくあることです)
FAT系ファイルシステムをマウントすることで
権限設定が意図どおりに行なわれていない
この二つが怪しい気はします。
たとえばデバイスファイルではなく
UUIDでパーティションを指定してサーバーにマウントし
USB-HDDをext3などでフォーマットしても
同様のトラブルがおきるとしたら、問題は違うところにあると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- Android(アンドロイド) QuickPik GalleryでSDカードの「root」のディレクトリが出てこない 3 2022/07/11 14:43
- UNIX・Linux Kali Linuxで起動できない - Minimal BASH Like Line Editing 1 2022/06/03 13:14
- UNIX・Linux postfix smtpサーバーリレーがTLSハンドシェーク失敗 1 2022/08/15 15:45
- Windows 10 Chrome OS Flexのインストールメディアが作成できないです... 1 2022/07/20 20:47
- ドライブ・ストレージ Android端末でSDカードが機能しなくなりました 6 2023/02/17 17:20
- タブレット アンドロイドタブレットの機能 iPad air 5、265 WiFi を使っていますが、USBもSD 4 2022/12/10 21:59
- その他(悩み相談・人生相談) ファイル共有ソフトshareについて 1 2023/06/20 04:03
- UNIX・Linux マスターブートレコード方式のbiosを使ったシステムでインストールされたlinuxで/dev/sda 1 2023/05/13 21:23
- 実用・教育 ラテン語について 2 2022/07/20 20:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
e2fsckの実行結果について教え...
-
fstabを編集してもうまくマウン...
-
/ が何時の間にか「Read-only f...
-
scpコマンドでリモートサーバの...
-
書き込み権限が無いためコピー...
-
Viで書き込もうとすると、保...
-
IBM漢字コードのSJIS変...
-
コマンド終了ステータス
-
AIX ksh利用 grep 検索で マ...
-
cronでftp自動転送を行いたい
-
Windows10のRegSys32に登録され...
-
レジストリの再構築について
-
Warning: Output is not to
-
/etc/passwd と /etc/shadowを...
-
UNIXシェル内での日付計算
-
動的に日時を取得しファイル名...
-
csh(Cシェル)のevalに関して
-
telnet へのパイプができないです
-
lsコマンドで表示するファイル...
-
ls -l 結果表示のパーミッショ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
/ が何時の間にか「Read-only f...
-
CentOSでのCDマウントがうまく...
-
OS がインストールされているデ...
-
Solarisが起動しなくなった・・・
-
findでエラー
-
e2fsckの実行について
-
/optのアクセス権を変更したい...
-
「Linuxでネットワークドライブ...
-
Red Hat Linux 9でcd-romをマウ...
-
USBハードディスクのnfsでのエ...
-
USB接続のFDDのマウントについて
-
Vine Linux 3.2 で PD のマウン...
-
mt statusについて
-
VirtualBox 上のDebian 8.0.0 ...
-
dfコマンドの出力結果について
-
solaris ディスク情報の見方に...
-
mount
-
e2fsckの実行結果について教え...
-
scpコマンドでリモートサーバの...
-
Viで書き込もうとすると、保...
おすすめ情報