• ベストアンサー

マウントとは?

恥をしのんで質問します。linuxのマウントって一体、具体的に何をやっているんですか?デバイスを読み書きするためデバイスを認識するのに使われているかなあと自分は思うのですが?今頃誰にもこんな質問できないので教えてくださいよろしく御願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • vaidurya
  • ベストアンサー率45% (2714/5983)
回答No.3

カーネルからの認識はマウントではなく、デバイスドライバーのロードで行なわれます。 ドライバーが組み込まれることで デバイスファイルという形で、デバイスが認識されるのです。 その段階で認識されているからこそ、デバイスファイルが作られるし (実際のデバイスファイル作成はドライバーロードを行なうスクリプト) マウントを含む、デバイスファイルの操作ができるわけです。 (言い換えればドライバーが無いデバイスは認識されず扱えない) マウントは、ディレクトリーツリーに(直接ないし間接的に)接続する作業です。 カーネルの持つ、ファイル保存やファイル読み出しのコマンドは デバイスファイルに対しては動作せず… (たとえばcp foo.txt /dev/sdb1はできない) 有効なファイルシステムとして認識させる方法が UNIX系OS特有の、唯一のディレクトリーツリーにマウントすることなのです。 (補足するとmountは据え付けることや固定することを意味します。) HDDやUSBメモリーなどがOS上の有効なファイルシステムとなることで ファイル保存や読み出しができるようになるわけで… そうでなければ、ddのような特殊なツールでしか HDDやUSBメモリーを読み書きすることはできません。 言い換えれば電気的に繋ぎっぱなしのHDDも、マウントさえしていなければ ミスやユーザーアプリケーションの誤動作程度で ファイルが損なわれることは無いと言えます。 (ドライバーやカーネルのバグについてはその限りでは無い) ディレクトリーツリーの基部が、ルートディレクトリーを含むルートファイルシステムで、それは… インストール時には"/"にマウントを指定し、またGrub等の設定では root=/dev/sda1といった形で指定します。 UNIX系OSでは、すべてのファイルシステムはルートファイルシステムに 階層的に接続され、その際、ファイルシステムの違いは、通常問題となりません。 そのため、ファイルシステム単位の容量不足や、RAIDやNFS,Samba等の ファイルシステムの運用形態の変更において… ディレクトリーツリー上の位置指定を、スクリプトや各種設定に対して一定に保てます。 Windows等では、通常はすべてのファイルシステムが独立したディレクトリーツリーを持ち ことHDDについては、認識可能のファイルシステムは 強制的に起動時にマウントされ(削除ミスのリスク) また、ドライブレターの変動(ドライブレター指定による自動処理の誤動作リスク) といった"特徴"があります。 (ドライブレター固定もマウントも現行のWindowsではサポートされる) ついでに言うと、Linux等ではデバイスドライバーも OS可動中に任意にロード/アンロードできます。 デバイスドライバーの異常に由来する不具合も Linux等ではOS自体は再起動せずに回復できたりします。 (一時期、よくivtvを再ロードしてたなぁ…) ただ、ファイルシステムとかUSBとか関連のドライバーは 手軽にアンロード/再ロードはできないんですけどね…

stoneblue
質問者

お礼

カーネルの認識とマウントは、お互い別の話だということがわかりました。ドライバーをロード(読み込み)することでデバイスとして認識されること。マウントは、ディレクトリーツリーにつなげることがわかりました。初心者にもわかりやすく教えていただき感謝です。ありがとうございました。

その他の回答 (7)

  • hino_hp
  • ベストアンサー率65% (34/52)
回答No.8

linuxの起動時に自動マウントしなかったファイルシステム を追加的にコマンド操作によってマウントするときに使います。 (もし、起動時のマウント処理をすべて排除してしまえば、 いかなるファイルシステムも利用できないことになります) (起動時にマウント指定されて読み込まれるのは、OSがインストールされた パーティーションが主なものでしょう。が、それも事実上マウント・ コマンドによる処理です) つまり、記録メディア(HDD,SDD,CD-rom,DVD,スマートメディアその他) には既にlinux,unix,Windows,Mac-OSその他のOSで利用できるファイル形式 でデータがストックされています。 それを、今使っているlinuxで有効なファイルシステムとして利用可能な ように、今使っているlinuxの(インストール時に)採用したファイル・ システムで認識可能な範囲で、ファイルシステムのツリー上の一点 (ポイント)に組み込みます。挿入します。 これが、マウント。 逆に、そのポイント(ファイル・ツリー上の)から外すのが、アンマウント。 すなわち、デバイス上のデータは、OS(オペレーティング・システム)で 扱っているファイルシステムが採用しているファイル形式として読み込ん ではじめて、通常のPCユーザーがストレス無くデバイス上のデータを利用 できる(テキスト、HTML、各種実行ファイルとして利用する)のです。 デバイスからマウントなしに直接データアクセスするとすれば、dd コマンドとかありますが、2進法(ないしは16進法)データでよろし ければ... (よろしくないですよね?) マウントなしにデータアクセスできますよ。 (というか、コピーです。危険なユーザーコマンドですので) いずれにしても、マウント対象にするデバイスは利用可能なデバイス として、OS(linux)に認識されていなくてはなりませんが。 (該当するデバイス・ドライバがアクティブになっている必要あり)

