こんばんは。
UNIXの勉強をしている初心者です。
シンボリックリンクとネットワークファイルシステムの違いが分かりません。

他のPCのディレクトリを自分のパソコンから操作するためにそこをマウントしている。これがNFSだと覚えました。
ディレクトリを開くと、全く別の他のディレクトリにリンクされている。これがシンボリックリンクと習いました。

リンクとマウントという言葉は違うものの、やっていることは一緒では無いでしょうか?

表現がお粗末で申し訳ありませんが、どうちがうのでしょうか?

教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

誤解を恐れずに言うとシンボリックリンクはWindowsのショートカットで、NFSはネットワークドライブです。



unixでどのようにこれらを利用するかと言うと、先ずはシンボリックリンクからご説明します。
バージョンの異なる同一のアプリケーションをインストール必要があったとします。例えば暗号化に必要なopensslです。
またこれらを必要とする別のアプリケーションが複数あったとします。例えばApacheやOpenSSHなどです。
このようなときにApacheやOpenSSHが利用するopensslの参照先はバイナリファイルに記述されていますので、これらをわざわざopensslを利用しているアプリケーションを再インストールするのは非常に手間です。
ですので、下記のようなことを実施します。
/opt/openssl-now ←今利用しているopenssl
/opt/openssl-new ←新しくしたopenssl
/opt/openssl ←/opt/openssl-nowへのシンボリックリンク
↓シンボリックリンクの変更
/opt/openssl ←/opt/openssl-newへのシンボリックリンク

こうすることで、利用しているアプリケーションを全て再コンパイルする必要なく手軽にメンテナンスが可能になります。

NFSによるマウントは別のサーバのディスクをあたかも自分の物のようにみせることですので、例えば信頼性の高い容量の大きく速度も速いディスクを一つのサーバでもち、これらを別サーバに貸し出すといった利用ができます。このように信頼性を集約することでコストを大幅に削減できたりもします。
私の主観ではNFSであまりいい思い出がないので、積極的な導入は考えたくないです。
    • good
    • 0

確かに NFS は壊れた実装も多いけど, Solaris の NFS は (大元ということもあって) 一番まともじゃないですかね>#3.


他の選択肢は CIFS? でも, samba は「元のソースから壊れてた」こともあるしなぁ. しかも「設計段階で破綻してる」レベルの, 余りにもひどい壊れっぷりに驚愕したくらい.
日本のユーザグループで「samba は機能を追加することよりも前に C の勉強をしてくれよ」っていわれたこともある.
    • good
    • 0

まあ広い意味での「パスの変換機構」と思えば一緒かもしれん.


マウントは「別のファイルシステムを自分のファイルシステムに接ぎ木する機構」であるのに対し, シンボリックリンクは「『別のところを参照してくれ』と書いてあるファイル」です. そして, シンボリックリンクは 1回作れば (消さない限り) シャットダウンしても有効であるのに対し, マウント機構ではシャットダウンしてしまうと (再びマウントしなければ) 無効となります.
なお, シンボリックリンクは「ディレクトリとは限らない」 (ファイルなどに対してもシンボリックリンクがはれる) し「リンク先が存在するとも限らない」ことは知っていていいんじゃないかな.
    • good
    • 0
この回答へのお礼

何となく分かりました。ショートカットみたいですね。
ありがとうございます。

お礼日時:2009/06/30 18:41

質問する時は時に注意しないといけないのは・・・言葉使いですよ!



「シンボリックリンクとネットワークファイルシステム」の「ネットワークファイルシステム」とNFSは同じですか? 別ですか???

質問を読むと同じ機能を言っているように思えますが・・・


「NFS」はNFSサーバがあって動作する機能ですが、マウントはNFSを含めてHDDなどのデバイスをOSに接続(マウント)する機能です。
 リンク(シンボリック&ハード・リンク)は、ファイル・システム中でファイルを参照する方法です。


> シンボリックリンクとネットワークファイルシステムの違いが分かりません。
概念上の違いがあるので、何が分からないを具体的に書かないと解答できないと思います。
    • good
    • 0
この回答へのお礼

言葉が悪くすいません。
最近、シンボリックリンクという言葉を知りました。そのとき、「以前覚えた、NFSとどう違うのだろうか?」疑問を持ちました。
(質問に書いたように理解してしまっているので、自分の中では同じなのです。)

