バイオスのアップデートに成功した後、何かがおかしくなったと、黒い画面の左上にカーソルが点滅する状態になってしまいました。エラーも何もありません。バイオスは通常のUEFI ubuntu
の代わりに SATA: <disc name>
のブートオプションだけをリストアップしました。私はGPTパーティショニングスキームを使用しています
結局、grub-efi-amd64
を適切に再インストールすることで解決することがわかりました。では、どのようにすればいいのでしょうか?
PS: 実は、自力でGRUB2 EFIの再インストールに成功したのですが、これに関する完全なハウツーが見つからなかったので、ここに回答を掲載します
57 Maxime R. 2012-01-09
ライブUSB/CDを使ってUEFIモードでコンピュータを起動します。2つのブートオプション
<flash_drive>
とUEFI: <flash_drive>
があり、2つ目はefibootmgr
が後で失敗しないように/sys/firmware/efi/
でefi変数を公開するために必要です。最初のオプションで起動すると、以下のようなエラーが出ますFatal: Couldn't open either sysfs or procfs directories for accessing EFI variables. Try 'modprobe efivars' as root.
modprobe efivars
は私のために動作しませんでした壊れたシステムにchrootします(ubuntu grub2 helpに似ていますが、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のディストリビューションに応じて、あなたは異なることをするようになりました
For Ubuntu/Debian:
apt-get install --reinstall grub-efi-amd64
or alternatively:
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 パーティションを作成して、ファイルをコピーし、再起動すれば完了です)
90 Maxime R. 2012-01-09
最初の方法の潜在的な単純化として、ライブCDのgrubのみを使用して、ハードディスク上のシステムに直接起動することが可能です。xubuntu 13.10のライブCDを使ってxubuntu 13.10でテストしました
BIOSでSecure Bootが無効になっていることを確認してください。ライブCDを挿入し、UEFI経由で起動します。CD の GRUB メニューが表示されます。 c」を押してコマンドラインに移動します
configfile (hd0,gpt1)/EFI/ubuntu/grub.cfg
別の EFI システムパーティションを使用している場合は、上記の grub コマンドを適用してください
システムがハードディスクから起動した後、EFI システムパーティションに grub を再インストールし、grub-install でファームウェアに登録すれば十分です
sudo grub-install
8 None 2014-02-24
Maxineと同様に、BIOSでUEFIの設定が破損してマシンが起動しないことがわかりました
私の場合は、Linux Mint Debianを搭載したLenovo ThinkServer RD430なのですが、update-grubやサーバーのハードドライブを変更しても起動しないようでした。私の場合のOSはlinuxmint-201403-mate-dvd-64bitをUSB経由でインストールしています。(UEFI が動作しない原因となるイベントの完全な説明は以下を参照してください)
ThinkServer TS140で全く同じ手順を踏んでも、UEFIは一度も気が狂うことはありませんでした。RD430のドライバページを見てみると、私のBIOSは2つのバージョンが古い。私は以前にマザーボードの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
コマンドで0000
と0002
の2つのエントリが追加されました! ブート順の最初の Boot0002* Linux HD
エントリは正しくありません。 0000
のエントリは正しいです
これをテストするために、0002
のエントリである0002
を中断せずに起動してみました。予想通り、うまくいきませんでした。そこで、サーバを再起動して F12 を押し、linuxmint
を選択しました。期待通り、LMDE インストールで起動しました
efibootmgr経由で不要なエントリを削除する方法は、以下の通りです
# efibootmgr -b 2 -B
このコマンドを使って、エントリ 0001
と 0002
を削除しました。オプション 0001
は、OS を回復するために何度も試みた中で最後のものでした
UEFI notes
もしあなたがこれを読んでいて、私と同じように 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回以上も再インストールして、サーバのセットアップをしました。私の構成は、このRAIDコントローラにSSDを搭載し、PCIe 2.0スロットにLMDEをインストールしています。AOC-S3008L-L8i RAIDコントローラ(ITモードにリフラッシュ)を6台の3TBドライブを搭載した2番目のPCIe 3.0スロットに搭載。RAM: 12GB ECC (4GB×3)
システムが起動しない原因となった変更点は以下の通りです。 “S3008L-L8i pci スロットを変更します。 “オンボードコントローラのLSiソフトウェアRAIDバイオスプロンプトを無効にする。 “古いHighPoint RocketRaidカードをPCIeスロットに追加。 ” /etc/default/grub
に変更してからupdate-grub
を実行。(grub-install
も実行する必要があるかも?)
5 Chris K 2014-03-20
私はこれに投票するだろうが、どうやら私はSuperUserに十分な支持を持っていないようだ。何日もクローンと戦ってきて、やっと答えが見つかって嬉しいです。私はそれがすべてUEFIとある種の「安全な起動」メカニズムか何かに関係していると思います
オフラインで作業しているので、apt-getは選択肢にありませんでした。何をしたかというと、Ubuntu DesktopをUSBスティックに入れて、USBスティックのルートにgrub-efi
とgrub-efi-amd64
のパッケージを追加し(Ubuntu 11.04の場合はgrub-efi_1.99~rc1-13ubuntu3_amd64.debとgrub-efi-amd64_1.99~rc1-13ubuntu3_amd64.deb – ディストロやアーキテクチャに合わせて適宜変更)、USBスティック上のスクリプトに以下のように入れています
#! /bin/bash
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
dir=`dirname $0`
sudo cp $dir/grub-efi*.deb /mnt/tmp
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt /bin/sh -c "dpkg -i /tmp/grub-efi*.deb"
sudo shutdown -r now
Live USBスティックを起動して、ターミナルを開き、コマンドを実行すれば、仕事はうまくいきます!唯一の時折の問題は、UEFIがHDDの下のブート優先順位の下に移動してしまうことがあることです
dpkg -i
の代わりに dpkg-reconfigure
を使うこともできますが、ブートローダの質問がいくつか出てきます
編集] 私もコメントするほどのリプライがないので、リプライのコメントだと思っていたものがリプライになってしまいました
3 IBBoard 2012-03-01
Lenovo Yoga 2 Proの32bit Ubuntu 14.10では、こんな感じでUEFIブートに変更しました
create folder
sudo su mkdir /boot/efi
/etc/fstab
に “EFI System “パーティションをマウントしますfdisk -l|grep EFI
と表示されました。
/dev/sda2 2050048 2582527 532480 260M EFI System
echo "/dev/sda2 /boot/efi vfat defaults,sync 0 0">>/etc/fstab
そのパーティションをマウントします
mount /boot/efi
grub-efi-amd64-bin
をインストールし、grub-efi-ia32-bin
をアンインストールしますaptitude install grub-efi-amd64-bin grub-efi-ia32-bin_ grub-install --target=x86_64-efi
efiモードでUbuntuを再起動します
update-grub
正常に起動するかテストして、
grub-efi-amd64
をインストールし、grub-pc grub-gfxpayload-lists
をアンインストールしてみましたaptitude install grub-efi-amd64 grub-pc_ grub-gfxpayload-lists_
私は聞かれたら/bootを削除しないことにしています
もしかしたら、私が複雑にしたことで、これがうまくいったのかもしれません
apt-get install --reinstall grub-efi
update-grub
1 rubo77 2015-01-21
このエントリは、どちらかというと efi エントリを再インストールするためにコンピュータを準備するという内容に沿ったものです。また、内部メディア (SSD, HDD) にシステムをインストールした後にレスキューディスクを作成するための効果的で簡単な方法を紹介しています
Linux Mint Tara (Ubuntu Bionic Beaverと密接に関連したLinuxの変種)では、この方法は私のインストールを停止させ、後でそれを保存することを可能にしました。これは、USBに永続性を持たせたいと思っていたことから生まれたもので、永続的なインストールのためにUnetbootinのようなユーティリティをインストールする時間は、新鮮なインストールとほぼ同じなので、私は単に内蔵SSDにOSをインストールするために使用されたのと同じライブディストリビューションをUSBにインストールするために使用しました
もちろん、これは RAID やその他の特殊な設定ではありませんが、USB ドライブ上にボリュームパーティションを用意し、その USB 上にディストロの利用可能な方法でインストールを行い、内部ドライブを回避して単一パーティションのルート (/) マウントにインストールする必要がありました
ここで新しい grub のインストールが内蔵ドライブに絡んできました。USBに再起動すると、BIOSメニューのエントリを使ってドライブを選択しようとすると、内蔵UEFIのgrubエントリが消えているようで、grubメニューだけが残っていました
代わりに USB から起動すると、ディストロの方法は /dev/sda2、/boot/efi マウントを含むパーティションのリストを持つ既製の grub メニューを生成していることがわかりました。ほとんどのプライマリ内蔵ドライブでは、パーティションの grub 名は hd0, gpt1 です
advanced」に入ると、複数のカーネルレスキューが用意されていました。そこからgrubユーティリティを実行して普通に起動
ここからは、今までアクセスできなかった内蔵ドライブにOSを実行し、USBを抜いてsudo grub-install
を実行します
USBを入れずに再起動すると、また入ってくるはずです。この時点でUSBは内蔵ドライブをノーマルモードまたはレスキューモードに起動するように設定されており、ドライブには独自のメニューが用意されています
0 Tim Pozza 2018-08-08