パーティションとファイルシステムの作成
- データは0と1の羅列に過ぎない
- ファイルとして管理する仕組み: ファイルシステム
-
ハードディスクを利用するには
- パーティション切る
- パーティション上にファイルシステムを作成
- ファイルシステムをマウント
ハードディスク
SATA: Serial ATA
- 主流・標準搭載
- IDEよりもデータ転送速度が速い
IDE: Integraded Drive Electronics
- SATAが出てくる前まで主流だった
-
IDEの標準化がATA: Advanced Technology/Attachment
- パラレル通信
SAS: Serial Attached SCSI
- SATAより高速・高信頼性
- 主にサーバ用途
- 高価
SCSI: Small Computer System Interface
- さまざまな周辺機器を接続する一般的な規格
-
サーバー、ワークステーション用途
- 高価
- 高速
- SCSIカード必要
USB: Universal Serial Bus
- 必要なときに外付けできて便利
デバイスファイル
-
ハードディスク
/dev/sda
,/dev/sdb
,…
-
CD/DVDドライブ
/dev/sr0
,…
-
テープドライブ
/dev/st0
,…
-
大別
-
ブロックデバイス
-
任意の場所にアクセスできる
- HDD
- パーティション
- CD
-
-
キャラクターデバイス
-
文字単位でデータ読み書き
- キーボード
- シリアルポート
-
-
-
lsblk
コマンド- ブロックデバイスを一覧
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 3.7M 1 loop /snap/gnome-system-monitor/70
loop1 7:1 0 91.1M 1 loop /snap/core/6531
loop2 7:2 0 4M 1 loop /snap/gnome-calculator/406
loop3 7:3 0 140.7M 1 loop /snap/gnome-3-26-1604/82
loop4 7:4 0 3.7M 1 loop /snap/gnome-system-monitor/57
loop5 7:5 0 13M 1 loop /snap/gnome-characters/139
loop6 7:6 0 1008K 1 loop /snap/gnome-logs/61
loop7 7:7 0 14.8M 1 loop /snap/gnome-characters/206
loop8 7:8 0 53.7M 1 loop /snap/core18/782
loop9 7:9 0 89.3M 1 loop /snap/core/6673
loop10 7:10 0 2.3M 1 loop /snap/gnome-calculator/260
loop11 7:11 0 34.8M 1 loop /snap/gtk-common-themes/1122
loop12 7:12 0 143.5M 1 loop /snap/gnome-3-28-1804/23
loop13 7:13 0 3.7M 1 loop /snap/gnome-system-monitor/77
loop14 7:14 0 1008K 1 loop /snap/gnome-logs/57
loop15 7:15 0 14.5M 1 loop /snap/gnome-logs/45
loop16 7:16 0 4M 1 loop /snap/gnome-calculator/352
loop17 7:17 0 14.8M 1 loop /snap/gnome-characters/254
loop18 7:18 0 35.3M 1 loop /snap/gtk-common-themes/1198
loop19 7:19 0 140.7M 1 loop /snap/gnome-3-26-1604/78
loop20 7:20 0 91M 1 loop /snap/core/6405
loop21 7:21 0 53.7M 1 loop /snap/core18/941
loop22 7:22 0 151M 1 loop /snap/gnome-3-28-1804/31
loop23 7:23 0 151M 1 loop /snap/gnome-3-28-1804/36
sda 8:0 0 238.5G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
└─sda2 8:2 0 238G 0 part /
パーティションの種類
-
パーティション
- 1台のディスクドライブを分割する論理的な区画
- パーティションごとに異なるファイルシステムを作成できる
BIOSベースのシステムにおける種類
基本パーティション
-
ディスクに4つまで作れる
- ディスク
/dev/sda
に対して/dev/sda1
-/dev/sda4
- ディスク
-
【補】MBRのうち64バイト(16x4)はこの情報に充てられている
- 446 + 64 + 2 = 512
- ファイルシステムを格納する
拡張パーティション
- 基本パーティションの一つを拡張パーティションにできる
- ファイルシステムではなく論理パーティションを格納する
論理パーティション
- 拡張パーティション内に作成されたパーティション
-
必ず5番から始まる
- 基本パーティションが2つとかでも
/dev/sda5
から
- 基本パーティションが2つとかでも
UEFIベースのシステムでの分類
- 拡張パーティション、論理パーティションはない
ESP: EFI System Partition
- 他のパーティションの管理等に使われる
基本パーティション
- 1つ以上
パーティションに分割するメリット
- 障害による被害をパーティション内に限定
-
空き容量が足りなくなった場合の影響を少なくする
- ログであふれた場合等
ルートファイルシステム
/
を含むファイルシステム-
複数のパーティションを用意し、
/var
,/home
などのディレクトリは別のパーティションを割り当ててマウントするのが一般的- この場合、
/var
や/home
などは独立したファイルシステムとなる
- この場合、
-
ルートファイルシステムに置く必要のあるディレクトリ
-
/bin
- システムに必要なコマンド、プログラム。一般ユーザー用
-
/sbin
- システムに必要なコマンド、プログラム。管理者用
-
/etc
- システムの設定ファイル群
-
/lib
- 共有ライブラリ
-
/dev
- デバイスファイル
-
パーティション管理コマンド
fdisk
コマンド
- パーティションの作成、削除、変更、情報表示等
- 情報表示
sudo fdisk -l /dev/sda
ディスク /dev/sda: 238.5 GiB, 256060514304 バイト, 500118192 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 0B97E339-7CBE-45E5-B86D-E145F77A3E1F
デバイス 開始位置 最後から セクタ サイズ タイプ
/dev/sda1 2048 1050623 1048576 512M EFI システム
/dev/sda2 1050624 500117503 499066880 238G Linux ファイルシステ
- 対話形式でパーティションの作成、削除、変更等を行う
sudo fdisk /dev/sda
fdisk (util-linux 2.31.1) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。
コマンド (m でヘルプ):
ヘルプ:
一般
d パーティションを削除します
F パーティションのない領域を一覧表示します
l 既知のパーティションタイプを一覧表示します
n 新しいパーティションを追加します
p パーティション情報を表示します
t パーティションタイプを変更します
v パーティション情報を検証します
i パーティションの情報を表示します
その他
m このメニューを表示します
x 特殊機能に移動します (熟練者向け機能)
スクリプト
I ディスクのレイアウトを sfdisk 互換のスクリプトから読み込みます
O ディスクのレイアウトを sfdisk 互換のスクリプトに書き出します
保存と終了
w パーティション情報をディスクに書き込んで終了します
q 変更点を保存せずに終了します
新しいラベルを作成します
g 新しい (何もない) GPT パーティションテーブルを作成します
G 新しい (何もない) SGI (IRIX) パーティションテーブルを作成します
o 新しい (何もない) DOS パーティションテーブルを作成します
s 新しい (何もない) Sun パーティションテーブルを作成します
コマンド (m でヘルプ):
- スワップ領域
sudo fdisk -l /swapfile
ディスク /swapfile: 2 GiB, 2147483648 バイト, 4194304 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
- マウントポイントでないディレクトリを指定すると怒られる
sudo fdisk -l /
fdisk: / を open できません: ディレクトリです
gdisk
コマンド
-
MBRの代わりにGPT: GUID Partition Table使用
- GUID: Global Unique IDentifier
- 対話形式
MBR | GPT | |
---|---|---|
ハードディスク制限 | 2GB | - |
基本パーティション | 4個 | 128 |
sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.3
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 500118192 sectors, 238.5 GiB
Model: LITEONIT LCS-256
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 0B97E339-7CBE-45E5-B86D-E145F77A3E1F
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 500118158
Partitions will be aligned on 2048-sector boundaries
Total free space is 2669 sectors (1.3 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 1050623 512.0 MiB EF00 EFI System Partition
2 1050624 500117503 238.0 GiB 8300
- やはり対話形式
sudo gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.3
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): ?
b back up GPT data to a file
c change a partition's name
d delete a partition
i show detailed information on a partition
l list known partition types
n add a new partition
o create a new empty GUID partition table (GPT)
p print the partition table
q quit without saving changes
r recovery and transformation options (experts only)
s sort partitions
t change a partition's type code
v verify disk
w write table to disk and exit
x extra functionality (experts only)
? print this menu
parted
-
MBR,GPT両対応
- 対話形式
- 一括実行形式
-
即座に反映
- cf.
fdisk
,gdisk
はwコマンドでパーティションテーブル反映
- cf.
ファイルシステムの作成
-
ファイルシステム
- パーティションの上にこれを作成してはじめてファイルを保存できる
- 「セクタ」「ブロック」等の概念を隠蔽し、ファイルパスとして提供する
-
構成
- ファイルの中身
-
iノード(Indexノード)
- ファイルの属性
- 管理データ
ファイルシステムの種類
-
Linux向けのやつ
-
ext2
- 標準
-
ext3
- ext2 + ジャーナリング機能サポート
-
ext4
- ext3 + 機能拡張
-
-
UNIX系OSから移植されたやつ
-
XFS
- IRIXというUNIX向けに開発
- SGI社開発
- ジャーナリング機能
-
JFS
- AIXというUNIX向けに開発
- IBM社開発
- ジャーナリング機能
-
-
そのた
-
Btrfs
- 高機能なやつ
- 開発中
-
iso9660
- CD-ROMのファイルシステム
-
msdos
- MS-DOSのやつ
-
vfat
- SDカード、古いWindowsで使われるファイルシステム
-
exFAT
- FAT後継
- フラッシュメモリ向け
-
mkfs
コマンド
MKFS(8) System Administration MKFS(8)
NAME
mkfs - build a Linux filesystem
SYNOPSIS
mkfs [options] [-t type] [fs-options] device [size]
-
パーティション上にファイルシステム作成
-
Facade的な人
-
ファイルシステムに対応したバックエンドコマンドを呼び出す
mkfs.ext3
など
-
-
ファイルシステム | mkfsコマンドの-t に渡すやつ |
プログラム |
---|---|---|
ext2 | ext2 | mkfs.ext2 |
ext3 | ext3 | mkfs.ext3 |
ext4 | ext4 | mkfs.ext4 |
XFS | xfs | mkfs.xfs |
VFAT | vfat | mkfs.vfat |
exFAT | exfat | mkfs.exfat |
Btrfs | btrfs | mkfs.btrfs |
mke2fs
コマンド
- ext2, ext3, ext4ファイルシステムを作成する場合に利用できる
mkfs.btrfs
コマンド
-
Btrfs: B-tree File System
- 耐障害性にすぐれる
- 開発中らしい
-
先進的な機能群
-
ストレージプール
- 複数の物理ボリュームを
-
マルチデバイスファイルシステム
- 複数の物理ボリュームにまたがってファイルシステムを作成できる
-
スナップショットの作成
- ある時点でのファイルシステムの状態の記録
- アンマウントせずにバックアップ
-
サブボリューム
- スナップショットの作成単位
- ディレクトリ感覚で作成できる
-
- 複数パーティションを指定してファイルシステム作れる
mkfs.btrfs /dev/sdb1 /dev/sdb2
mkswap
コマンド
-
パーティション上にスワップ領域作成
/swap
- システムに最低1つ必須
mkswap /dev/sda6