パーティション

ここで記載する内容は最悪操作したディスク内の OS とデータをなくします。

試す場合、まずは破損しても良い環境で行って下さい。


パーティションを操作する場合

OS をハードディスク・SSD から起動した場合、

ブートローダーや fstab などによって
起動 OS のパーティションと swap は固定マウントされ動かす事ができません。

 

USB メモリや DVD などから ISO をライブ起動する場合は

swap 以外はマウントされないので、この状態での操作が推奨されます。

swap もオフにして移動などが可能です。

 

運営者は GUI 操作として GParted がおすすめです。

GParted は確実なディスク情報を提供し、操作を行う事ができます。

ただしできるだけ新しいバージョンを使って下さい。
古いバージョンは物理的にパーティションのコピーを行うため遅く、
基本領域と拡張領域間のコピーは破損させる場合があります。

新しいバージョンはこれらを e2image を使用して行います。

旧バージョンで1時間ほどかかる操作が

新バージョンでは10分〜20分位になります。

また新バージョンでディスク破損を経験した事はありません。

 

GParted Live などはメモリにシステムを常駐させます。(Frugal インストール)

ハードディスク・SSD 起動でもパーティションを動かす事が可能です。


デスクトップ環境のパーティション割当

通常デスクトップ環境で使われるマウントポイントは次になるでしょう。

  • /
  • /boot
  • /home
  • swap

他に /usr や /var なども可能な場合がありますが、

これは1ディスクのデスクトップ環境で使用する場合、意味がないでしょう。

特に個人用途で用いる場合は、パーティションを細かく分ける必要はありません。


/

Linux 本体。それ以外のマウントポイントがある場合は、

それらを別のパーティションで使えるようにしますが、

それ以外のディレクトリ・フォルダはこのパーティションに入ります。


/boot

ブートローダーを専用パーティションに分ける事があります。

適切な場所に置く事で、GRUB 2 のステージ 2 本体を固定配置できるため、

/ のパーティションを動かしても起動できなくなる恐れがなくなります。

この理由からマルチブートを行う場合、/boot をつくるのであれば、
MBR へブートローダーを生成する OS で割り当てを行うのが理想でしょう。

それ以外は /boot を生成しなくても影響はありません。

(ブートローダーを2つ経由して起動する2段階起動にする場合でも)


UEFI の場合は、EFI 専用のパーティションや
GRUB が使用する bios_grub フラグのパーティションもあるため、

この辺が変わってくる事にご注意下さい。


GRUB 1(GRUB Legacy)や GRUB4DOS は MBR のみに本体を置くため、

/ 割り当てでパーティションを動かしても起動が可能です。


/home

openSUSE は初期状態で /home を個別のパーティションに割り当てます。

サーバではユーザー別の容量制限を設ける意味で、これを割り当てます。

容量が大きくないディスクではこれを作らない方が良い事もあります。


システムとデータを分ける事によってファイルの扱いにメリットがあります。

/home を割り当てず、NTFS などで Windows・OS X と共有する場合もあります。

昔は FAT32 にしていましたが、
FAT には MS-DOS からの仕様でファイル名を変える場合があります。

現在は NTFS の方が無難に使用できるでしょう。


複数ディスクがある場合、/home やデータ領域は

/ とは異なる領域にあるのは、ヘッダの動きを少なくするため、

ディスクアクセスの高速化になり、効果的です。


swap

Linux では仮想メモリ領域である swap を専用のパーティションに割り当てます。

生成する場合は通常実際のメモリ量と同じ容量からその倍の容量です。

2GB のメモリがある場合、swap は 2GB〜4GB が理想になります。

 

ハードディスクでは Linux が一つの場合 / の前に swap を置くのが理想です。

/ と swap の距離が近いため、ヘッダの動きが少なくなり、
高速動作を期待できるためです。

複数ディスクがある場合、/ とは異なるディスクの swap を使用するように

fstab を設定すると効果的です。

 

メモリが十分に大きい場合は swap を使われる可能性は低くなります。

また SSD や USB メモリ・SD カード などではアクセス寿命を考慮し、

ディスクアクセスを軽減する事があります。

これらから、あえて swap パーティションを作らない事もあります。

 

マルチブートにする場合、インストール時に swap を指定すると

フォーマットする事で UUID を変えてしまう事があります。

