インストーラーの仕様が変わる
「Ubuntu 20.10」から「Ubuntu Desktop」向けインストーラーである「Ubiquity」の仕様が変わりました。- 20.10 needs ESP on BIOS systems – existing, confirmed, unassigned bug
- Installation of Ubuntu Groovy with manual partitioning without an EFI System Partition fails on 'grub-install /dev/sda' even on non-UEFI systems
この話は「BIOS」環境に関係する話であって「UEFI」環境には影響ありません。
BIOSとUEFI
PCには電源を入れた時に各種ハードウェアを初期化したりハードウェアへのアクセスを提供するファームウェアが基板上に搭載されています。このファームウェアのことを「BIOS」と言います。
「BIOS」には従来からある「BIOS(Legacy BIOS)」と、新しい「UEFI」という仕様に対応した「UEFI BIOS」があります。
ここでは便宜上前者を「BIOS」、後者を「UEFI」と表現します。
「UEFI」は従来の「BIOS」を置き換える新しい仕組みであり、2011年頃から「UEFI」に対応したPCやマザーボードが普及し始めました。
現在販売されているPCは「UEFI」に対応したPCです。
BIOS互換環境
「UEFI」に対応しているPCでも「CSM(Compatibility Support Module)」により、従来の「BIOS」環境と互換性のある環境を提供できるPCも数多く存在します。そのPCの多くは「UEFI」の設定画面でユーザーが「UEFI」環境とBIOS互換環境(CSM)を切り替えられるようになっています。
ここでは「CSM」によるBIOS互換環境も上述の「BIOS」に含めます。
UbuntuのインストールとBIOS/UEFI環境
そもそも「BIOS」と「UEFI」では仕組みが大きく異なるため、その違いはOSにも影響を与えます。ユーザーが「Ubuntu」をインストールする際、「BIOS」環境と「UEFI」環境の違いを意識する機会も出てくるでしょう。
従来のパーティション構成
「Ubuntu 20.04 LTS」までは「BIOS」環境で「Ubuntu Desktop」をインストールすると、以下のパーティション構成になっていました。パーティションテーブル | MBR(Master Boot Record) |
パーティション | ルートパーティション |
補足
ルートパーティションはルートファイルシステムを配置するパーティションです。つまり「Ubuntu」のインストール先となるパーティションです。
ちなみにスワップパーティションは今回の件とは無関係であり、また「Ubuntu」ではスワップパーティションからスワップファイルに移行したため省略します。
新しいパーティション構成
「Ubuntu 20.10」から「BIOS」環境でインストーラーに任せて「Ubuntu Desktop」をインストールすると、以下のパーティション構成になります。パーティションテーブル | GPT(GUID Partition Table) |
パーティション |
|
UEFI環境のようなパーティション構成
以下は「UEFI」環境で「Ubuntu Desktop」をインストールした時のパーティション構成です。パーティションテーブル | GPT(GUID Partition Table) |
パーティション |
|
見ての通り「UEFI」環境のようなパーティション構成になります。
言い換えれば「UEFI」環境のパーティション構成に「BIOSブートパーティション」を加えた構成が、「BIOS」環境でのパーティション構成になります。
パーティションテーブルがGPTへ
まず大きな違いの1つは、パーティションテーブルの形式が「MBR」から「GPT」に変更されたことです。「GPT」は「MBR」を置き換える新しいパーティションテーブルであり、「UEFI」環境で使用されるパーティションテーブルです。
BIOSブートパーティションの追加
「BIOS」環境で「GPT」でフォーマットされたディスクから「Ubuntu」を起動できるようにするには、新たな仕組みが必要になります。その仕組みの一端を担うのが「BIOSブートパーティション」です。
この「BIOSブートパーティション」に「GRUB」のブートローダーの一部が配置されます。
このパーティションはファイルシステムを作成せずに使用するパーティションです。
EFIシステムパーティションの追加
「EFIシステムパーティション」は「UEFI」環境からOSを起動する時に使用されるブートローダーが配置されています。つまり「BIOS」環境では使われません。
BIOS環境とUEFI環境の両対応へ
というわけで「BIOS」環境で「Ubuntu Desktop」をインストールした場合、「BIOS」環境と「UEFI」環境の両環境に対応することになります。「BIOS」環境では「Protective MBR」及び「BIOSブートパーティション」経由で「Ubuntu」が起動します。
また「UEFI」環境では「EFIシステムパーティション」経由で「Ubuntu」が起動します。
上記でも紹介したとおり「UEFI」の設定画面でユーザーが「UEFI」環境とBIOS互換環境(CSM)を切り替えられる場合、どちらからでも起動できるようになります。
ただし「UEFI」環境とBIOS互換環境を切り替えられるPCでも「UEFI」環境で「Ubuntu Desktop」をインストールした場合はBIOS互換環境に対応しないため、BIOS互換環境から「Ubuntu Desktop」を起動することはできません。
手動でパーティションを構築する時は
手動でパーティションを構築する場合、ディスクにすでに存在しているパーティションテーブルの形式により状況が変わります。- パーティションテーブルがMBR
- パーティションテーブルがGPT/なし
1.パーティションテーブルがMBR
すでに「MBR」形式のパーティションテーブルがディスクに存在している場合、以下の構成でパーティションを構築します。- ESP(EFIシステムパーティション)
- ルートパーティション
パーティションテーブルを再作成する場合
ただしインストーラー上でパーティションテーブルを再作成する場合、パーティションテーブルの形式が「GPT」になります。この場合は「新しいパーティション構成」でパーティションを構築します。
Ubuntuの起動
「BIOS」環境では「MBR」経由で「Ubuntu」が起動します。また「UEFI」環境では「EFIシステムパーティション」経由で「Ubuntu」が起動します。
2.パーティションテーブルがGPT/なし
すでに「GPT」形式のパーティションテーブルがディスクに存在している場合や、そもそもパーティションテーブルが存在しない場合、「新しいパーティション構成」でパーティションを構築します。パーティションテーブルが存在しない場合はインストーラー上でパーティションテーブルを作成することになりますが、この時パーティションテーブルの形式が「GPT」になります。
BIOSブートパーティション
まず始めに「BIOSブートパーティション」を作成します。サイズは最低でも1MB必要です。
また1MBあれば十分でしょう。
ESP(EFIシステムパーティション)
次に「ESP(EFIシステムパーティション)」を作成します。ルートパーティション
最後に「ルートパーティション」を作成します。パーティション構成は以下のようになります。
ややこしい時は
ここではインストーラーの動作をすべて網羅していません。そのため既存のパーティションテーブルやパーティションを利用しながら「Ubuntu Desktop」を「BIOS」環境にインストールする場合、仮想マシンに似たようなパーティション構成でパーティションを構築し、そこでインストールを実施し結果を確認するのが良いでしょう。
UEFI + GPTが楽
もしPCが「UEFI」に対応しているなら、「UEFI」環境で「Ubuntu Desktop」をインストールする方法が混乱も少なく一番楽かと思います。また「UEFI」は従来の「BIOS」を置き換える新しい仕組みであり、加えて「Windows 11」のシステム要件による後押しもあり、「BIOS」互換環境に対応していないPCが今後一般的になっていくかと思います。