File System

— BIOS(Basic Input/Output System) —————————————–

  • 電源起動時、記憶装置(HDD)等の機器に関して最低限の認識を行う
  • 基本的なハードウェアの制御。起動デバイスの順序を設定
  • 起動する順にデバイスの先頭セクタにあるMBRを読み込み、ブートローダをロードし制御を移す。

MBR(Master Boot Record)

  • 基本パーティション
    • 最大で4個。(1つを拡張パティションにすることができる)。ファイルシステムを作成することができる。
    • デバイスファイルは sda1から4
      • /dev/sda1 1番目のパーティション
      • /dev/sda2 2番目のパーティション
      • /dev/sda3 3番目のパーティション
      • /dev/sda4 4番目のパーティション
  • 拡張パーティション
    • 論理パーティションを作成するためのパーティション。基本パーティションの1を割り当てる。
    • ファイルシステムを作成することはできない。
  • 論理パーティション
    • 拡張パーティション内に作成。ファイルシステムを作成することができる。
    • 基本パーティションのみでは足りない場合(パーティションが5つ以上必要な場合)に作成。
    • デバイスファイルはsda5から
      • /dev/sda5 1番目のパーティション
      • /dev/sda6 2番目のパーティション
        • …….
        • ……
  • パーティションの数
    • 最大15。 基本3つと拡張パーティション内の論理パーティション12
  • 管理容量 2TB

— UEFI(Unified Extensible Firmware Interface) ———————

  • 基本的なハードウェアの制御を行う。起動時間と再開時間が短縮される。
  • CPUに依存しないアーキテクチャとドライバを提供する。セキュリティ機能強化。
  • 3TB以上のHDDからの起動をサポートする
  • 最初にアクセスされる領域であるESPは「/boot/efi」にマウントされる

GPT(GUID Partition Table)

  • 基本パーティション
    • 最大で128個。ファイルシステムを作成することができる。
    • デバイスファイルはsda1から128
      • /dev/sda1 1番目のパーティション
      • /dev/sda2 2番目のパーティション
      • dev/sda3 3番目のパーティション
        • …………….
        • ……………..
  • 拡張パーティション => 考え方が無い
  • 論理パーティション => 考え方が無い
  • 管理容量  =>  8ZB
  • ESP(EFIシステムパーティション)
    • ブートローダや起動に必要なドライバなどが置かれているUEFIを使ったシステムの領域

— LVM(Logical Volume Manager)——————————-

  • 論理ボリュームマネージャ
  • 複数デバイスを論理的に1つのデバイスとして扱うことで、複数のデバイスにまたがってファイルシステムを作成する。
  • 各論理ボリューム(LVM を利用しない場合のパーティションに相当)のサイズを後から変更したり、後から新たな物理ボリュームを追加または削除が可能
    • 物理ボリューム (PV:Physical Volume)
      • 物理的なハードディスクやパーティション。
      • pvcreateコマンドを使用して作成。
    • ボリュームグループ (VG:Volume Group)
      • 物理ボリュームを集めて作る、仮想的な領域(仮想的なハードディスクのようなもの)
      • vgcreateコマンドを使用して作成。
    • 論理ボリューム (LV:Logical Volume)
      • ボリュームグループの一部(または全部)を使って作る仮想的なパーティション。
      • 従来のパーティションと同じようにこの論理ボリューム上にファイルシステムを作り利用可能
      • lvcreateコマンドを使用して作成。

— Btrfs(B-tree File System)————————————-

  • 比較的新しく高機能なLinuxのファイルシステム。
    • マルチデバイスへの対応: 複数のデバイス(マルチデバイス)を直接扱える。
    • /dev/sda1」と「/dev/sdb1」にBtrfsファイルシステムを作成する
      • -> # mkfs.btrfs /dev/sda1 /dev/sdb1
    • サブボリューム
      • ディレクトリの一部を「サブボリューム」として個別のファイルシステムのように扱える。
      • サブボリュームを使うことで、ある時点のファイルシステムの状態を ”スナップショット”(バックアップ)として取得する
      • 「/home」のスナップショットを「/tmp/home_bak」という名前で取得する
        • -> # btrfs subvolume snapshot /home /tmp/home_bak
    • 圧縮
      • 自動でデータを圧縮できるようになっています。マウント時に自動圧縮を有効にするオプションを指定。

— exFAT(Extended FAT: イーエックスファット)—————

  • USBメモリのようなフラッシュドライブ向けのファイルシステム。
  • マイクロソフトが開発したプロプライエタリなファイルシステム
  • LinuxでのexFATの利用にはFUSE(Filesystem in Userspace)が必要
  • フラッシュドライブ向けのファイルシステム
  • 4GiB以上の大容量のファイルを扱える

———————————————————————

  • パーティションはただの領域であり、それだけではデータの読み書きすることができない。
  • ファイルシステムで「フォーマット」することで、ファイルを単位としたデータの管理が行えるようになる。
  • この操作には mkfs などのファイルシステムを作成するコマンドを使用。
  • ファイルの読み書きを行うためには、ファイルシステムを現在のルートファイルシステム上のどこかにマウントし、ルート (/) からのパスを使ってアクセス可能にしなければならない。この操作には mount コマンドを使用します。
  • 新しいハードディスクを Linux システム上で利用する手順
    1. パーティションを切る(基本パーティション、拡張パーティション、論理パーティションを作成)
    2. 各パーティションをフォーマットし、ファイルシステムを作る
    3. 作ったファイルシステムをマウントする