備忘録 サーバー

fstabの設定

2012年11月4日

ファイルストレージという専用HDDにデータを入れているのですが、そのHDDが正常にマウントできずにメインHDDにデータを書き込んでいたようです。

今日の朝、HPを見ようとしても開くことができない。またなんかおかしくなったのか!?という原因がこれでした。

つまり、メインHDDの容量が100%になったのでシステムが正常に動かなくなったよーというやつです……

で、調べてみたところファイルストレージのHDDがマウントされていなかったのです……気づかなかった

ということでfstabで再起動してもファイルストレージがマウントされるように設定を行おうと思います。
まず、該当とするフォルダの作成を行います。今回はstrageフォルダを作成します。

[shell] mkdir /strage [/shell]
/etc/fstab を開いて設定を変更するだけ……と思っていたのですが、ファイル内容が私が思ってたのと違う構造になってました。

[shell] ~省略~ LABEL=/boot1 /boot ext4 defaults 1 2 [/shell]
あれ、なんでLABELがついてるんだ?

と思い、調べてみる。

http://www.itmedia.co.jp/help/tips/linux/l0529.html

どうやらfstabの仕様が変わってたようです。

ふむ、まず各デバイスにe2labelラベルを付与し、それをfstabで記述するんですね。

[shell] e2label /dev/sdb1 /strage [/shell]
で、後はfstabに記述っと

[shell] ~省略~ LABEL=/strage /storage ext4 defaults 1 2 [/shell]
defaultsの後ろの数字は最初は1 0にしてから再起動を行い、再起動後きちんとマウントされているか確認したほうがいいです。
ラベルのスペルミス等でマウントできない場合下手するとlinux自体起動不能になります。
fstabによるサーバーが正常しない為の奮闘

再起動後はdfコマンド等で確認すればいいです。

[shell] df ファイルシステム 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sdb1 1922859912 78205256 1746978980 5% /strage [/shell]



fstab

OS起動時にマウントを行うデバイスとマウントポイント場所を指定するファイルです。

書式方法は以下を例とする。

デバイス マウントポイント ファイルシステム マウントオプション dumpオプション fsckオプション
LABEL=/strage /storage ext4 defaults 1 2

今回はデバイスをe2labelで指定したLabelを作成

マウントポイントはmkdirにて先に作成する必要性があります。

ファイルシステムはHDDのフォーマットの種類を記載

マウントポイントは色々記述できますが、今回はdefault(rw, suid, dev, exec, auto, nouser, asyncを有効)にします。
マウントオプションについてはこちら
複数指定する場合はカンマ区切りで指定します。

dumpオプションはdumpコマンド(バックアップ)を使用する際、どこまでをバックアップの対象にするかどうかの設定です。

0:dumpコマンドの際、対象に含まない
1:dumpコマンドの際、対象に含む

fsckオプションはfsckコマンド(ファイルチェック)を使用するかどうかとその順序の設定です。

0:fsckを行わない

1:fsckを行う(/ のみ)

2~:fsck必要(/ 以外で指定する場合)
同じHDDで同一数値を指定するとfsckが遅くなる場合があるので数字を変えたほうがいいです。
わからない場合は2が無難だと思います。






マウントオプションの指定


色々と種類があるので別項目として掲載します。

  • async
    • すべてのデータ書き込み、読み込みを非同期処理で行います。
      • 同期処理で行いたい場合はsyncを使用します。
  • atime
    • ファイルシステムにアクセスする度にinodeのアクセス日付を更新します。
      • inodeとは
      • 逆に更新したくない場合はnoatimeを指定します。
  • auto
    • mountコマンドの-aオプション実行時、マウント対象にします。
      • -aオプションとはfstabに記述されているファイルシステムでマウントするということです。
      • 逆にマウントしたくない場合はnoautoを使用します。
  • codepage
    • 文字コードを指定します。
      • Shift_JISならcodepage=932を指定します(Windowsでフォーマットされた場合とかに使用するみたいです。)
      • UTF-8ならcodepage=65001です。
      • 他の文字コードはこちらを参照してください。
  • defaults
    • rw, suid, dev, exec, auto, nouser, asyncを有効にします。
  • dev
    • ファイルシステムのデバイスを利用できるようにします。
      • ファイルシステムのデバイスを利用したくない場合はnodevを使用します。
  • exec
    • バイナリの実行を許可します。
      • 許可したくない場合はnoexecを使用します。
  • gid
    • マウントする際、マウントポイント以下のファイルやフォルダのグループを指定されたIDに変更します。
      • IDは数字で入力します。
  • iocharset
    • マウントする際、システムの文字コードを指定します。
      • utf-8とか、euc-jpとかを指定
      • 例)iocharset=utf-8
  • noatime
    • ファイルシステムにアクセスしてもinodeのアクセス日付を更新しないようにします。
      • inodeとは
      • 逆に更新したい場合はatimeを指定します。
  • noauto
    • mountコマンドの-aオプション実行時、マウント対象にしません。
      • -aオプションとはfstabに記述されているファイルシステムでマウントするということです。
      • 逆にマウントしたい場合はautoを使用します。
  • nodev
    • ファイルシステムのデバイスを利用できないようにします。
      • ファイルシステムのデバイスを利用したい場合はdevを使用します。
  • noexec
    • バイナリの実行を許可しません。
      • 許可したい場合はexecを使用します。
  • nosuid
    • SUID・SGIDを無効にします。
      • SUID・SGIDとは
      • SUID・SUIDを有効にしたい場合はsuidを使用します。
  • nouser
    • root(管理者権限)のみマウント可能にします。
  • ro
    • 読み込み専用でマウントします。
  • rw
    • 読み込み・書き込みが行える形でマウントします。
  • suid
    • SUID・SGIDを有効にします。
      • SUID・SGIDとは
      • SUID・SUIDを無効にしたい場合はnosuidを使用します。
  • sync
    • すべてのデータ書き込み、読み込みを同期処理で行います。
      • 非同期処理で行いたい場合はasyncを使用します。
  • user
    • 一般ユーザーでもマウント可能にします。
  • uid
    • マウントするユーザーIDを指定します。

-備忘録, サーバー
-, ,