1
1

More than 3 years have passed since last update.

デバイスとLinuxファイルシステム

Last updated at Posted at 2020-08-26

パーティションとファイルシステムの作成

 ディスクに保存されるデータをファイルとして管理して利用できるようにする仕組みをファイルシステムという.ハードディスクまたはSSDを利用するには、ディスク内にパーティションを作成してその内部にファイルシステムを作成し、それをマウントするという流れになります.

ハードディスク

 接続するための規格まとめ

  • SATA…Serial Advanced Technology Attachmentの略.コンピュータとハードディスク等の接続に関する規格のひとつ.
  • SAS…SATAと比べて高速、高信頼性.
  • SCSI…周辺機器との接続において一般的な規格.SCSIデバイスを使うにはSCSIホストアダプタ(SCSIカード)が必要.

 デバイス-PC間でやりとりするインターフェースとしてデバイスファイルがあります.Linuxが扱うデバイスは、ブロックデバイス(ハードディスクやSSDなどメディア上の任意の場所にアクセスできるもの)とキャラクタデバイス(キーボードやシリアルポートなど文字単位でデータを読み書きするもの)の2種類あります.

パーティションの種類

 1つのディスクドライブを論理的に分割して異なるファイルシステムを利用できます.以下はBIOSベースのパーティションの種類です.

  • 基本パーティション…最大4つ(/dev/sda1~sda4)のパーティションを作成できます.
  • 拡張パーティション…本パーティションにはファイルシステムではなく論理パーティションが格納されます.
  • 論理パーティション…拡張パーティション内に作成されたパーティションのことで、基本パーティションの数に依らず/dev/sda5から作成されます.

パーティション管理コマンド

 構文:fdisk -l {デバイス名(絶対パス)}

ファイルシステムの作成

 Linuxのファイルシステムは「ファイルの中身(データ)」と「ファイルの属性や管理情報」は別々で保存されます.後者を格納しているのがiノード(Indexノード)という管理領域です.これはファイルシステム作成時に確保されて、ファイルやディレクトリが作成されるごとに1つずつ割り当てられます.
 
 ファイルシステムの種類は、ext2(Linux標準)、ext3(ext2にジャーナリング機能付き)、Btrfs(高機能)が挙げられる.Btrfsはmkfs.btrfsコマンドで実行できます.

mkfs -t ファイルシステムの種類 {デバイス名}を使ってパーティション上にファイルシステムを作成できます.

 mkswap {デバイス名}でパーティション上にスワップ領域を作成できます.

ファイルシステムの管理

ディスクの利用状況の確認

 ファイルシステムに書き込めなくなる原因は、
・空き容量の不足
・iノードの枯渇
 が挙げられる.空き容量の確認はdfコマンド、iノードの使用状況はdf -iで行う.容量が大きいほど割り当てられるiノードの値が大きいです.
 ファイルやディレクトリが占める容量を確認するには*du -aコマンドを使います.

ファイルシステムのチェック

 fsck -aコマンドでディスクのチェックを行い、自動的に修復を試みます.ext2、ext3、ext4にはe2fsckコマンドが利用できます.

ファイルシステムの管理

 tune2fs -i(sec) {デバイス名}を用いてチェックする間隔を指定できます.

ファイルシステムのマウントとアンマウント

 ファイルシステムの情報は、/etc/fstabファイルに記述されています.デバイスファイル欄のUUIDはデバイスを識別するためのIDで、blkidコマンドで各デバイスとIDの対応を確認できます.
 コマンドとしてはmount [オプション]umount[オプション]を用いて行います.

ファイルの配置と検索

FHS

 File Hierarchy Standardの略でファイルシステム階層標準のことです.

  • /bin …一般ユーザーでも使用可能なコマンド(cat,dd,mount,shなど)が配置されています.
  • /sbin …rootユーザーのみが実行できるシステム管理に必須のコマンド(fdisc,fsck,rebootなど)が配置されています.
  • /etc …システムやアプリケーションの設定情報、スクリプトファイルなどが配置されています.
  • /dev …ハードディスクやDVD-ROMなどのデバイスファイルが配置されています.
  • /lib …共有ライブラリやカーネルモジュールが配置されています.
  • /media …リムーバブルメディアのマウントポイントが配置されています.
  • /opt …プログラムがインストールされるディレクトリです.
  • /proc …カーネル内部にアクセスするための仮想的なファイルシステムです.
  • /boot …起動に必要な設定やカーネルイメージ(Linuxカーネルを圧縮したファイル)が配置されています.
  • /var …配下に/cache,/log,run(システムの状態を示すファイル)などがあります.
  • /usr …コマンドやユーティリティが配置されています.

ファイルの検索

 構文:find {検索ディレクトリ}{検索式}
  検索式一覧:-name {ファイル名}…ファイル名で検索します.
        -atime{日時}…最終アクセス時刻で検索します.
 構文:which {コマンド名}
    コマンドが格納されている絶対パスを表示します.
 構文:whereis {オプション}
    バイナリファイル、ソースコード、マニュアルファイルが置かれている場所を検索します.
 構文:type {コマンド名}
  指定したコマンドが通常の実行ファイルなのか、シェルの組み込みコマンドなのかエイリアスなのか返します.
  結果一覧:ハッシュされています⇒外部コマンド
       シェル組み込み関数です⇒組み込みコマンド
       エイリアスです⇒エイリアス
       シェルの予約語です⇒予約語

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1