stoneblue
質問者

お礼

大分整理がつきました。物理メディアがもつファイル形式をLinuxのもつファイルツリーで扱っているファイル形式に組み込むイメージですね。それでファイルが読み取れるという訳でしょうか。大変わかりやすかったです。ありがとうございました。

  • yakan9
  • ベストアンサー率54% (2204/4055)
回答No.7

質問者さんの聞きたいことは、 > linuxのマウントって一体、具体的に何をやっているんですか? ということですね。 分かりやすく的を絞って回答したつもりです。 /media/hda1がマウントポジションは、質問者さんでも知っているでしょう。

  • u-kid
  • ベストアンサー率50% (34/67)
回答No.6

3番さん以外、誤った解答が付いていますので、少しコメントします。 マウントはある物理デバイス上のファイルシステムをシステムのファイルシステムに接続すること、アンマウントは接続を解除することです。 論理デバイスは関係ありませんし、/media/sda1などは論理デバイスではなく、マウントポイントです。 デバイスドライバとかデバイス名のマッピングはマウントの前に完了しているべき問題で、デバイスがカーネルから操作できる状態になっていて、初めてマウントが可能になります。 mountコマンドのman pageを読んでください。

参考URL:
http://www.linux.or.jp/JM/html/util-linux/man8/mount.8.html
stoneblue
質問者

お礼

ある物理デバイスのファイルシステムとシステムのファイルシステムを接続することがマウントであることが明確になりました。ドライバをロードすることでカーネルの認識が行われることがわかりました。大変参考になりました。ありがとうございました。

  • yakan9
  • ベストアンサー率54% (2204/4055)
回答No.5

一部ミスがありました。 > それをまとめたテーブルが、/etc/gstabです。 は、間違い。 それをまとめたテーブルが、/etc/fstabです。

  • yakan9
  • ベストアンサー率54% (2204/4055)
回答No.4

マウントというのは、簡単に言うと、物理デバイスと論理デバイスを 繋げる役目をするものです。 OSの中では、BIOSから情報を得て、物理デバイスのままでは、 OSというソフトでは扱いづらいので、それを展開して、プログラム上 でも見れるようにするために、論理デバイスという形で持って処理の 対照とします。 具体的には、/dev/hda1とかの物理デバイスと、/media/hda1とかの、 論理デバイスです。 それをまとめたテーブルが、/etc/gstabです。 起動時にこのテーブルを見て、自動マウントしたり、フロッピや、 CD/DVD-ROMは、起動時にセットしていない場合は、起動後、 これらの結びつきをマウントコマンドで作り出してくれます。

stoneblue
質問者

お礼

初心者にわかりやすく教えていただきありがとうございます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

例として Windows で USBメモリを刺す場合を考えます. このとき 1.USBメモリをカーネルが認識する 2.(通常は) 適当なドライブ名をカーネルが割り当てる という動作が行われます. 「マウント」はこの 2 に近いものだと思ってください. ただし, Linux では「ドライブ名」というものを使わないので「既存のどこかのディレクトリ」を指定して割り当てることになります. そして, マウントすることによりストレージとして使うことができるようになります. 実は Windows でも既存のディレクトリに割り当てることができて, そうするとより Linux のマウントと同じような動作になります. 逆にこの割り当てを解除する操作が「アンマウント」で, こちらは Windows の「ハードウェアの取り外し」のようなものだと思えば OK. 物理的には接続されていてもカーネルからは存在しないように見えます. なお, マウントやアンマウントは「ランダムアクセスできるデバイス」, つまりハードディスクや USBメモリなどにのみ必要です. プリンタやテープデバイスなど「シーケンシャルアクセスしかできないデバイス」はマウントできません.

stoneblue
質問者

お礼

WINDOWSでAドライブ、Bドライブ、Eドライブ等をOSが割り付ける動作に似てることが直感的にイメージできました。ありがとうございました。大変参考になりました。

  • nemoax006
  • ベストアンサー率14% (343/2433)
