-
ライブ USB/CD を使用してコンピュータを起動し、UEFI モードで . 2 つの起動オプション
<flash_drive>
がありました とUEFI: <flash_drive>
、2 番目は/sys/firmware/efi/
で efi 変数を公開するために必要です だからefibootmgr
後で失敗しないでください。最初のオプションで起動すると、次のエラーが表示されます:Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables. Try 'modprobe efivars' as root.
modprobe efivars
うまくいきませんでした。 -
壊れたシステムに chroot します (ubuntu grub2 のヘルプに似ていますが、efi の仕様があります):
sudo mount /dev/sda2 /mnt #sda2 is the root partition sudo mount /dev/sda1 /mnt/boot/efi #sda1 is the efi partition for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done sudo cp /etc/resolv.conf /mnt/etc/ #makes the network available after chrooting modprobe efivars # make sure this is loaded sudo chroot /mnt
-
Linux ディストリビューションに応じて、さまざまなことを行うようになりました。
-
Ubuntu/Debian の場合 :
apt-get install --reinstall grub-efi-amd64
または代わりに:
apt-get install --reinstall grub-efi update-grub
上記はグラブを提供しますが、起動可能なものは提供しません
-
Fedora の場合 (最大 16、他の人のために働くかもしれません):
yum reinstall grub-efi
次のコマンドでは、sdX を起動元の EFI パーティションを持つデバイスに置き換える必要があります。
--part Y
でY
を置き換える必要があります EFI パーティションの番号 (/dev/sdXY
など) ).efibootmgr -c --disk /dev/sdX --part Y efibootmgr -v # verify a new record called Linux is there
-
-
Ctrl+D と入力します chroot を終了し、すべてをアンマウントして再起動します:
for i in /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done sudo umount /mnt/boot/efi #please do this. Corrupted efi partitions are not nice sudo umount /mnt sudo reboot
これをニーズに合わせて調整する必要があるかもしれません (別のパーティション テーブル、別の /boot パーティションなど)。それが唯一の選択肢ではないかもしれませんが、私にとってはこれでうまくいきました。
何かを修正するのに適したライブシステムは grml です。また、起動可能な USB デバイスのセットアップ方法に関する詳細なガイドもあり、Mac セクションが実際に最も役立ちます (FAT32 パーティションを作成し、ファイルをコピーし、再起動するだけです)。
最初の方法を簡単にする方法として、ライブ CD の grub のみを使用して、ハードディスク上のシステムを直接起動することができます。 xubuntu 13.10 ライブ CD を使用して xubuntu 13.10 でテスト済み。
BIOS でセキュア ブートが無効になっていることを確認します。ライブ CD を挿入し、UEFI 経由で起動します。 CD の GRUB メニューが表示されます。 "c" を押してコマンド ラインに移動します。
configfile (hd0,gpt1)/EFI/ubuntu/grub.cfg
別の EFI システム パーティションがある場合は、上記の grub コマンドを調整してください。
システムがハードディスクから起動したら、EFI システム パーティションに grub を再インストールし、grub-install を介してファームウェアに登録するだけで十分です。
sudo grub-install
Maxine と同様に、BIOS の UEFI 設定が破損していて、マシンが起動しないことがわかりました。
私の場合、それは Linux Mint Debian を搭載した Lenovo ThinkServer RD430 で、なんでも見えました update-grub について行うか、サーバーのハードドライブを変更すると、起動しなくなります。私の場合のOSは、USB経由でインストールされたlinuxmint-201403-mate-dvd-64bitです。 (UEFI が機能しない原因となるイベントの完全な説明については、以下を参照してください)
ThinkServer TS140 でまったく同じ手順を実行しても、UEFI が一度たりとも気を失うことはありませんでした。 RD430 ドライバーのページを見ると、私の BIOS は 2 つのバージョンが古くなっています。私はこれまでマザーボードの BIOS を更新する必要がなかったので、新しいバージョンが利用可能になったときに自動的に更新するような人ではありません。 BIOS を更新した後、上記の Maxine の回答は機能しましたが、ひねりを加えただけです...
# efibootmgr -c --disk /dev/sdX --part Y
# efibootmgr -v
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0002,0000,0003,0001,0004
Boot0000* linuxmint HD(1,800,1f4000,829f6cc9-5b17-479c-b3ea-61e43faecbf7)File(\EFI\linuxmint\grubx64.efi)
Boot0001* LMDE Linux Mint Debian HD(1,800,15d505800,934c598c-fe3c-fd43-84a1-fa38e4f72552)File(\EFI\linuxmint\grubx64.efi)
Boot0002* Linux HD(1,800,1f4000,829f6cc9-5b17-479c-b3ea-61e43faecbf7)File(\elilo.efi)
Boot0003* UEFI: Built-in EFI Shell Vendor(5023b95c-db26-429b-a648-bd47664c8012,)AMBO
Boot0004* UEFI: VerbatimSTORE N GO 1.00 ACPI(a0341d0,0)PCI(1a,0)USB(1,0)USB(4,0)HD(1,80,1d70780,00000000)AMBO
mint / #
efibootmgr -c
コマンドは 2 つのエントリ 0000
を追加しました および 0002
!
Boot0002* Linux HD
起動順序の最初のエントリは 正しくありません .
0000
エントリは正しいです。
これをテストするために、中断することなく起動してみました。これは 0002
です エントリ。予想通り、うまくいきませんでした。サーバーを再起動して F12 を押し、linuxmint
を選択しました。 .期待通り、私の LMDE インストールで起動しました。
efibootmgr を使用して不要なエントリを削除する方法は次のとおりです:
# efibootmgr -b 2 -B
このコマンドを使用してエントリ 0001
を削除しました と 0002
.オプション 0001
これは、OS を復元しようと何度も試みた最後のものでした。
UEFI に関する注意事項
これを読んでいて、私と同じように UEFI に不満を感じている場合は、次のメモとリソースを参照してください。
» UEFI シェルへの起動は、DOS シェルの使用に似ています。
» Intel は、efi シェル コマンドの PDF リファレンス マニュアルを作成しました。
» Lenovo の UEFI_on_TS430 ドキュメントは、efi シェルの使用法を説明している唯一のリソースです。
» nPartition Administrator's Guide からの別の uefi シェル リファレンス .
» ローダーに移動して実行することで、efi シェルからパーティションの起動を試みることができます。
» UEFI は、ディスクに msdos パーツ テーブルではなく、GPT パーティション テーブルを持たせたいと考えています。
» UEFI は、ディスクの最初のパーティションを fat32 または vfat でフォーマットする必要があります。
» 「一般的な」ブートの場合、/EFI/boot
が必要です bootx64.efi
のルートのディレクトリ 初期化。
» grubx64.efi
をコピーする人もいます インストールされた場所から /EFI/boot/bootx64.efi
まで そして、このチートは彼らのために働きました。
» grub に変更を加えるときはいつでも efibootmgr -v
を使用してください 再起動が問題ないことを確認する前後に。
私の RD430 体験
これを整理してサーバーをセットアップしようとして、この 1 週間で OS を 10 回以上再インストールしました。私の構成は、LMDE がインストールされた PCIe 2.0 スロットのこの RAID コントローラーの SSD です。 AOC-S3008L-L8i RAID コントローラー (IT モードに再フラッシュ) は、6x 3TB ドライブを備えた 2 番目の PCIe 3.0 スロットにあります。 RAM:12GB ECC (3x 4GB)。
システムが起動しない原因となった変更を次に示します。
» S3008L-L8i の PCI スロットを変更します (SSD とカードはそのままにしておきます)。
» オンボード コントローラーの LSi ソフトウェア RAID BIOS プロンプトを無効にします。
» 古い HighPoint RocketRaid カードを開いている PCIe スロットに追加します。
» /etc/default/grub
に変更を加える そして update-grub
を実行します .
(おそらく grub-install
も実行する必要がありますか? )