
Ubuntu日本語フォーラム
ログインしていません。
実際に自分が試してみた結果や、調べた情報から大まかにまとめてみました。
殆ど基本的な事だけですが、間違い等があれば指摘して下さい。
# LiveCD編
1. ubuntu 12.04 LTSより、LiveCDでの起動画面が違う。
[ UEFIモードで起動及びインストールできるのは、64bit版のみ ]
# UEFI BIOSモードの場合
grubメニューの選択方式で起動する。
# Legacy BIOSモード(旧BIOSモード)の場合
画面下部にアイコンの表示される紫色の画面で起動し、デスクトップが立ち上がる。
# インストール編
1. UEFIモードで起動すると、ハードディスクのパーティショニングはGPT方式となる。
2. 必ず、ESP(EFIシステムパーティション)が必要となる。
# FAT32でフォーマットされた特別なパーティション
community ubuntu documentationでは100〜250MB程度となっている。
インストーラーから自分で作成する場合は、フォーマット形式で[EFIブートパーティション]を選べば自動構成される。
既存のESPを使う場合は、/boot/efi にマウントされる様に構成する。
パーティション構成の例(UEFIモード):
/dev/sda1 /boot/efi FAT32 bootフラグ ESP(EFI System Partition)
/dev/sda2 / ext4
/dev/sda3 /home ext4
/dev/sda4 swap swap
3. インストールされるgrubブートローダーのパッケージがLegacy BIOSモードの物と一部異なる。
# UEFI BIOSモードの場合
grub-efi
grub-efi-amd64
grub-efi-amd64-bin
# Legacy BIOSモードの場合
grub-gfxpayload-lists
grub-pc
grub-pc-bin
* ESPが無い状態でUEFIモードでのインストールは可能だが、起動する事はできない。
# UEFIモードで起動したのに従来のパーティション構成でインストール
従来のパーティション構成の例:
/dev/sda1 / ext4
/dev/sda5 /home ext4
/dev/sda6 swap swap
/dev/sda1にbootフラグが付かない上に、MBRに書き込まれないので起動できない。
* 32bit OSと混在させたい場合は、UEFIを諦めてBIOSでUEFI関連を[Disable]や[Legacy]等に変更する。
(UEFIの仕様:64bit実装のUEFIでは、64bit OSしかブートできない為)
他の手段として、UEFI構成でインストールして、virtualbox等の仮想環境上に32bit OSをインストールする。
又は、上記構成でUEFIモードでインストール後にLiveCDで再起動し、Legacy BIOS版のgrubをインストールをする。
* virtualbox-4.2.4にて[EFIを有効化(一部OSのみ)]のオプションを使い確認した事。
1. NVRAMが読み込めない、又は読み込めてもNVRAMにOSの登録がない場合は、ESPの EFI/boot/bootx64.efi ファイルを読みに行く。
ubuntuのインストールでは作成されないディレクトリであり、当然ながら bootx64.efi ファイルも無い。
# virtualboxのEFIは試験実装な為か、仮想環境が電源OFFからの起動の場合NVRAMに登録が残っていない。
その為、通常は UEFI Shell が起動する。
それを利用して確認してみた。
/boot/efi/EFI/ubuntu/grubx64.efi ファイルを /boot/efi/EFI/boot/bootx64.efi としてコピー。
UEFI Shellは立ち上がらず、grubが正常に起動する様になる。
フリーのUEFI対応ブートローダーであるrEFIndを /boot/efi/EFI/boot/bootx64.efi としてインストール。
UEFI Shellは立ち上がらず、rEFIndが正常に起動する様になる。
又、そこからgrubも正常に起動させられる。
2. ESPを含めてソフトウェアRAID-1を構成。
# ESPパーティションもRAID-1構成にする事は可能だが・・・
ESPを含めての構成はエラーもなくインストールも終了するが、起動不可。
MBRが無いから? UEFI BIOSがESPを正常に読み込めない? mdデバイスを認識できない?
## オープンソースのUEFI Shellについて ##
以下のリンクからオープンソース版のUEFI Shellをダウンロードして起動できるか確認してみました。
https://help.ubuntu.com/community/UEFIB … UEFI_Shell
# 実機 Lenovo G580(2689-7LJ)で実験
Dual-core celeron B820 1.7Ghz
UEFI Ver 2.31(UEFI Shellは未実装)
Ubuntu 12.04.1 LTSのみUEFI構成でインストール済み
# 使用したUEFI Shell
UEFI Shell 64bit beta版(EFI Shell Ver 2.0でUEFI Ver 2.3+が必要な様です)
UEFI Shell 64bit old版(EFI Shell Ver 1.0の様です)
## 結果 ##
* 64bit版beta
/boot/efi/EFI/boot/bootx64.efi として起動に失敗。
/boot/efi/shellx64.efi としてrEFIndからの起動に失敗。
* 64bit版old
/boot/efi/EFI/boot/bootx64.efi として起動に成功。
/boot/efi/shellx64.efi としてrEFIndからの起動に成功。
但し、rEFIndの説明では /boot/efi/EFI/tools/shell.efiと記載されている。
説明通りでも認識するし、/boot/efi/shellx64.efi でも認識した。
* 一部修正と補足
* 修正
#1での投稿内容
ubuntu 12.04 LTSより、LiveCDでの起動画面が違う。
いずれも64bit版のみであり、UEFIがサポートされたのはubuntu 11.10からです。
但し、私がUEFIで動作するのを確認したのは、ubuntu 12.04からです。
* 補足
#2での投稿内容
UEFI Shellを /boot/efi/EFI/boot/bootx64.efi としてコピーし、実験する方法について。
実験した環境では既にUEFI構成でubuntu12.04.1 LTSがインストールされているので、NVRAMに"ubuntu"が登録されており、BIOSにもUEFI Shellを起動する項目が無い為、そのままではUEFI Shellを起動できません。
#1で記述した様に、NVRAMが読めない、又はOSのentryが無い場合にUEFIが読みにいく場所なので以下の様に実施すれば確認できます。
PCを起動時に"F12"を押し起動デバイスの選択画面を出して、OSのentryではなくESPの存在するハードディスクを直接選択し、起動する。
NVRAMを読みに行かないので、/boot/efi/EFI/boot/bootx64.efi を読みに行きます。
ubuntu 12.04.3 server amd64版で software raid1 を構成(ESPと/boot以外)して、インストール・起動
できることを確認しました。情報追加します。
使用したハードウェアは、
MB: Supermicro X9SBAA-F (CPU on board)
HDD: Western Digital Red 3TB (WD30EFRX)を2台
です。
ESP(EFIシステムパーティション)や /bootパーティションも raid1にすると、UEFI BIOSが
見に行けないようです。想像するに、ソフトウェアRAIDですので、ubuntuが起動して、又は
起動途中で、はじめて raidが使えるようになるためでしょうか?
# 他のパーティション(/、/home、swap)は raid1で構成しても大丈夫でした。
オフライン