LoginSignup
28
26

More than 3 years have passed since last update.

Linux基礎(パーティションとファイルシステムの作成)

Last updated at Posted at 2019-09-24

Linuxでのハードディスク利用

Linuxでハードディスクを利用するためには以下の5ステップを踏む必要がある。

  1. 電源OFFの状態で、ハードディスクをシステムに物理的に接続
  2. 追加したハードディスクのデバイスファイルが作成されていることを確認
  3. ハードディスクにパーティションを作成|fdiskコマンド
  4. 各パーティションについてext3ファイルシステムを作成|mke2fsコマンド(現在はext4が主流)
  5. ファイルシステムのマウント|mountコマンド

ハードディスクの接続

ハードディスクを増設するためには、先ずシステムの電源を停止した状態で物理的に接続する。次に電源をONにすると、起動中に自動的にデバイスを検出する。

HDDの接続規格

HDDの接続規格 説明
IDE(Integrated Drive Electronics) 1989年により規格化。IDEインターフェイスは、プライマリとセカンダリの2つのI/Fがある。各I/Fごとに、マスターとスレーブの2台を接続できるレガシーな規格
SCSI(Small Computer System Interface) ANSIにより規格化。IDE規格より、最大伝送速度が速く、ケーブル1本あたりの最大接続デバイス数も多いが、IDEに比べ高価である。IDEと同様、HDD以外にCD-ROMドライブ等が接続可能
SATA(Serial Advanced Technology Attachment IDEの後継規格であり、SCSIに変わって主流となっている規格。
SAS(Serial Attachment SCSI Ultra-320 SCSIの後継にあたる規格。SATAはコンシューマー向けに対して、SASはサーバー用HDDの接続によく使用される。
USB(Universal Serial Bus) 一般的には、周辺機器の接続によく使用される規格であるが、USBポートを持つ外付けのHDDを接続する際に使用される規格。

スクリーンショット 2019-09-25 0.08.56.png

デバイスファイルの確認

起動中にハードディスクを新しく検出すると、検出されたデバイスを操作するためのデバイスファイルが/devディレクトリに自動的に追加される。デバイスファイルは、HDD等の周辺装置を制御する際に使用される特別なファイルのこと。以下ファイルがLinuxでは、デフォルトでインストールされている。

デバイスファイル 説明
/dev/hda プライマリのマスターに接続したHDD
/dev/hdb プライマリのスレーブに接続したHDD
/dev/hdc セカンダリのマスターに接続したHDD
/dev/hdd セカンダリのスレーブに接続したHDD
/dev/sda 1番目のSCSI/SATA/USBに接続したHDD
/dev/sdb 2番目のSCSI/SATA/USBに接続したHDD
/dev/sdc 3番目のSCSI/SATA/USBに接続したHDD
/dev/sdd 4番目のSCSI/SATA/USBに接続したHDD
/dev/sr0 1番目のCD/DVDドライブ
/dev/st0 1番目のテープドライブ

パーティション作成

パーティションについての理解

パーティションとは、ハードディスクを論理的に分割した各領域のこと。ハードディスクがシステムに認識されたら、パーティションに分割する必要がある。パーティションには以下の3つがある。

パーティションの種類 説明
基本パーティション 基本パーティションは、1台のディスクに必ず1つ以上存在する必要がある。
1つの物理ディスクには最大で4つの基本パーティションに分割することができる。基本パーティションのデバイスファイル名は、SCSIディスク(/dev/sda)の場合は、/dev/sda1、/dev/sda2、/dev/sda3、/dev/sda4のようになる。
拡張パーティション 基本パーティションのうち、1つだけを拡張パーティションとして使用することができる。拡張パーティションには、直接ファイルシステムを作成することができない。代わりに、拡張パーティションの中には、論理パーティションが格納される。
論理パーティション 論理パーティションは、拡張パーティション内に作成されたパーティションのこと。作成できる論理パーティションの数は、ハードディスクのタイプにより異なるが、論理パーティションのデバイスファイル名はSCSIの場合、/dev/sda5以降となる。

ハードディスクをパーティションに分割した場合、各パーティションを操作するためのデバイスファイルも自動的に作成される。パーティションのデバイスファイル名はハードディスクの何番目のパーティションなのかを示す整数値がつけられることから、SCSIディスクやIDEディスクの場合は以下の名称となる。
IDEディスク|/dev/hda1、/dev/hda2、/dev/hda3、/dev/hda4
SCSIディスク|/dev/sda1、/dev/sda2、/dev/sda3、/dev/sda4

パーティション作成コマンド

現在のパーティションテーブルの状態を表示するためには「fdisk -l」コマンドを使用する。

$ fdisk -l /dev/sda
キーワード 説明
Device パーティションのデバイスファイル名
Boot ブートフラグ
ブートフラグはブートパーティションのカーネル(vmlinuz)やブートローダ―(GRUB)を格納するパーティションに * がつく
Start パーティションの開始シリンダ番号
End パーティションの終了シリンダ番号
Blocks パーティションの総ブロック数
Id パーティション内のファイルシステムのタイプ(数値)
System パーティション内のファイルシステム

パーティションの作成、削除、変更、情報表示のためには「fdisk」コマンドを使用する。fdiskコマンドの実行時に以下のサブコマンドを入力してパーティションの作成、変更、削除等を行う。

サブコマンド 説明
m 使用可能なサブコマンドの一覧表示
p 現在のパーティションテーブルの表示
n 新しいパーティションテーブルの作成
d 既存のパーティションテーブルの削除
l 設定可能なパーティションタイプの一覧表示
a ブートフラグをオン、またはオフにする
t パーティションタイプの設定、変更
w パーティションテーブルの変更を保存して終了
q パーティションテーブルの変更を保存せず終了

ファイルシステム作成

ファイルシステムについての理解

ファイルシステムとは、ディレクトリの階層構造において、データをファイルとして管理する方式のこと。パーティションを作成するだけでは、ファイルを保存することができず、ファイルシステムを作成する必要がある。

ファイルシステムが用意されていない場合、ディスク上のデータの読み出しに例えば「1543セクタのデータを開く」という指示が必要になる。ファイルシステムが用意されていれば、例えば「/tmp/data.txtのファイルを開く」のように分かりやすくデータを取り扱いすることができる。

ファイルシステム作成コマンド理解

ファイルシステムにより、ファイル名を指定してデータにアクセスできるようになり、データの指定や検索などが容易になる。例えば、WindowsのファイルシステムにはNTFSなどがあるが、Linuxのファイルシステムにはext2、ext3、ext4等があり、mkfsコマンド、mke2fsコマンドを使用して作成する。

  • mke2fs [-t ファイスシステムタイプ] [オプション] デバイス名
オプション 説明
-t ファイルシステム ファイルシステムの種類の指定(ext2、ext3、ext4)
-j ext3のファイルシステムの作成
-c 実行前の不良ブロックの検査
# ext4ファイルシステムを、/dev/sda5に作成
$ mke2fs -t ext4 -j /dev/sda5

パーティション状にスワップ領域を作成するためには「mkswap」コマンドを使用する。
システム最低1つのスワップ領域は必要であり、一般的にはスワップ領域に独立したパーティションを割り当てる。

  • mkswap デバイス名
# スワップ領域を、/dev/sda6に作成
$ mkswap /dev/sda6
28
26
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
28
26