swap を指定しないでインストールし、
インストール後に fstab を編集するのが一つの解決策です。


GPT

GUID パーティション テーブル。
2T バイトを超えるディスクは GPT にする必要があります。

UEFI の一機能として定められました。

MBR 互換領域もあり、MBR にしか対応していないアプリ等でも認識します。

 

Intel CPU 搭載の Mac が UEFI と GPT を採用しています。

Windows でも Windows 7 プレインストールパソコンの途中から

UEFI と GPT に対応するパソコンになってきています。

 

パーティション数

標準で 128 パーティションに対応しています。

パーティションテーブルへの空き領域割り当てで
更に大きなパーティションも扱う事ができます。

 

MBR のような拡張領域は必要ありません。


MBR

MS-DOS 時代から使われているパーティションの分け方で、

数年前まで BIOS と共に主流で使われていました。


パーティションの分け方

sda でハードディスク・SSD が認識されている場合、

MBR での割り当ては次のようになります。

  • sda1〜sda4 - 基本領域
    拡張領域を作成するとその中を論理領域で分割できます。
    通常並びは変わりません。
  • sda5〜 - 論理領域
    パーティションを削除すると、番号が変更されます。

論理領域の番号が変わっても起動に影響がでないよう、
現在 UUID でパーティションを指定するようになっています。

 

容量制限

MBR の使用上、物理的な容量は 2T バイトまでになります。

最近のパソコンなどで GPT を採用する要因の一つが
この制限を撤廃する目的があります。


古い Linux のパーティション制限

数年前の Linux ではドライブの最大パーティションとして次の制限があります。

  • IDE ディスクは最大 63 まで(例えば hda63)
  • SCSI ディスクは最大 15 まで(例えば sda15)

最近公開されている Linux では、この制限はなくなっています。
例えば SCSI ディスクも sda16 以降を作成しアクセスできます。

しかし、古い Linux では sda15 までしか認識しない場合があります。

また、Linux が対応していても、古くから存在しているアプリでは
対応していない場合があります。

  • Vine Linux 6 系のインストーラーは番号 15 までしか認識しません。
    Vine Linux 7 はインストーラーが変わる予定のため、なくなるはずです。
    Vine では他の動作でこの制限を確認していません。

特にディスク操作を行うアプリでは
パーティション番号 16 以降(例えば sda16 以降)を無効として
削除する場合もありますので、くれぐれもご注意下さい。


パーティション番号の並びを変える

パーティションの追加・削除を行うと、

パーティション番号の並び方が変わってしまう場合があります。

 

先頭からパーティションの順番を付け直す機能が fdisk にあります。

対象が Linux 本体が入っているパーティションの場合、
ライブ起動した Linux で操作して下さい。

  1. 例えば sudo fdisk /dev/sdb (sdb は対象ディスク) として起動します。
  2. x (追加機能・熟練者向けコマンド) を選びます。
  3. f (パーディション番号の修繕) を選びます。
  4. ここで警告メッセージが表示される場合、i (無視) します。
  5. r (メインメニューへ戻る) を選びます。
  6. w (ディスクへ書き込んで終了) を選びます。ここで更新されます。
    q (変更せずに終了) の場合は操作せずに終了します。

GParted などで変更されている事を確認して下さい。

/etc/fstab などで /dev/sdb1 などと直接パーティション番号を指定していた場合

これを変更しないと起動できなくなったり、

参照に問題が発生する事にご注意下さい。

この方法では UUID は更新されないため、
UUID で指定している場合は影響ありません。


ext4 フォーマットのバグ

カーネル 4.5〜4.8 を用いている Linux で

ext4 でフォーマットされたパーティションの起動やマウントに失敗する事があります。

これは 2016 年秋までにカーネルそのものやパッチによって修正されていますが、

それ以前に公開されているローリングリリースなど、

比較的新しいバージョンを採用する Linux では影響を受けているのでご注意下さい。

  • インストーラーでフォーマットを行った場合
  • GParted などのパーティション管理ツールでフォーマットを行った場合
  • その他フォーマットを行った場合

Ubuntu 14.04 LTS・16.04 LTS や Debian Jessie など、

4.4 LTS 以前のカーネルを用いている環境でフォーマットするのが

一つの回避方法です。インンストールではフォーマットしないで手続きを進めます。