2011/12/03(Appeared First)
2015/05/11(Last Modified)
2017/10/02(Tiny Modification)
2018/12/26(Tiny Modification)
Windows 8の発売以来, UEFIに対応したPCが増加してきたので, 情報をまとめてみた.
64ビット版がインストールされているのは大半がUEFIである.
BIOSはリアルモードで作成されねばならないため, 1MBのアドレスしか利用できないなど制約が多かった. 一方x86アーキテクチャ以外のIA64が出現してx86のBIOSからUEFIが必要となった(IA64ではx86のエミュレーション機能も必要とされたが) .
Intel版Mac OSでもOpen FirmwareからUEFIへと変更になった.
. また, ARMにも用意されている.
UEFIでは簡単な(fat, iso9660)ファイルシステムも理解できるようになっている. また, UEFI上のUtilityでEFIシェルなども利用できるようになっている.
UEFIの規格にはBoot Managerに相当する部分も含まれている.
UEFIの分類(裏をとっていない)
Class 1 歴史的なものItaniumで利用 Class 2 互換性を持たすために を行う
- CSM(Bios)の機能
- Int 10のサポート
Class 3 Class 2でのサポート機能がなく純粋にUEFIのみ
- Intel ATOM SoCでは32bit, Class 3があるらしい
ディスクのパーティション管理はMBR形式で行われてきたが, MBR形式ではLBAを用いても2TiBまでしか対応できない. また, パーティションの数もプライマリが4までと制限が強い.
2TiBより大きいディスクの出現により, GPT形式が必要になってきた. プライマリパーティションが128個まで利用できるようになる.
Linuxで用いられるfdiskはGPTに対応していないために, gdisk, partedなどを利用する必要がある(将来のfdiskではgptもサポートされるらしい.
利用しているWindowsがUEFI, GPTかどうかを調べる
クリーンインストールする場合
64bit版Windows 7, Windows Server 2008, 64bit版Windows8, Windows Server 2012が対応している. 手順は以下の通り.
diskpart
select disk 0
clean
convert gpt
create partition efi size=100
create partition msr size=128
create partition primary size=30720
format fs=ntfs label=sys quick
exit
インストールメディアにEFI/BOOT/*.efi
がある場合には uefi+gptをサポートしている可能性が高い(Scientific Linux 6.3にはEFI/BOOT
はあるが, 肝心の*.efi
がない)
試してみてうまくいったのは, Ubuntu 11.10以降(64bit版), OpenSUSE 12.2(64bit版), Fedora17(64bit版), CentOS 6.4(64bit版), Debian7.0(64bit版). ほかにもArchlinuxのようにうまくいくものもあるが, きちんと評価できていないものについては述べない.
fatでフォーマットされたefiパーティションを作成し, /boot/efi
へマウントする必要がある.
Windowsで利用する場合を含めたpartedを用いたパーティション設定の例を示す
partedで小数が利用できるので以下のような設定が可能である.
parted /dev/sda
mklabel gpt
mkpartfs EFI fat32 1 0.2G
mkpart MSR 0.2G 0.3G
mkpart Windows 0.3G 30.3G
mkpartfs swap linux-swap 30.3G 31G
mkpart Linux 31G 41G
…
set 1 boot on
set 2 msftres on
まとめ?
新しい機械でUEFI BIOSでSecure BootがEnableになっている場合には Disableにしないと先に進めない
Windows10でsecure bootが強化されるかもしれない(New!! But Uncertain)
インストール時にマウントポイント指定のメニューに/boot/efiがある場合には, まず大丈夫そう.
ブートマネージャとして, 何が一般的になりそうかは, 現在不明?
Distro | Boot Loader | Remark |
---|---|---|
Ubuntu | Grub2 | efiパーティションを作ろうとするので, 既に存在しているときには, 存在しているパーティションを指定する. WindowsとのDual Boot設定は一番楽かもしれない. 11.04の時代からインストール可能なので, 最新版や派生物のMintも大丈夫そう. |
OpenSUSE | ELILO, Grub2 | パーティションの指定で/boot/efiが指定できるので, efiパーティションがある場合には指定する. 12.2ではELILOは/EFI/SuSEに, Grub2は/EFI/opensuseに作成される |
Fedora | Grub2 | パーティションの指定で/boot/efiが指定できるので, efiパーティションがある場合には指定する. Fedora18では手動で既存パーティションを割り当てるのに少し混乱するかもしれない(インストーラの悪口に相当するのかもしれない) Fedora20ではMOK(Machine Owners Key)をサポートする? |
Slackware Based | ELILO | こっちを参照 fatでフォーマットしたUSBメモリにファイルをコピーするだけなので, テストをするのには簡単. 起動に特殊な操作を必要としないので,
純粋にUEFIだけのシステムのテストができる インストーラはGrubを使っているが, システムはELILOを利用. .(The procedure in English is explained at http://xathrya.web.id/blog/2013/01/07/installing-slackware64-14-0-on-uefi-based-machine installpkg -root /mnt [az]*/* should be read installpkg -root /mnt [a-z]*/* )標準がgrub2に変更? |
CentOS | Grub2 | 6.4から対応. /EFI/redhatにefi bootが作られる. なぜかminimalだと失敗した. 派生版であるScientific Linuxでは, 無印およびCERN版はサポートしているが, FNAL版ではまだ? |
Debian | Grub2 | Wheezyからサポート |
Solaris x86 | 未テスト Grub2 |
11.1からサポート?(2012/9/20に公開済み) |
FreeBSD | 詳細不明 | 10.1からサポート(2014/10/29リリース予定) |
WindowsのEFIパーティションを大きめに作成し, インストール時に/boot/efiからリンクを張っておくと, EFIパーティション(システムパーティション)を共用できる. 特にELILOを利用する場合, EFIパーティションにカーネル等をおくので大きく取る必要がある.
UEFIではfat, iso9660位しかファイルシステムを認識しないので, インストー ルはすべてDVDから行っています. 確認をしていないのですが, fat以外のファ イルシステムのUSBメモリからのインストールはこけるかもしれない.
MBRのBoot Recordの代わりに, FATで作られたEFIシステムパーティションから起動すると考えると考えやすい. UEFI Boot Managerが見るファイルはEFIシステムパーティションのディレクトリEFIの下に作成され, それぞれのエントリーがフラッシュメモリに格納されている.
UEFIのインプリメンテーションがいろいろあるもよう.
Freeing unused kernel memory
が表示されるまでの時間が短縮される. 利用している環境によって相当変化することが予想されるが, hp mini5102, Slackwareという妙な環境の結果
UEFIの実現方法にもよるが, 起動エントリーが削除できなくなる場合がある。起動エントリーを整理する方法のひとつ。
mkdir /src
mount /dev/sdb1 /src
installpkg /src/slackware64/gnuefi_tools-3.0r-sos-1210.txz
modprobe efivars
efibootmgr -B -b 1
(2014/07/07)
GPTとは関係ないのですが, USB Memory(USB Stick)で
すると, 当然ですが, USBから起動するlinuxを作成できます. kernelはUSB関係をstaticで(moduleでなく)組み込む必要があるかもしれません.
boot loaderとしては単純なELILOで試してみました
(2017/10/02)
ARMも出てきそうなのでわかった分だけ追加
2018/12/26追加
UEFIセキュアブートにインストールメディアがどの程度対応しているか, Hyper-Vで試してみた
CentOS | Microsoft UEFI 証明機関 | o |
debian 10以降 | Microsoft UEFI 証明機関 | o |
Fedora | Microsoft UEFI 証明機関 | o |
Manjaro | x | |
mint | Microsoft UEFI 証明機関 | o |
openSUSE | Microsoft UEFI 証明機関 | o |
Oracle | Microsoft UEFI 証明機関 | o |
ubuntu | Microsoft UEFI 証明機関 | o |
インストールメディアの中にEFI/Boot/bootx64.efiがあれば
でUEFI向きのインストールメディアができる(32GB以下にしたのは, fat32の上限のため)