単一の起動ハードウェアで起動修復なしでUbuntu BIOSインストールをEFI / UEFIに変換するコマンドはどれですか?


35

偶発的なBIOSモードのインストール

UEFIセットアップユーティリティを備えたIntel 64ビットハードウェアを使用しています。Ubuntu 14.04.1 LTSは、接続されている唯一のドライブに唯一のオペレーティングシステムとしてインストールされました。偶然、UbuntuはBIOS / CSM / legacyモードでインストールされました。

UEFIに変換

後で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を使用してUbuntuをEFIモード変換することを推奨しています。GUIを使用したり、余分なパッケージをインストールしたり、pastebin.comに誤ってデータを送信したりしたくありません。正確に変更される内容を知りたいので、Boot-repairを使用します。

フードの下

ブート修復が実際に行うことを理解しようとして、私はこのスニペットを見つけました:

ブート修復は、gptがパーティション化されている場合、grub-pcをアンインストールし、grub-efiをインストールすることにより、BIOSインストールをUEFIに変換します。

ソース:http : //ubuntuforums.org/showthread.php?t=2147295&p=12657352#post12657352

UEFIモードインストールの比較

UEFIモードでUbuntu 14.04.1をクリーンインストールすると、512 MiB Fat32フォーマットのEFIパーティションが作成されます。そのパーティションは、一つのディレクトリが含まれています/EFI/ubuntu:4つのファイルを含む、grub.cfggrubx64.efiMokManager.efishimx64.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に対して)

潜在的なAsrockファームウェアの問題は見つかりませんでした

ファームウェアでまだCSMを無効にし、クリーンなUEFIモードのUbuntuインストールを使用しています。ライブCDを使用して512 MiB EFIパーティションのサイズを200 MiBにgparted変更すると、フォーマットがFAT32からFAT16に変更されます。AsrockファームウェアP1.50 (誤ってブートメッセージ「BIOS日付」でAMIによってBIOSと呼ばれる)は、まだUEFIモードUbuntuで起動できます:UEFI + FAT16 = ok。同じLive CDターミナルコマンドとそのコマンドを使用
してパーティションテーブルをGPTからMBR(msdos)に変換するgdiskr g p w、MBRパーティションドライブでUEFIブート可能なUbuntuが作成されます:UEFI + MBR = ok

質問

これは、私が実行する必要があるコマンド(レガシーUbuntuインストールからこの順序で)のみが次のとおりであることを意味しますか?

# apt-get install grub-efi
# apt-get remove grub-pc

?それとももっとする必要がありますか?


1
私はまだブート修復を使用します。あなたはあなたがパッケージをインストールする必要があると思います...私はあなたが間違っていると信じています。参照:askubuntu.com/questions/226061/...
Rinzwind

@Rinzwind現在のUbuntuインストール(コンソールのみ)にGUIがなく、Asrockの最初のUSB UEFIブートデバイスとして設定されたときにubuntu-14.04.1-desktop-amd64.isoがブートしないため、ブート修復を使用できませんH81 Pro BTC P1.50 UEFIセットアップユーティリティ。
プロバックアップ14

1
Boot-Repairはguiではありませんが、アドインの1つでbashを行うと、よりGUIのようになります。Ubuntuパッケージの新しいバージョンでは少し変更されましたが、現在はgrub-efi-amd64またはgrub-efi-amd64-signedであると思います。名前が変更された32ビットUEFIブートローダーをリリースしたいためかもしれません。Chrootバージョン。grubのインストールとgrub.cfgの作成も必要です。askubuntu.com/questions/53578/...
oldfred

@oldfred Boot-Repairはguiに依存しapt-get install boot-repairています。このUbuntuサーバーインストールで実行すると、ブート修復がインストールしたい依存関係のような245MBのGTKが発生します。そして、boot-repairコマンドを後方に実行すると失敗します。新しいgrub-efiネーミングの更新は本当に役に立ちました。
プロバックアップ14

Asrockの場合、AsmediaポートにドライブまたはDVDドライブが接続されていないことを確認してください。ドライバーはありません。UEFIで起動する場合は、gptパーティションドライブのみを使用することをお勧めします。rodsbooks.com/gdisk/hybrid.html
oldfred

回答:


40

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が役立つ場合があります。


これにより、ハードドライブをアップグレードし、再インストールせずにGPT / UEFI / SecureBootに変換できました。ありがとうございました。注:grub-efi-amd64-signedUEFI BIOSでSecureBootを無効にすることで混乱することを避けるために、パッケージが必要でした。
ロビーバサック

現在は2018年であり、EFI iでのこの問題はまだ続いています。efiブートもインストールされますが、最終的にはgrub cliになります。Ubuntuをあきらめます。
アビシェークドゥジャリ

これはUbuntu 19.10の下で私のために働いた。ライブUSBをEFIで起動し、EFI用にタイプFAT32の200MBパーティションをディスクの最後に追加しました。
ジョーイアダムス

1

これは私にとっても、1つの小さな変更で機能しました。ネットワークが機能していても、「apt-get install grub-efi-amd64」を取得してパッケージサーバーを見つけることができませんでした。

BIOSモードで最後に起動し、grub-efi-amd64をインストールすることでこれを回避しました。

「apt-get install grub-efi-amd64」を省略することを除いて、ここで手順を実行できます。


1

小さな修正:

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

できた


OPの回答からこれらの変更を提案している理由を説明できますか?…………コメントで返信しないでください。 回答を編集して、より明確で完全なものにします。
G-Manは「Reinstate Monica」と
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.