LinuC レベル1(LPIC-1対応)対策
パーティション
この学習環境の Debian には fdisk も parted も gdisk も入っていません。ディスクを切り直す道具は実機を壊しうるので、サンドボックスには積んでいないのです。そこで、書式は覚える、構成は lsblk と blkid で読む、という二本立てで進めます。
頻出は、基本パーティションの最大数、拡張と論理の関係、MBR が扱えるディスクの上限、GPT との組み合わせ、fdisk の対話コマンドと parted のサブコマンドの書式です。
MBR は4つまでしか作れません
| 観点 | MBR | GPT |
|---|---|---|
| 基本パーティション数 | 最大4つ | 既定で最大128個 |
| 5つ以上作る方法 | 1つを拡張パーティションにし、その中に論理パーティションを作る | そのまま追加できる |
| 扱えるディスク上限 | およそ 2TB | 2TB を大きく超えられる |
| テーブルの控え | 先頭のみ | 先頭と末尾の両方に持つ |
| 組み合わせるファームウェア | BIOS | UEFI |
MBR はディスク先頭 512 バイトにブートコードとテーブルを詰め込んだ古い方式です。テーブルの領域が 64 バイトしかなく、1エントリ 16 バイトなので記録できるのは4つまで。これが「基本パーティションは4つまで」の正体です。5つ以上ほしいときは、1つを拡張パーティション (extended) にして、その内側に論理パーティション (logical) をぶら下げます。
Linux の命名では、基本と拡張が /dev/sda1 から /dev/sda4 までを占め、論理パーティションは必ず /dev/sda5 から始まります。基本が2つしか無くても sda5 からです。ここは狙われます。
GPT は UEFI とセットの新しい方式で、テーブルを二重に持つため片方が壊れても復旧できます。古い道具が誤って上書きしないよう、先頭に保護 MBR を置いています。
fdisk は w を打つまで書き込みません
fdisk は起動すると対話モードに入り、1文字のコマンドを受け取ります。
| コマンド | 意味 |
|---|---|
| p | 現在のパーティションテーブルを表示する |
| n | 新しいパーティションを作る |
| d | パーティションを削除する |
| t | パーティションタイプ (システム ID) を変更する |
| w | 変更をディスクに書き込んで終了する |
| q | 変更を書き込まずに終了する |
w が write で確定、q が quit で破棄です。中で何をしても w を打つまでディスクには書かれないので、「作業を取り消して抜けたいときのコマンドはどれか」という形で q が問われます。
parted は非対話でも使えます
これが fdisk との大きな違いです。ただしパーティション操作は既存のデータを失わせます。必ず先に lsblk で対象を表示し、切ってよいディスクかを目で確かめてから実行してください。
ターミナル
lsblk
parted /dev/sdb print
parted /dev/sdb mklabel gpt
parted /dev/sdb mkpart primary ext4 1MiB 10GiBmklabel はテーブルの種類を決めるもので gpt か msdos を指定します。msdos が MBR のことだと知らないと選べない問題が出ます。mkpart が領域を切る操作、print が一覧です。gdisk は fdisk の GPT 版で、対話コマンドはほぼ同じです。
t で指定する 16 進のシステム ID は、代表的なものだけ覚えます。
| ID | 用途 |
|---|---|
| 83 | Linux のファイルシステム用 |
| 82 | Linux swap |
| 8e | Linux LVM |
| ef | EFI システムパーティション (ESP) |
このタイプは「何のためのものか」という札に過ぎず、フォーマットとは別物です。83 を付けただけではファイルシステムはできません。
swap と、実機で読める道具
swap 領域は、タイプ 82 を付けたあと署名を書いて有効化します。mkswap も対象の中身を消すので、lsblk で確かめてから打ちます。
ターミナル
mkswap /dev/sdb2
swapon /dev/sdb2
swapon --show
swapoff /dev/sdb2mkswap が署名を書く操作、swapon が有効化、swapoff が無効化です。現在有効な swap は swapon --show か /proc/swaps で分かります。再起動後も有効にするには /etc/fstab に行を書きます。82 を付けただけでは swap になりません。
読む道具は実機にあります。lsblk はブロックデバイスを木の形で見せ、-f で種類と UUID とマウント先まで出ます。blkid は UUID と TYPE と LABEL を返し、fstab を書くときに必ず使います。/proc/partitions はカーネルが認識している生の一覧です。
復習ミニクイズ
MBR 形式のディスクで、5つ目以降のパーティションを作りたいときの説明として正しいものはどれですか。