Linuxを学び、楽しみたい人々のために

パーティショニング

ページ作成日 2016/5/4

パーティション設計

Linuxのパーティション作成の基本

まず基本のパーティショニングは、ディスク領域を/(ルート)とスワップ用の2つに分けます。
これでインストールを進めても良いですが、利便性を考えると、もう幾つかに分けた方が良いです。

/homeを別パーティションにする

まずは/homeを別パーティションにしましょう。
そうすると、Slackwareを再インストールしたとしても、ユーザのデータはフォーマットせずに残すことが出来ます。

/varを別パーティションにする

サーバ用途では、/varを分けるといいでしょう。
/varを分ける事で、ログファイルがディスク領域を消費するのをパーティションで設定した領域までに食い止めることができます。

/etcを別パーティションにする

/etcを別パーティションを分けておくと、Slacwareを再インストールする際に、設定ファイルをフォーマットして消さずに済み、再利用する事ができます。

gdisk

rootでログインした後、gdiskと入力して、ディスクのパーティショニングを行います。
以下では、何も入っていない1番目のディスク(/dev/sda)にインストールするという前提で進めます。

UEFI用のパーティショニングでは、gdiskを使います。 gdiskとは、GPT fdiskの略です。

GTPは、従来のMBRに代わる、ハードディスク上のパーティションテーブルの配置に関する標準規格です。

従来、MBRパーティションでは、32bitでセクタ情報を管理するため、1セクタ512Byteで定義すると、512Byte×2^32=2TiBまでしか管理できませんでした。
セクタ情報の管理を64bit化することで、8ZiBまで拡張できるようにしたのが、GUID Partion tableです。
GTPにすると、以下の利点があります。

  1. 容量が2TiB以上のディスクを取り扱える。
  2. パーティションが128個作成できる。MBRの時のプライマリパーティション4個の制限から解放される。プライマリパーティション、拡張パーティションという枠組みから解放される。
  3. プライマリGPTの内容に不整合が生じた時のために、最終論理セクターにバックアップGPTが作成される。チェックサムエラーが生じた際は、バックアップからGPTをコピーしてくれる。

gdisk /dev/sdaと入力すると、以下のような画面になります。


root@slackware:/# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.0

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.

Command (? for help): _

次にhelpを表示させてみましょう。?を入力します。


b           backup 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 talbe
q           quit without saving changes
r           recovery and transformation option (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)
?           pritn this menu

Command (? for help): _

新しいGPTを作成する

まず最初にGUIDのパーティションテーブルを作成します。
この領域に、これから作成するパーティション情報が保存されます。
oを入力して、Enterキーを押します。


Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): Y

作成されたGPTを確認しましょう。
pを入力して、Enterキーを押します。


Command (? for help): p
Disk /dev/sda: 16777216 sectors, 100.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): F0786825-C580-4F07-9803-503D0D15F858
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 209715166
Partitions will be aligned on 2048-sector boundaries
Total free space is 209715133 sectors (100.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name

Command (? for help): _

パーティション作成

ここでは、例として100GBのディスクについて、以下のようなパーティショニング設計に基づいてパーティションを作成します。

  • EFIシステムパーティション … 100MB
  • Swap領域 … 16GB
  • /領域 … 30GB
  • /home領域 … 53.9GB

EFIシステムパーティション

まず最初にEFIシステムパーティションを100MBで作成します。


Command (? for help): n <- nを入力して、Enterキーを押す
Partition number (1-128, default 1): <- 何も入力せず、Enterキーを押す
First sector (34-209715166, default = 2048) or {+-}size{KMGTP}: <- 何も入力せず、Enterキーを押す
Last sector (2048-209715166, default = 209715166) or {+-}size{KMGTP}: +100M <- 100MBをEFIシステム領域として確保
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): EF00 <- EF00を入力して、Enterキーを押す
Change type of partition to 'EFI System'

Command (? for help): _

スワップ用パーティションの作成

まず最初に、スワップ領域を確保します。
スワップは、実メモリの同等量以上を確保します。

デスクトップOSとして使うのであれば、スワップ領域はハイバネーションの際のメモリ上の情報を退避させる場所として使います。
スワップ領域用パーティションは、8200というコードになります。(lを入力してEnterキーを押すと、詳細なコード一覧が表示されます。)

以下の例では、ディスクの先頭から8GBのメモリに対して、倍の16GBのディスク領域をパーティションで切り、スワップ領域として作成しています。


Command (? for help): n <- nを入力して、Enterキーを押す
Partition number (2-128, default 2): <- 何も入力せず、Enterキーを押す
First sector (34-209715166, default = 2048) or {+-}size{KMGTP}: <- 何も入力せず、Enterキーを押す
Last sector (206848-209715166, default = 209715166) or {+-}size{KMGTP}: +16G <- この例では16GBをスワップ領域として確保
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8200 <- 8200を入力して、Enterキーを押す
Change type of partition to 'Linux swap'

Command (? for help): _

/(ルート)用パーティションの作成

次に/(ルート)の領域を確保します。30GBあれば十分です。


Command (? for help): n <- nを入力して、Enterキーを押す
Partition number (3-128, default 3): <- 何も入力せず、Enterキーを押す
First sector (34-209715166, default = 20973568) or {+-}size{KMGTP}: <- 何も入力せず、Enterキーを押す
Last sector (33761280-209715166, default = 209715166) or {+-}size{KMGTP}: +30G <- この例では30GBをスワップ領域として確保
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): <- 何も入力せず、Enterキーを押す
Change type of partition to 'Linux filesystems'

Command (? for help): _

/home用パーティションの作成

最後に/homeの領域を確保します。
残り全ての領域を割り当てます。


Command (? for help): n <- nを入力して、Enterキーを押す
Partition number (4-128, default 4): <- 何も入力せず、Enterキーを押す
First sector (34-209715166, default = 62916608) or {+-}size{KMGTP}: <- 何も入力せず、Enterキーを押す
Last sector (96675840-209715166, default = 209715166) or {+-}size{KMGTP}: <- 何も入力せず、Enterキーを押す
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): <- 何も入力せず、Enterキーを押す
Change type of partition to 'Linux filesystems'

Command (? for help): _

作成したパーティションの確認と確定

最後にpを押して、作ったパーティションを確認します。


Command (? for help): p
Disk /dev/sda: 16777216 sectors, 80.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 210CB9D6-CE61-4ACA-884D-F3C690BD694D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 209715166
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            2048          206847   100.0 MiB   EF00  EFI System
   2          206848        33761279   16.0 GiB    8200  Linux swap
   3        33761280        96675839   30.0 GiB    8300  Linux filesystem
   4        96675840       209715166   53.9 GiB    8300  Linux filesystem

Command (? for help): 

これでパーティションを確定させます。wを押して、パーティションテーブルをディスクに書き込み、gdiskを終了させます。


Command (? for help): w

Final checks complete. Abount to write GPT data. THIS WILL OVERWRITE EXISTING  
PARTITIONS!!

Do you want to proceed? (Y/N): Y <- Yを入力して、Enterキーを押す
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.
root@slackware:/# _

次は、パーティションのフォーマットとディレクトリマッピングに進みます。