そもそもが分かっていない初心者で情けないのですが、概念を教えてください。(そうしたら、概念の違いが分かると思いますので。)

お礼日時:2009/06/29 23:27

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QWindows のシンボリックリンクを編集する方法はありませんか。

Windows のシンボリックリンクを編集する方法はありませんか。

シンボリックリンクのリンク先を相対パスに編集し直したいのです。
何かよい方法はありませんでしょうか。

現状
Windows 7 64bit
Hardlink ShellExtension
http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
上記アプリにてシンボリックリンクを作っています。
しかし作られるリンク先は絶対アドレスになります。
このアドレスを相対アドレスに変更したいのです。
ボリューム変更や、バックアップ先でもリンクが機能するようにしたいためです。

Aベストアンサー

win7の mklink ではどうでしょうか。

MKLINK [[/D] | [/H] | [/J]] リンク ターゲット

/D
ディレクトリのシンボリック リンクを作成します。
既定では、ファイルのシンボリック リンクが作成されます。

/H
シンボリック リンクではなく、ハード リンクを作成します。

/J
ディレクトリ ジャンクションを作成します。

リンク
新しいシンボリック リンク名を指定します。

ターゲット
新しいリンクが参照するパス (相対または絶対)を指定します。

QNFS接続+シンボリックリンクを使ったディレクトリの参照先について

2台のLinuxサーバ(いずれもRedHat AS3.0) にて、
NFS接続+シンボリックリンクを使ったディレクトリにファイルをコピーしようとしています。

2台のLinuxサーバはそれぞれ
 ・サーバA(NFSサーバ)
 ・サーバB(NFSクライアント)
と記載しています。


初めに、サーバBの「/home/SAVEDATA」をマウントポイントとして、
サーバAの「/home/SAVEDATA」にNFS接続するよう設定した後、
サーバBにtenletでログインし、NFS接続したサーバAのディレクトリをたどっていくと、
途中で「そのようなディレクトリは無い」と言われてしまいます。
------------------------------------------------------------------------------------
[サーバB] $ vdir /home/SAVEDATA/
lrwxrwxrwx 1 user user 34 10月 3 12:21 /home/SAVEDATA/2005 -> /DSK10/SAVEDATA/2005

[サーバB] $ vdir /home/SAVEDATA/2005/
vdir: /home/SAVEDATA/2005/: そのようなファイルやディレクトリはありません
------------------------------------------------------------------------------------

おそらく、最後のコマンドでは
「サーバB」の「/DSK10/SAVEDATA/2005」を探してしまっているのではないかと思うのですが、
実際見て欲しいのは「サーバA」の「/DSK10/SAVEDATA/2005」です。
(サーバBには「/DSK10」は存在しません。)
この環境で、正しくサーバAの「/DSK10/SAVEDATA/2005」を参照するようにすることは可能でしょうか。

お分かりになる方がいらっしゃいましたら、アドバイスをお願い致します。

2台のLinuxサーバ(いずれもRedHat AS3.0) にて、
NFS接続+シンボリックリンクを使ったディレクトリにファイルをコピーしようとしています。

2台のLinuxサーバはそれぞれ
 ・サーバA(NFSサーバ)
 ・サーバB(NFSクライアント)
と記載しています。


初めに、サーバBの「/home/SAVEDATA」をマウントポイントとして、
サーバAの「/home/SAVEDATA」にNFS接続するよう設定した後、
サーバBにtenletでログインし、NFS接続したサーバAのディレクトリをたどっていくと、
途中で「そのような...続きを読む

Aベストアンサー

現状「サーバB」で「サーバA」の「/DSK10/SAVEDATA/2005(/DSK10、/DSK10/SAVEDATAでもいいけど)」配下はNFSで参照出来るのでしょうか?

参照出来ないのでしたら、NFSで参照出来ない領域にアクセスする事は不可能ですからご希望の事は無理です。

例えば、「サーバA」の「/DSK10/SAVEDATA/2005」を「サーバB」で「/DSK10/SAVEDATA/2005」としてNFSマウントすればいいだけだと思うのだけど。

Qシンボリックリンクをする方法

シンボリックリンクする際にHardlink Shell Extensionというソフトを使用しているのですが
方法がいまいちわからなかったので質問させてください。

