LinuC 挑戦日記 ~1.05.2_ハードディスクのレイアウトとパーティション ~
この記事は、101試験(Version 10.0)出題範囲の主題 ハードウェア、ディスク、パーティション、ファイルシステム の副題 1.05.2 ハードディスクのレイアウトとパーティション の内容を学習しまとめた内容です。
重要度はそれなりに高いので試験に挑むためにもきっちり押さえる必要があります。
重要度 : 4
概要 : Linuxシステムにおけるディスクパーティションの構成を設定できる。
▽ 重要な用語と概念
◆ファイルシステム【 File System 】
✅ディスクに保存されるデータをファイルとして管理する仕組み
✅ハードディスクやSSDを利用するまでの流れ
ディスク内にパーティションを作成
↓
パーティションにファイルシステムを作成
↓
ファイルシステムをマウント
✅ルートファイルシステム【 root File System 】
/ディレクトリを含むファイルシステム
◆パーティション【 partition 】
## パーティションの種類 ##
|
├─ 基本パーティション (プライマリパーティション)
| | ├─ BIOS ベースのシステムではディスクに最大4つ作成可能
| | └─ パーティションにはファイルシステムを格納
| |
| └─ 拡張パーティション
| | ├─ BIOS ベースのシステムで使用
| | ├─ 基本パーティションの一つを拡張パーティションにする
| | └─ パーティションには論理パーティションを格納
| |
| └─ 論理パーティション
| ├─ 拡張パーティション内に作成されたパーティション
| └─ BIOS ベースのシステムで使用
|
└─ UEFIシステムパーティション (ESP)
├─ UEFI ベースのシステムで使用 (UEFI ベースのシステムのパーティション)
├─ ESPと1つ以上の基本パーティションが使用可能 (拡張パーティションや論理パーティションは使用しない)
└─ 他のパーティションの管理等に使用
以下の記事が大変分かりやすく参考にさせていただきました。
「パーティション」とはLinuxやWindowsなどに関係なく一般的な仕組みの一つで、PCの記憶媒体、HDDやSSDその他メモリスティックなどにもうけることが出来る「しきり」のことだ。
◆ LVM【 Logical Volume Manager 】
✅より柔軟にディスクを管理する機能
✅仮想的なパーティション(Logical Volume:論理ボリューム)を動的に管理
✅特徴とメリット
├─ LVは従来のパーティションと同様に扱える
├─ LVのサイズを変更したり、他のディスクに移動可能
├─ LVは複数のディスクにまたがって作成可能
├─ ボリュームグループも後からサイズ変更可能
└─ スナップショットが容易に取得可能
以下の記事が概念図も多く大変分かりやすかったです。
◆デバイスファイル【 device file 】
✅デバイスやパーティションに対応する当該ファイルが用意される
## ディスクのデバイスファイル
/dev/ディスク形式 d ディスクの台数 パーティション番号
| | ├─ 1つ目のパーティションを1、2つ目のパーティションを2というように指定
| | └─ 論理パーティションには5以降を指定
| └─ 1台目をa、2台目をbというように指定
├─ h : IDE 形式のディスク
└─ s : SCSI/USB/SATA 形式のディスク
## 主なデバイスファイル
+--------------+---------------------------------------------------------+
|デバイスファイル | 説明 |
+--------------+---------------------------------------------------------+
| /dev/sda | 1番目のハードディスク・SSD・フラッシュメモリ (SCSI/SATA/USB接続) |
| /dev/sdb | 2番目のハードディスク・SSD・フラッシュメモリ (SCSI/SATA/USB接続) |
| /dev/sdc | 3番目のハードディスク・SSD・フラッシュメモリ (SCSI/SATA/USB接続) |
| /dev/sdd | 4番目のハードディスク・SSD・フラッシュメモリ (SCSI/SATA/USB接続) |
| /dev/sr0 | 1番目のCD/DVDドライブ |
| /dev/st0 | 1番目のテープドライブ |
+--------------+---------------------------------------------------------+
✅以前の記事でも別の観点から紹介
✅ブロックデバイス・キャラクタデバイスの違い
- ブロックデバイス
ハードディスクやSSDなど、メディアの任意の場所にアクセス可能
- キャラクタデバイス
キーボードやシリアルポートなど、文字単位でデータを読み書き
- 以前の記事でも参考にさせていただいた記事から抜粋
一応、ブロックデバイスは「(対象のデータを細切れにせずにまとめて)ブロック単位でデータ転送を行うもの」、キャラクタデバイスはその逆に「1文字単位でデータ転送を行うもの」となっていますが、実用上は単純に言うと、ディスクのようにファイルシステムを構築できる、あるいは構築済みのファイルシステムを利用できるのがブロックデバイス、その他全部がキャラクタデバイスです。
◆パーティションテーブル【 partition table 】
✅パーティションの構成情報 (管理方式)
✅記憶領域内の物理的な先頭部分に記録されている
## 2種類の方式 ##
├─ MBR【 Master Boot Record 】
| ├─ 扱えるハードディスク容量 : 2TB まで
| └─ 基本パーティション作成 : 4個まで
└─ GPT【 GUID Partition Table 】
├─ 扱えるハードディスク容量 : 8.5ZB まで
└─ 基本パーティション作成 : 128個まで
▽ 重要なコマンド
◆ lsblk コマンド
システムのブロックデバイス一覧を確認する
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 59.6G 0 disk
`-sda1 8:1 0 59.6G 0 part /etc/hosts
sr0 11:0 1 461.8M 0 rom
sr1 11:1 1 270K 0 rom
sr2 11:2 1 821.7M 0 rom
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
mqxvda1 202:1 0 8G 0 part /
この副題でポイントとなるコマンドは、パーティション管理のためのコマンド 3 つで、代表的なコマンドは fdisk です。
◆ fdisk コマンド
✅パーティションの作成、削除、変更、情報表示などを行う
✅ -l でそのパーティションテーブルの状態を表示
$ sudo fdisk [-l] デバイス名
## 主なサブコマンド
+----------+-------------------------------------------+
|サブコマンド| 説明 |
+----------+-------------------------------------------+
| l | パーティションタイプを一覧表示する |
| n | パーティションを作成する |
| d | パーティションを削除する |
| p | パーティションテーブルを表示する |
| t | パーティションタイプを変更する |
| a | ブートフラグのオン/オフを切り替える |
| w | パーティションテーブルの変更を保存して終了する |
| q | パーティションテーブルの変更を保存しないで終了する |
| m | ヘルプメニューを常時する |
+----------+-------------------------------------------+
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 8 GiB, 8589934592 bytes, 16777216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 55BAE540-16DE-4A92-90DF-3330D51DF457
Device Start End Sectors Size Type
/dev/sda1 4096 16777182 16773087 8G Linux filesystem
/dev/sda128 2048 4095 2048 1M BIOS boot
Partition table entries are not in disk order.
$ sudo fdisk /dev/sda
[sudo] ログインユーザー のパスワード:
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
コマンド (m でヘルプ): m
コマンドの動作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
コマンド (m でヘルプ): l
0 空 24 NEC DOS 81 Minix / 古い Li bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux スワップ c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隠し C: ド c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 拡張領域 c7 Syrinx
5 拡張領域 41 PPC PReP Boot 86 NTFS ボリューム da 非 FS データ
6 FAT16 42 SFS 87 NTFS ボリューム db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux プレーン de Dell ユーティリ
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX ブート可能 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 ブートマネ 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad ハ eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 拡張領域 (L 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隠し FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 診断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隠し FAT16 <32M 61 SpeedStor ab Darwin ブート f2 DOS セカンダリ
16 隠し FAT16 63 GNU HURD または af HFS / HFS+ fb VMware VMFS
17 隠し HPFS/NTFS 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI スワップ fd Linux raid 自動
1b 隠し W95 FAT32 70 DiskSecure Mult bb 隠し Boot Wizar fe LANstep
1c 隠し W95 FAT32 75 PC/IX be Solaris ブート ff BBT
1e 隠し W95 FAT16 80 古い Minix
コマンド (m でヘルプ): q
◆ gdisk コマンド
✅ GPT に対応したパーティション操作を行うことが可能
※ 最近のディストリビューションは fdisk コマンドも GPT に対応
✅サブコマンドは fdisk と同じ
$ sudo gdisk [-l] デバイス名
$ sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk sda: 16777216 sectors, 8.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 55BAE540-16DE-4A92-90DF-3330D51DF457
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 16777182
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 4096 16777182 8.0 GiB 8300 Linux
128 2048 4095 1024.0 KiB EF02 BIOS Boot Partition
◆ parted コマンド
✅ MBRにもGPTにも対応したパーティション操作コマンド
✅ fdisk / gdisk コマンドのように w サブコマンドが不要
└─> 即座にパーティションテーブルに反映
$ sudo parted デバイス名 [-s サブコマンド]
## 主なサブコマンド
+---------------------+----------------------------------+
|サブコマンド | 説明 |
+---------------------+----------------------------------+
| check 番号 | ファイルシステムの簡単なチェックを行う |
| mklabel [gpt|msdos] | 新しいパーティションテーブルを作成する |
| mkpart 種類 開始 終了 | 指定した種類のパーティションを作成する |
| rm 番号 | 指定したパーティションを削除する |
| print, p | パーティションテーブルを表示する |
| quit, q | 終了する |
+---------------------+----------------------------------+
$ sudo parted /dev/sda
GNU Parted 3.1
Using /dev/xvda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
128 1049kB 2097kB 1049kB BIOS Boot Partition bios_grub
1 2097kB 8590MB 8588MB xfs Linux
(parted) q
$ sudo parted /dev/sda -s p
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
128 1049kB 2097kB 1049kB BIOS Boot Partition bios_grub
1 2097kB 8590MB 8588MB xfs Linux
もしこの記事が何かの参考になったもしくは面白かったという方は、応援していただけると大変嬉しいです😊 これからもよろしくお願いします。