回答No.1

マウントするとそのデバイスドライバがカーネルに登録されて使えるようになります、アンマウントは逆の行為になります

stoneblue
質問者

お礼

初心者にも難しい言葉は使わず、回答していただいたことに感謝しています。ありがとうございました。

stoneblue
質問者

補足

カーネルというのは、OS自体と思っていいでしょうか?OSにデバイスドライバを登録して、これでデバイスを認識し使えるようになる。例えばプリンタ接続する時にそのドライバをPCに入れるイメージでプリンタを認識するようなイメージでしょうか???すごい初心者ですいません。

関連するQ&A

  • デバイスをマウントできませんでした

    Linuxを使ってHDDを認識するのですが、「デバイスをマウントできませんでした」というメッセージが出て中を開けません。これはXPやVISTAでは、BIOSやデバイスでは認識しているのですが、OSでは認識できませんでした。Linuxで認識できました。他のHDにコピーしようとしてもできません。これはコピーする側の容量が小さいかなと思っていますが、デバイスをマウントできないと、コピーもされないのでしょうか? ご教示願います。 ryou-ma

  • デバイスのマウントについて

    デバイスのマウントについて Linuxを勉強中の初心者なのですがデバイスのマウントについてお聞きします。 自分で色々調べた結果、Linuxではデバイスをマウントしなくて使えず、/dev以下にデバイス情報のファイルが格納され、任意のマウントポイントを作りマウントする必要があるとわかりました。 ただそこでの疑問なのですが 1.デバイスを物理接続する前から一般的なデバイス情報が/dev以下にあるとの事だが、現在導入している環境(VirtualBox/ゲストOS:Ubuntu10.x)で/dev以下にあるのがsda1,sda2,sda5,sdbです。   マウント前なのになぜディスクも別れ、パーティション情報があり、またパーティション番号が1,2から飛んで5になるのか? 2./dev以下のデバイスファイルとは元々各デバイスの認識・アクセスするための情報が入ったファイルですよね?  そうすると、わざわざ任意のマウントポイントを作成してマウントする意味が今ひとつわからないです。  例えば物理的にHDDを接続している状態で/dev以下のデバイスファイルをcdなどでパスしていするとディレクトリを参照でき、物理接続がない時はエラー表示がでるというのでもいいのではないかと思ってしまいます。 3.仮想環境のUbuntuでも外付け・ホストOSのHDDやUSBをマウントする事は可能か 4.一般的に自動マウントをせず、物理接続をしただけの状態の時デバイス名などはどこかに表示などされないのか 以上になります。 少々わかりづらいかと思いますが宜しくお願いします

  • デバイスをマウントできませんでした

    Linuxを使ってHDDの中身を開きたいのですが、「デバイスをマウントできませんでした」というメッセージが出ます。開けません。ほかのHDDにコピーしたいのですが、(コピーすると中身が見えるかなと思って)できません。HDDの中を見てコピーする方法は無いのでしょうか?XPやVISTAではこのHDDは認識されませんでした。BIOSやデバイスでは認識しています。XPでフォーマットするときも認識します。大事なデータが入っています。何とかご教示願います。 ryou-ma

  • 壊れてないのに?マウントできなくて困っています。。。

    こんにちは。質問初心者です。 現在PMacG5 1,8G Single を使っています。 先日DVD-RAMに追加書き込みをし、読み込んだところ、何度試してもマウントされません。。。それまでは問題なく読み書きマウントできていたのに、それをきっかけに認識はするもののマウントされません。 たしかにその追加書き込み時はなんだかPCの動きが重かった(フォルダ開くの遅い)ような感じでした。 丸一日かけて探ってみたところ、 .ディスクユーティリティーで認識していますがマウントボタンを押しても読み込み音だけで、マウント(アイコン表示)されません。 .「情報」のマウントポイント欄は「マウントされていません」。でもメニューバーから/ファイル/ログを見てみると「“RAM”のマウントに成功しました」とあります。 .検証で修復しその後の検証では問題ないとのことです。 .システムプロファイラでもATAで認識はしています。が、マウントポイント欄は空白です。 .毎ディスク挿入時、読み込もうと回転音(読み込み音)は唸っています。 .中のファイルは残っているようです(使用約1G、空き約3G)。 .他のメディアは問題なく読み込めます。 本当に思い出の写真が詰まっていますので、何とかアクセスしてひっぱりだすようなことは出来ないのでしょうか。。。!! よろしくよろしくお願いしますっっ。。。 ちなみに質問二重投稿になっているかもしれませんが削除依頼しておきました。よろしくお願いします。

  • NFSマウント

    以前にNFSについて質問させて頂いたのですがご教授願います NFSマウントとは、Linux上のディレクトリを別のサーバー(Win・LinuxOS問わず)にマウントさせ共有させるシステムという事で、あくまでマウント元のOSがLinuxの時に使う言葉で、マウント先がLinuxの時のみに使う言葉ではないという認識でいいでしょうか? そして上記の上で基本的にはマウント元がWindowsの場合NFSマウントはできずCIFSマウントとなると思っているのですが、 hpのアレイコントローラーなどではNFS・CIFSマウントどちらもできるという話を聞いたのですが、WindowsServerを入れた状態でも別のサーバーにNFSマウントは可能なのでしょうか?(ストレージ用のRAIDのOSは忘れました;汗) 変に考えすぎなのか、こんがらがって頭の中で整理がついていない状態なので、宜しくお願いします。

  • DLTのマウント

    お世話になります。sefirosです。 今、DLTデバイスの方にバックアップを取ろうと思って いるのですが、DLTテープをマウントする事が出来ません。 /etc/fstabにも/mnt/floppyと/mnt/cdromのみが記載 されているようです。 やはりここに登録しておかないとテープのマウントは できないのでしょうか?初歩的な質問ですいません。 よろしくお願い致します。OSはREDHAT LINUX6.2Jです。

  • 認識するのにマウントしないんです!

    こんにちは。質問初心者です。 現在PMacG5 1,8G Single を使っています。 先日DVD-RAMに追加書き込みをし、読み込んだところ、何度試してもマウントされません。。。それまでは問題なく読み書きマウントできていたのに、それをきっかけに認識はするもののマウントされません。 たしかにその追加書き込み時はなんだかPCの動きが重かった(フォルダ開くの遅い)ような感じでした。 丸一日かけて探ってみたところ、 . ディスクユーティリティーで認識していますがマウントボタンを押しても読み込み音だけで、マウント(アイコン表示)されません。 . 「情報」のマウントポイント欄は「マウントされていません」。でもメニューバーから/ファイル/ログを見てみると「“RAM”のマウントに成功しました」とあります。 . 検証で修復しその後の検証では問題ないとのことです。 . システムプロファイラでもATAで認識はしています。が、マウントポイント欄は空白です。 . 毎ディスク挿入時、読み込もうと回転音(読み込み音)は唸っています。 . 中のファイルは残っているようです(使用約1G、空き約3G)。ですがマウントしないためクリックなどできなく、ファイル(ディスク)は現状ではさわれません。 . 他のメディアは問題なく読み込めます。 何とか!!何とかアクセスしてひっぱりだすようなことは出来ないのでしょうか。。。!! よろしくよろしくお願いしますっっ。。。

    • ベストアンサー
    • Mac
  • fstabを編集してもうまくマウントできない。

    Linux初心者です。 WindowsXPとVineLinux2.6をデュアルブートしています。 Linuxを入れる前からWindowsの方で作っておいたFat領域があるのでそれをLinuxからでも一般ユーザーが読み書きできるように、/etc/fstabに /dev/hda5 /mnt/win vfat defaults,umask=007,gid=500,euc,zenkaku 0 0 を書き足して、 mount -a を実行したところ、 mount: /dev/hda5 は マウント済か /mnt/win が使用中です mount: mtab によると、/dev/hda5 は / にマウントされています mount: ファイルシステムタイプ 0 はカーネルがサポートしていません という反応です。 今の段階でhda5がどういう状況にいるのかかよくわかりません。 / はhda4に作っていますのでhda5がそこにマウントされているということの意味もわかりません。 よろしくお願いします。

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

    Rea Hat Enterprise Linux4 update6を使用しています。cifsマウントでwindows2000Serverの共有フォルダの中のディレクトリをマウントしたいのですが、出来ますでしょうか? 具体的には、 //server/share/hogehoge(共有フォルダ)/補毛補毛 の"補毛補毛"ディレクトリをLinuxの/media/windowsにマウントしたいのですが、うまくいきません。hogehogeまでならマウントできます。 なんとかして共有フォルダの中のディレクトリをマウントする方法はないでしょうか。ちなみにサーバ側はいじれません。 ご回答、よろしくお願いいたします。

  • LINUX8でのUSBマウント方法を・・・

    LINUX8でのUSBマウントのコマンド mount /mnt/usb /dev/hdb1 と打ったのですが「ブロックディバイスではありません」と表示されました。どうやったらUSBをマウントできるのでしょうか?知っている方いたら教えていただけませんか?ちなみにIDEディスクです。 よろしくお願いします。