AppDataというフォルダをRamdiskにシンボリックリンクしたいのですが
AppDataを右クリック→リンク元として選択
→Ramdisk上で右クリック→リンクを作成
であっているでしょうか?

あとリンク先を作成の次に
「シンボリックリンク」か「シンボリックリンクの一括作成」のどちらを選択すればいいでしょうか?

よろしくお願いします。

Aベストアンサー

%AppData%を揮発性メモリ上に作ったりしたら、アプリケーションが動作しなくなりますがいいのですか?
★つれづれなるままに - つれづれブログ:Windows 7のシンボリックリンクを試す - livedoor Blog(ブログ)
http://blog.livedoor.jp/s_imai_jp/archives/51360129.html

Qマウントしたnfsディレクトリの権限

すみません。教えてください。

2つサーバーがあり、片方をNFSサーバとして使います。NFSサーバ側で/etc/exportsに以下の内容を記述しました。

/マウントさせるディレクトリ IPアドレス(rw,no_root_squash,sync)

NFSクライアントにSSHでログインし、マウントしたディレクトリにアクセスすると、その中のファイルなどは開くことができ、書き込みもできます。

しかし、ブラウザを使ってそのマウントしたディレクトリの中をファイルを開こうとすると403 Forbiddenの権限エラーになります。(※NFSクライアント側はWebサーバとなります。)

マウントではなく、同階層に別のテスト用ディレクトリを作り、同じファイルをコピーし、ブラウザで開こうとすると問題無く開き、書き込むこともできます。

NFSサーバもしくはNFSクライアントどちらかに(追加?)何か権限設定をしなければならないのでしょうか?
もしくはhttpd.confの設定でしょうか?

宜しくお願い致します。

Aベストアンサー

確認すべきはhttpd.confの内容と、使用するディレクトリのアクセス権限です。
このあたり、普通のディスクと違いは無いはずですが……

QUnixのシンボリックリンクファイルをWindowsマシンへコピーする際の問題回避方法

UNIXのファイル群をバックアップの為にWindowsからFTPでgetしているのですが、シンボリックリンクファイルをWindowsにFTPするとエラーで途中で転送が停止してしまいます。

リンク状況はなるべく保持した形でバックアップを取りたいのですがどうしたらよいでしょうか?

考えられる方法として、(1)UNIXのシンボリックリンクをaliasに変換しながらGetするようなツールはあるのでしょうか?
また(2)UNIX上で取り合えずシンボリックリンクの一覧を表示させたいのですが、どのようなコマンドがありますでしょうか? (find のオプションをチェックしているのですが良い方法が分からなかったので...)

symbolic linkファイルを元ファイルで置き換え(cp -fpr等でリンク元がコピーされる)更にどのような置き換えをしたかログを残したく思っています。

以上宜しくお願いします。

Aベストアンサー

(2) の方だけですが
find . -type l

QWindowsNTでUNIXのディレクトリをマウントしたい

WindowsNTでUNIXのディレクトリを参照したいのですが
(具体的には、UNIXのディレクトリをネットワークドライブに割り当てて、
ファイルの読み書きがしたいのですが)、
何かいい手法はありますか?
Windows Services for UNIX (SFU) 3.5をいれられたらいいのですが、
WindowsNTには対応してないみたいで困ってします。
よろしくお願いします。

Aベストアンサー

ネットワーク上のUNIXドライブという事でしょうか?

http://www.allied-telesis.co.jp/products/list/software/atnfsnt/catalog.html
NTにNFSクライアント機能をインストールする

UNIXにsambaサービスを導入する?UNIXによるかもしれません。

http://www.exconn.net/Forums/ShowPost.aspx?PostID=2566
ローカルのドライブならこちらのツールを。

Qシンボリックリンクの検索

そのディレクトリ以下のシンボリックリンクを検索してくれるコマンドというのはあるのでしょうか?

/home/usr/以下に存在する全てのシンボリックリンクを調べたいのです。

よろしくお願いいたします。

Aベストアンサー

こんにちは。

> そのディレクトリ以下のシンボリックリンクを検索してくれるコマンドというのはあるのでしょうか?

そのディレクトリに移動し、
find . -type l
と入力すればシンボリックリンクが一覧表示されますよ。
(-type の右の文字は小文字のエルです)

findコマンドのこの他のオプションは↓などを参照ください。
http://www.k-tanaka.net/unix/find.html

