- 締切済み
シンボリックリンクとマウントの違い
linux初心者です。 シンボリックリンクとマウントの違いがよくわかりません。 マウントの説明について、書籍では 「あるファイルシステムに別のファイルシステムを組み込んで、全体として1つのファイルシステムとして扱えるようにする」 とあるのですが、 具体的にどういうことでしょうか。 元のファイルシステムにあるものを、別のファイルシステムにコピーしているわけではないのですよね? 参照しているのなら、シンボリックリンクと何が違うのでしょうか。 イメージが全く掴めず困っています。 どなたかご教示いただけないでしょうか…。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
シンボリックリンクは実際のファイルの位置を記憶しているファイル。 マウントはHD、DVD等ををファイル管理出来るように登録、表示する事。 Windowsではハードが対応していれば表示されるが(物が無くても)、ルナックスでは『マウント』と 言う作業が必要です。 >「あるファイルシステムに別のファイルシステムを組み込んで、全体として1つのファイルシステムとして扱えるようにする」 これは正しいようで正確ではない表現 組み込んでいるわけでは無い。扱える様にするだけ。 どちらもファイルシステムをコピペしてはいないのです。
- h271015
- ベストアンサー率71% (62/87)
シンボリックリンクはWindowsのショートカットのようなイメージです。 「ln」コマンドでシンボリックリンクを作成することができ、ファイルシステム上には本体の場所が記録された0バイトのファイルが出現します。 例) $ ln -s /home/hoge/hoge.txt /tmp/hogehoge.txt $ ls -l /tmp/hogehoge.txt lrwxrwxrwx 1 hoge hoge 15 Nov 01 00:00 /tmp/hogehoge.txt -> /home/hoge/hoge.txt マウントは、各記憶装置デバイスをLinux上のディレクトリツリーに接続して利用可能にするイメージです。 例えば、ハードディスク(/dev/sdaXなどの名称)のファイルシステム(ext3やext4,xfsなど)は、基本的にはOSインストールプロセスで作成され、OS起動時にHDDデバイスとディレクトリツリーを紐付ける処理(マウント)が行われます。 例) /dev/sda1 -> /boot /dev/sda2 -> / /dev/sda3 -> /var : また、例えば、CD-ROMを利用する場合、CD-ROMはCD-ROMで別なファイルシステムとなっています。 このCD-ROMを/mnt/cdromディレクトリへマウントする(既存Linuxファイルシステム上のディレクトリツリーに紐付ける)ことで読み出すことができるようになります。 CD-ROMマウント例) # mount -r -t iso9660 /dev/cdrom /mnt/cdrom ※iso9660 は CD-ROM で使われているファイルシステム構造 /dev/cdrom -> /mnt/cdrom に接続 ###イメージ図### == ・HDD(Linux) -- / └ /mnt └ /cdrom -------------------- ↑ CD-ROMをLinux上の/mnt/cdromへマウント ・CD-ROM ----- / └ /data -------------------- == ↓ ※マウント後Linux上では以下のようになる == / └ /mnt └ /cdrom └ /data ==
- notnot
- ベストアンサー率47% (4900/10358)
シンボリックリンクは、ファイルやディレクトリに別名を付けるようなものです。 マウントは、ブロックデバイス(ディスクや、USBメモリ、DVDなど)をファイルシステムとして / 以下のツリー構造に組み込みます。 ブロックデバイスそのもの /dev/hda1 とかは、マウントしないそのままではバイトの集まりです(巨大な1ファイル)。 また、ISO形式のファイル(CDROM/DVDをそのまま1ファイルとしてコピーしたもの)がありますが、これもファイルシステムとしてマウントすることも出来ます。ISOファイルをブロックデバイスとして見なすわけです。マウントすると1ファイルだった物の中のディレクトリやファイルが見えます。
- vaidurya
- ベストアンサー率45% (2714/5983)
Unix系OSにおいては、MS-DOSやCP/Mのような FDD前提に始まったOSのような、ドライブレターという概念がありません。 FDDからHDDへ移行し、HDDでのパーティション分割や RAIDなどのボリュームのような、いろんな対象にファイルシステムを作成し ドライブレターを割り当てるというWindows式の管理では 多様化が進んで、ドライブレターの定義は リムーバブルストレージデバイスやリムバーブルストレージのメディアや HDDのパーティションやRAIDボリュームなどを指し示すものになっています。 結果的に「D:ドライブがおかしい」という質問が 何についての質問をしているのか、まったくわからないという混乱があったりします。 対して、Microsoft社やデジタルリサーチ社やApple社が無い時代からあるUNIXでは 複数のストレージ装置の管理の、基本機能の一つがマウントとなります。 ドライブレターのような仕組みを、一般ユーザーに露出する表層部で使わないで 一般ユーザーから見えるのは、たった一つのファイルシステムツリーだけとなります。 ゆえに 〉「あるファイルシステムに別のファイルシステムを組み込んで、全体として1つのファイルシステムとして扱えるようにする」 という機能が、基本機能として必須となります。 いわば、マウントしなければ扱えないから、マウントするのが当たり前です。 (恣意的にマウントしないパーティションがある場合もありえます) ドライブレターに相当するものは、OS管理のレベルでは /dev/sda1や/dev/md0のようなデバイスファイルがありますが これは、mkfsやmountでの対象指定として使うくらいで 管理者では無い一般ユーザーが意識することは通常ありません。 またマウントしないで、デバイスファイルを指定して その中のファイルシステムを利用したり、ファイルを取り出すことも通常ありえません。 (技術的に不可能では無いでしょうけど、やりませんし、専用ソフトを開発する必要があります) Windowsのドライブレターでは、装置やボリュームなどを、中途半端に抽象化していて 抽象化していながら、それが何であるのかが固定されていません。 D:ドライブが光学ドライブの場合もあれば 外付けHDDの場合もあれば、内蔵HDDの2つ目のパーティションの場合もあります。 Unix系OSでは、より確実性のある抽象化が行われていて 光学ドライブであれば、デバイスファイルはHDDやUSBメモリーと判別しやすく また実際に使うためのマウントポイントも、より具体的な名称を自動割り当てして ディスクごとの識別が容易に行えるようになっています。 たとえば、UbuntuでUbuntuのインストールディスクを挿入すると /dev/sr0が自動生成されたマウントポイントにマウントされますが インストールディスクには、ファイルシステムのボリュームラベルがあるので これを付けて、たとえば /media/Xubuntu 14.04 LTS i386 としてマウントされます。 ドライブレターの自動割り当ては、基本アルファベット一文字という仕様制限から 先行してきたUnixの仕様に劣り、また後から一般化したUnix系OSでの自動マウントにも 運用上見劣るものとなってしまったかっこうです。 GUI上で使えば、Windowsでも見誤ることは少ないかもしれませんが コマンドラインでファイル操作をする場合、それ以上にシェルスクリプトなどで扱う場合に トラブル要因が小さくなるのが、マウントによる運用の利点です。 たとえば、Unix系OSのマウントによる管理では お父さんが管理するパソコンにおいて、お父さんがNASや外付けHDDや RAID1ストレージを増設して、HDDの容量不足に対処しようとした場合に 最初から、データ保存場所を家族ユーザー個別の場所を定義しておけば それが、内蔵HDDから外付けHDDに移行しても NASやRAIDボリュームに移行しても、家族が気にする必要がありません。 「あら空き容量が広くなったわね」程度の認識で構いません。 Windowsでは、ドライブレターを伝えて、保存先の変更を伝える必要があります。 場合によっては、ソフトごとに保存先を新しい場所に指定しなおしていく手間がかかります。 Unix式では、/mnt/data/ichirouが/dev/sda1の一部から /dev/sdb1の一部になっても、/dev/md0の一部になってもichirou君は気づくする必要がありません。 ただ、実際の運用では、/mnt/data/ichirouでは面倒くさいので ichirou君のホームディレクトリーにdataディレクトリーがあるほうが簡単です。 そういう時に ln -s /mnt/data/ichirou /home/ichirou/data としてシンボリックリンクを張れば、より扱いやすくなります。 マウント先がどこでも、シンボリックリンクで補えるのが普通で 必須機能としてのマウントに対して より便利にする機能がシンボリックリンクと言えます。 実際の運用では、管理する人の管理しやすいように 柔軟に使い分けることになります。 まぁ、バックアップソフトの設定変更が面倒くさいので マウントによって、以前通りに運用できる利点は 管理者にとっても非常に便利な仕様と言えます。