このコンピューターを購入し、Ubuntuをインストールしたかった。問題は、私が3週間以上失敗したことです。コンピューターには、非常に限られた機能のUEFIが付属しています。 legacyに切り替えることはできず、オプションはありません実行のために信頼されるUEFIファイルを選択します。できることは、有効化/無効化セキュアブートだけです。
次に問題について。最初にUbuntuを自動モードでインストールしてから、他の何かで手動パーティション分割を試みました。どちらの場合も、grub2を/ dev/sdaにインストールするとインストールがクラッシュし、コンピューターがハングします。
次に、ubiquity -bを使用してブートローダーなしでインストールすることにしました。これはうまく機能し、インストールは問題なく完了しました。最後に、grub-installを使用してブートローダーを手動でインストールしようとしました。そして、ここで私は同じポイントに来ます-コンピューターがハングします。
そのため、問題はefibootmgrがUEFIに新しいエントリを登録しようとするときです。また、これを実行して確認しました:
_Sudo efibootmgr -c -d /dev/sda -p 1 -w -L ubuntu_
その後、再びハングします。
それを機能させる方法は次のとおりです。
ブートローダーなしでUbuntuをインストールし、UEFIに新しいエントリを登録せずにブートローダーを手動でインストールし、ブートローダーを/ EFI/ubuntu /から/ EFI/BOOT /そして名前をbootx64.efiに変更します。その後、私はそれがうまくいくとほぼ確信しています。
誰でも次の方法についてアドバイスできますか?
grub-installを実行し、efibootmgrで新しいUEFIエントリを登録しようとしないそれが通過し、コンピューターをフリーズさせないことを?
/ EFI/ubuntu /のコピー元ファイル/ EFI/BOOTどの名前をbootx64.efiに変更する必要がありますか?
これが良い方法でない場合、より良い解決策は何でしょう。
アドバイスをありがとう。
この問題は次のように解決できます。
Ubuntu Live DVD/USBをテストモードで起動し、ターミナルを開きます
ブートローダーをインストールせずにインストールプロセスを実行するには:
Sudo ubiquity -b
押す Continue testing インストールが終了した後。
/mnt
に新しくインストールしたファイルシステムをマウントします。
Sudo mount /dev/sda2 /mnt
Sudo mkdir /mnt/boot/efi
Sudo mount /dev/sda1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys; do Sudo mount -B $i /mnt$i; done
(sda2
はルートパーティション、sda1
はEFIシステムパーティションです)
次の方法でefivarsをロードします。
Sudo modprobe efivars
64ビットバージョンのgrub-install
を再インストールします
Sudo apt-get install --reinstall grub-efi-AMD64
Sudo grub-install --no-nvram --root-directory=/mnt
ルートを/mnt
に変更し、grubを更新します
Sudo chroot /mnt
Sudo update-grub
インストールされたブートローダーの移動と名前変更
cd /boot/efi/EFI
Sudo cp -R ubuntu/* BOOT/
cd BOOT
Sudo cp grubx64.efi bootx64.efi
システムを再起動します。
詳細はこちらをご覧ください:
まず、説明されているように、問題に関するバグレポートを提出することを強くお勧めします こちら これが肯定的な結果を生み出す保証はありませんが、バグレポートがなければ、開発者が問題を修正する可能性は非常に低いです。
次に、次のコマンドを手動で使用してGRUBをファームウェアに登録しようとしたと言いました。
Sudo efibootmgr -c -d /dev/sda -p 1 -w -L ubuntu
ただし、このコマンドには、重要なパラメーター-l {filename}
がありません。また、-w
を必須オプションとして見たことがないため、おそらく削除する必要があります。合計すると、コマンドは次のようになります。
Sudo efibootmgr -c -d /dev/sda -p 1 -L ubuntu -l \\EFI\\ubuntu\\grubx64.efi
grubx64.efi
ファイルがインストールされていることが確実で、セキュアブートをアクティブにして起動できるようにする場合は、shimx64.efi
をshimx64.efi
に変更します。メインOSのインストールがフリーズしていることを考えると、この変更がまったく役立つとは思いませんが、試してみる価値はあります。
残りについては、--no-nvram
のgrub-install
オプションは、efibootmgr
を介してNVRAM変数を更新しようとするのを防ぐはずです。このオプションはman
ページには記載されていませんが、有効なオプションだと思います。
LinuxのEFIブートローダーに関する私のページ および特に ブートローダーのインストール方法に関するサブページ を参照することもできます。これらは、「これらの操作のナットとボルト」が続行されます。ブートローダーとしてGRUB 2以外のものを使用することもできます。
デフォルトのファイル名を使用して起動するには、/boot/efi/EFI/ubuntu
をすべて/boot/efi/EFI/BOOT
にコピーし、そのディレクトリ内でgrubx64.efi
をbootx64.efi
に名前変更する必要があります。または、代替ファイル名を使用して別のものをインストールすることもできます。これに関する1つの大きな注意点は、コンピューターが既にWindows(または他のOS)を起動している場合、これが機能しない可能性があることです。その場合、WindowsブートローダーをGRUB 2(または使用するもの)に置き換えて、Windowsブートローダーを別の場所に移動することにより、「ハイジャック」する必要があります。
Sladek90の説明とRod Smithの優れたWebサイトで説明されているように、デフォルト(Windows)ブートローダーをハイジャックすることで、Acer ES1-533にLinuxをインストールして起動できます。ただし、その必要はありません。
より良い方法は、LinuxをインストールすることですNVRAMへの書き込みなし。efibootmgrによる書き込み(ほぼすべてのディストリビューションが行う)がシステムをフリーズするためです(読み取りのみ可能)。
解決策は、rEFIndライブシステム(USBスティックなど)を使用して起動し、UEFIシェルを開き、bcfgを使用して必要なUEFIエントリを生成するの例です。
bcfg boot add 2 fs0:\EFI\ubuntu\grubx64.efi "GRUB Loader"
これにより、GRUBのブートエントリがposに追加されます。 2.再起動してF12を押すと、GRUB(そしてUbuntu)を起動するか、Windowsを起動するかを選択できます!