トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

ファイルシステム

ファイルシステム

[Linux]
最終更新時間:2009年02月09日 22時36分16秒

ファイルシステムとは

ファイルシステムとは、みんなが書いているファイルとHDDが記録しているデータをいい感じに仲立ちしてくれるもの。

 ユーザーはファイルをファイルとして編集、保存している。
 
 HDDは一定のサイズに分割した「データ・ブロック」の形で保存しているらしい。
 以下、頑張って調べたやつですが、ところどころパクっているのでもしかしたら怒られるかもしれないです。。。。
 ■ファイルシステムとは
   データをディスクに書き込むときに中継の役割をしてくれているやつらしい
   普通二次記憶装置(ハードディスク)などはアクセス速度が遅いので、ファイルシステムがうまいこと中継してバランスを取ってくれている。
 ■ファイルシステムの種類
   linuxのファイルシステムはext2,ext3…などがある。
 ■そもそも
   ファイルシステムはハードディスクやフロッピーディスク、CD/DVD-ROMといった二次記憶媒体にデータを保存し、そのデータを読み書きする方    法を提供するために作られたものである。つまり、情報を永続的に記録する必要がない場合や、揮発性メモリ(RAM)に一時的にデータを持ち、電気が切れてしまえば薗情報は再現できなくてもよい場合は、ファイルシステムは不要である。データの保全性が重要視される汎用機系システムの需要の拡大は、ディスクを効率的に使用し、その安全性の保障を目的とするファイルシステムの発展を促してきた。
 ■VFSとは
   VFSとはVirtual File Systemといい、iノードによる管理と、ディスク・バッファキャッシュを利用した非同期処理といった共通の仕組みを提供し、UNIX系のOSで広く普及した。
   つまり、VFSとはファイルシステムの基礎となるもので、それにさらに独自の機能を追加したものがext2,ext3らしい
 ■VFSの位置づけ
   VFSはアプリケーションと記憶装置であるメディアの間に位置する。
   VFSはアプリケーションからのファイル操作に関する要求を受け付け、それを関連するローカルファイルシステムごとのAPIに変換する。ローカルファイルシステムは、さらにドライバを経由して実際の記憶媒体を読み書きする。
 ■VFSの仕事
   VFSは、バックグラウンドでアクセス権の確認や書き込み待ち判断などの汎用的な仕事、キャッシュバッファといったメモリ操作など、ファイル処理に関する一連の操作を行う。また、ドライバやI/Oサブシステムに対しても統一的なインターフェイスを提供している。
 ■新パーティションの作成
 【流れ】
   1) 対象のディスクをアンマウントする(データをどっかに移す)
   2) fdiskとかpartedでパーティションの作成をする
   3) ファイルシステムの作成をする(要はフォーマットみたいなもの)
   4) /etc/fstabの編集
 ■fdiskを使ったときのオプション
 【fdisk使い方】
   # fdisk /dev/sda
    とか言う感じで使うみたい
   コマンドの動作
      a   ブート可能フラグをつける
      b   bsd ディスクラベルを編集する
      c   dos 互換フラグをつける
      d   領域を削除する
      l   既知の領域タイプをリスト表示する
      m   このメニューを表示する
      n   新たに領域を作成する
      o   新たに空の DOS 領域テーブルを作成する
      p   領域テーブルを表示する
      q   変更を保存せずに終了する
      s   空の Sun ディスクラベルを作成する
      t   領域のシステム ID を変更する
      u   表示/項目ユニットを変更する
      v   領域テーブルを照合する
      w   テーブルをディスクに書き込み、終了する(wを押さないかぎり、実際の変更は行なわれない) 
      x   特別な機能 (エキスパート専用)
 ■/etc/fstabについて
   LABEL=/            /                   ext3    defaults        1 1
   none               /dev/pts            devpts  gid=5,mode=620  0 0
   none               /dev/shm            tmpfs   defaults        0 0
   LABEL=/home        /home               ext3    defaults        1 2
   none               /proc               proc    defaults        0 0
   none               /sys                sysfs   defaults        0 0
   ↑こんな感じで6列に分かれている
   1列目・・・デバイス名またはボリュムラベル
   2列目・・・マウントポイント
   3列目・・・ファイルシステムタイプ
   4列目・・・マウントオプション
   5列目・・・dunpコマンドの対象とするか否か。0=しない
   6列目・・・ブート時のファイルシステムチェックfsckの順番。0=チェックしない。/は1にその他は2または0とする。
  【ボリュムラベルとは】
     デバイスにラベル(名前を)つけてあげて、それをLABELとして設定してあげると
     /etc/fstabが書きやすくなるんじゃねーの。みたいな感じのやつ
   ・ラベルの確認方法
     /sbin/e2label デバイス名
   ・ラベルの変更・設定
     /sbin/e2label デバイス名 新ラベル(任意の16文字以内)
 ■アンマウントできない!!
   たまに、装置をアンマウントしようとすると、使用中のメッセージが出てアンマウントできない、ということがあります。この場合は、
   (a)まずwhoコマンドで使用者を確認し、各ユーザのカレントディレクトリが、アンマウントしようとしているファイルシステム内にないか調べ    ます。もしそうなっていたらカレントディレクトリをcdコマンドで各自のホームに移動します。
   (b)今実行中のプログラムをもう一度調べて、アンマウントしようとしているファイルシステム内のファイルを使用していないかチェックし、使用していたら閉じます。
   (c)それでも不明の時は、/usr/sbin/lsofコマンドで,開いているファイルを調べます。このコマンドはフォントファイルなど全てを表示しますから、次のようにgrepと組み合わせて使います:
       $ /usr/sbin/lsof | grep media
   (d)それでもわからん時が(滅多にないですが)やはりあるんですねのときは。そ潔くリブートしてやり直しましょう。保証はしませんが大抵は大丈夫です。CD-ROMであればシャットダウンが終了して再起動に入る直前に取り出しボタンを押せば取り出せるはずです。