参考URL:http://www.k-tanaka.net/unix/find.html

Qcifsマウントで共有フォルダの中のディレクトリをマウント

Rea Hat Enterprise Linux4 update6を使用しています。cifsマウントでwindows2000Serverの共有フォルダの中のディレクトリをマウントしたいのですが、出来ますでしょうか?

具体的には、
//server/share/hogehoge(共有フォルダ)/補毛補毛
の"補毛補毛"ディレクトリをLinuxの/media/windowsにマウントしたいのですが、うまくいきません。hogehogeまでならマウントできます。
なんとかして共有フォルダの中のディレクトリをマウントする方法はないでしょうか。ちなみにサーバ側はいじれません。

ご回答、よろしくお願いいたします。

Aベストアンサー

上位のディレクトリがマウントできているのだから、サブディレクトリの利用はできているはずですので、どういう目的で、サブディレクトリだけをマウントしたいのか、今ひとつ理解できません。

「補毛補毛」のLinuxファイルシステム上の位置が「/media/windows」である必要が、どうしてもあるということなのでしょうか?

もしそうだとすれば、適当なマウントポイントに共有ディレクトリをマウントして、/media/windows から「補毛補毛」にシンボリックリンクを張るというのが最も簡単だと思います。

$ mkdir /mnt/hogehoge
$ mount -t cifs //server/share/hogehoge /mnt/hogehoge
$ ln -s /mnt/hogehoge/補毛補毛 /media/windows

また、以下のようにして、bind指定によって、サブディレクトリをマウントすることもできます。

mkdir /mnt/hogehoge
mount -t cifs //server/share/hogehoge /mnt/hogehoge
mount -o bind /mnt/hogehoge/補毛補毛 /media/windows

なお、CentOS-5 で Windows XPで共有設定をしているディレクトリのサブフォルダを直接マウントしてみました。

mount -t cifs //192.168.xxx.xxx/share/subdir /mount/point

ってな感じで、共有ディレクトリの1つ下の階層まではマウント、アクセスできました。ただし、試した限りにおいては、2つ下の階層からは、正しくマウントできていないようです。

以上、試した環境は次のとおり。ご参考まで。

# uname -r
2.6.18-53.1.14.el5.centos.plus
# rpm -q samba
samba-3.0.25b-1.el5_1.4

上位のディレクトリがマウントできているのだから、サブディレクトリの利用はできているはずですので、どういう目的で、サブディレクトリだけをマウントしたいのか、今ひとつ理解できません。

「補毛補毛」のLinuxファイルシステム上の位置が「/media/windows」である必要が、どうしてもあるということなのでしょうか?

もしそうだとすれば、適当なマウントポイントに共有ディレクトリをマウントして、/media/windows から「補毛補毛」にシンボリックリンクを張るというのが最も簡単だと思います。

$ mkd...続きを読む

Qシンボリックリンクの作成

シンボリックリンクの作成方法を教えてください

Aベストアンサー

がると申します。
ln -s ファイル実態のパス シンボリックリンクのパス
で如何でしょうか?
例えば
ln -s /usr/bin/perl5.6.x /usr/bin/perl
と記述すると
/usr/bin/perl5.6.x という「現在実際にあるファイル」に対して、
/usr/bin/perl という「シンボリックリンク」を作成する
って意味になります。

Qシンボリックリンクでリンク先にcdしたい

cd
ln -s ./dir1/dir2/dir3 .
とするとdir3へのシンボリックリンクができます。(~/dir3)
しかし、
cd ~/dir3
cd ..
とすると、~/dir1/dir2 ではなくて、home ( ~ ) にcdしてしまいます。
cd ~/dir3 により ~/dir1/dir2/dir3 にcd することはできないのでしょうか?
Linux はRedHatです。以前使っていたUnixではこのようなことができたと思いますが、Linuxでうまくいかないので困っています。

Aベストアンサー

ANo1.です。ごめんなさい。逆です。
質問文に書かれた linuxの動作が、シンボリックリンクの素直な性質ではなく、シェルの機能で便利にしてあるのです。質問者様には、便利なはずの機能が逆に不便になってしまっているようですが。

その機能を抑制するには、次のいずれかです。
1. cd -P .. というように、cdコマンドにPオプションをつける。
2. bash起動時に -Pオプションをつける
3. .profileなどに set -P と書いておく。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング