UEFIセットアップユーティリティを備えたIntel 64ビットハードウェアを使用しています。 Ubuntu 14.04.1 LTSは、接続されている唯一のドライブに唯一のオペレーティングシステムとしてインストールされました。偶然、UbuntuはBIOS/CSM/legacyモードでインストールされました。
後でUEFIについて学習する際の目標は、この既存のUbuntuインストールをEFI/UEFI経由の(より速い)ブートに変更することです。 UEFIセットアップユーティリティを起動できるブートメニュー-2秒が表示されます。したがって、私はGrubを使用する必要があり(EFIブートスタブを使用できない)、 GOPサポートにはGrubバージョン1.99以上が必要です と考える必要があります。ライブCDを使用してドライブのパーティションを再作成し、ドライブの先頭に200 MiB EFIパーティションを挿入し、そのfat16フォーマットのパーティションをタイプID 0xEFとしてマークしました。
前:
# fdisk -l /dev/sda
...
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 108478463 54238208 83 Linux
/dev/sda2 108480510 125044735 8282113 5 Extended
/dev/sda5 108480512 125044735 8282112 82 Linux swap / Solaris
後:
Device Boot Start End Blocks Id System
/dev/sda1 * 411648 108478463 54033408 83 Linux
/dev/sda2 108480510 125044735 8282113 5 Extended
/dev/sda3 2048 411647 204800 ef EFI (FAT-12/16/32)
/dev/sda5 108480512 125044735 8282112 82 Linux swap / Solaris
Partition table entries are not in disk order
Ubuntuコミュニティwikiでは、boot-repairを使用して buntuをEFIモードに変換する を使用することを推奨しています。 GUIを使用したり、余分なパッケージをインストールしたりしたり、Pastebin.comに誤ってデータを送信したりしたくないので、何が変更されるのか正確に知りたいので、したくない Boot-repair を使用します。
ブート修復が実際に行うことを理解しようとして、私はこのスニペットを見つけました:
Boot-Repairは、grub-pcをアンインストールし、gptがパーティション分割されている場合はgrub-efiをインストールすることにより、BIOSインストールをUEFIに変換します。
ソース: http://ubuntuforums.org/showthread.php?t=2147295&p=12657352#post12657352
UEFIモードでUbuntu 14.04.1をクリーンインストールすると、512 MiB Fat32フォーマットのEFIパーティションが作成されます。そのパーティションには、/EFI/ubuntu
、grub.cfg
、grubx64.efi
、MokManager.efi
の4つのファイルを含む1つのディレクトリshimx64.efi
が含まれます。 grub.cfgには以下が含まれます。
search.fs_uuid 7d843e47-3917-4114-8725-55dfa1fbe002 root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
Search.fs_uuidはLinuxインストールパーティションのUUIDを指します。この比較では、UEFIインストールLinuxはパーティション/ dev/sda2をインストールします (BIOSモードインストールのsda1に対して)。
ファームウェアでまだCSMを無効にし、クリーンなUEFIモードUbuntuインストールを使用しています。ライブCDおよびgparted
を使用して512 MiB EFIパーティションのサイズを200 MiBに変更すると、フォーマットがFAT32からFAT16に変更されます。 AsrockファームウェアP1.50 (ブートメッセージ「BIOS日付」でAMIが誤ってBIOSを呼び出した) まだUEFIモードで起動できますUbuntu:UEFI+FAT16=ok。
パーティションテーブルをGPTからMBRに変換する (msdos)同じLive CD端末コマンドgdisk
とそのコマンドr
g
p
w
は、MBRパーティションドライブでUEFIブート可能なUbuntuを生成します:UEFI+MBR=ok。
これは、私が実行する必要があるコマンド(レガシーUbuntuインストールからこの順序で)のみが以下であることを意味しますか?
# apt-get install grub-efi
# apt-get remove grub-pc
?それとももっとする必要がありますか?
UEFIモードでUbuntu Linux(14.04)Live CDを起動します。 USBブートデバイスの場合、UEFIで「高速ブート」を無効にします。
ターミナルウィンドウを開きます(Ctrl+Alt+T)
実際にUEFIモードで実行していることを確認するには、次のbashコマンドを使用します。
$ [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
結果の出力は次のようになります。
UEFI
BIOS
と表示されている場合は、ファームウェアを再起動して、起動デバイスの設定を修正します。
BIOSからEFI/UEFIへの変換を行うには、次のコマンドを入力します。
$ Sudo mount /dev/sda1 /mnt
$ Sudo mkdir -p /mnt/boot/efi
$ Sudo mount /dev/sda3 /mnt/boot/efi
$ Sudo mount --bind /dev /mnt/dev
$ Sudo mount --bind /proc /mnt/proc
$ Sudo mount --bind /sys /mnt/sys
$ Sudo mount --bind /run /mnt/run
$ modprobe efivars
$ Sudo chroot /mnt
# apt-get install grub-efi-AMD64
The following extra packages will be installed:
efibootmgr grub-efi-AMD64-bin
The following packages will be removed:
grub-gfxpayload-lists grub-pc
...
After this operation, 2,399 kB of additional disk space will be used.
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy --debug
エラーメッセージで終わるにもかかわらず:
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
次回の再起動では、ファームウェアの起動オプションメニューに「ubuntu」が表示され、efiモードで起動する場合を除き、以前と同じようにコンソールが起動します。
$ dmesg | grep EFI
efi: EFI v2.31 by American Megatrends
fb0: EFI VGA frame buffer device
EFI Variables Facility v0.08 2004-May-17
fb: switching to inteldrmfb from EFI VGA
何か問題が発生した場合、 https://superuser.com/questions/376470/how-to-reinstall-grub2-efi が役立つ場合があります。
これは私にとっても、1つの小さな変更で機能しました。ネットワークが機能していても、「apt-get install grub-efi-AMD64」を取得してパッケージサーバーを見つけることができませんでした。
BIOSモードで最後に起動し、grub-efi-AMD64をインストールすることでこれを回避しました。
「apt-get install grub-efi-AMD64」を省略することを除いて、ここで手順を実行できます。
小さな修正:
Sudo apt-get install -y grub-efi-AMD64
Sudo mount /dev/sda1 /mnt
Sudo mkdir -p /mnt/boot/efi
Sudo mount /dev/sda3 /mnt/boot/efi
for d in dev sys proc usr run; do Sudo mount -B /$d /mnt/$d; done
Sudo modprobe efivars
Sudo chroot /mnt
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy --debug
できた.