LoginSignup
1
1

ライブUSBでUbuntu18.04.5LTSのインストール時にgrubエラーで失敗する.

Last updated at Posted at 2021-08-13

はじめに

やっと動いたのでまた遭遇した時のために残しておきます.
参考サイト様のまとめなので,そちらも読んでいただけると幸いです.

環境

入れたいOS : Ubuntu18.04.5LTS
ライブUSB:Verbatim16GB

PC(3台)

  • cpu : intel core-i5
  • ram : 8~16GB
  • storage :HDD 500~1,000GB
  • 有線マウス,キーボード(なんでもok)

遭遇したエラー

2種類

  • executing grub-install /dev/sda failed
  • The 'grub-efi-amd64-signed' package failed to install target/

状況

ライブUSBからUbuntuを起動して,パッケージのインストールを始めたが,
上記のエラーが発生しインストールが終了しない.
何回やり直してもエラーで止まってしまう.

解決案

このエラーを見ると,
grubっていうUbuntuの起動をしてくれるプログラムがインストールできないよ!
grub-efi-~~ってどこに入れるの?って状態です.

→ ブートローダー(grub)以外を先にインストールして,後にブートローダーを入れる!

インストール内容

Install

  • Normal Installation
  • Install Third-Party software for graphics and wi-fi hardware and additional media formats
  • Erase Ubuntu 18.04.5 LTS and reinstall(Erase disk install Ubuntuでも大丈夫です.)

Language:English
Keyboard Layouts:Japanese
Time_zone(where are you?):Tokyo

##解決手順

①Ubuntuのブートローダー(grub)以外のインストール
②ライブUSBにマウント
③ブートローダー(grub)のインストール
----再起動してgrubに入る場合----
④grubでnormal起動
---normalで起動しない場合---
⑤grubでboot起動

では,1つずつやっていきます.

①Ubuntuのインストール

ライブUSBからUbuntuを起動してください.
画面左上のActivitiesからTerminalを起動して,以下の文を実行してください.

sudo ubiquity -b

これで,見慣れたUbuntuのインストール画面が出てきます.
普段通りに進めて大丈夫です.
インストールの際に,

  • Erase Disk(ディスク全て消去)
  • Reinstall(中にUbuntu入ってるけど入れ直す)
    のどちらでも大丈夫です.

インストール後
Installation Complete が出てきたら
Countinue Testingをクリックしてください.
(Restart Nowの方をクリックするとまた最初からです.)

②ライブUSBにマウント

ここまでいったら,
ライブUSBの/mnt に Ubuntuがインストールされたディスク(パーティション)をマウントします.

私の環境では,

  • Ubuntu(中身)のディスク(パーティション): /dev/sda2
  • EFI(起動ディスクなどの説明書)のディスク(パーティション): /dev/sda1
    となっていました.
    どれがどれかわからない場合には, Activities → GPartedで確認できます.
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done

③ブートローダー(grub)のインスト-ル

sudo modprobe efivars

grubを入れ直す.

sudo apt-get install --reinstall grub-efi-amd64-signed
sudo grub-install --no-nvram --root-directory=/mnt

rootに入って,grubをアップデートします.

sudo chroot /mnt
update-grub

引き続きrootでコマンドを実行します.

cd /boot/efi/EFI
cp -R ubuntu/* BOOT/
cd BOOT
cp grubx64.efi bootx64.efi

以上ができれば,再起動してください.
(terminalで完結させる場合には,Ctrl+Dでrootから抜けた後にsudo rebootで再起動してください.)

また,再起動の時にライブUSBも抜いておくと,正常に動作しているか確認が楽です.

④grubに行く場合(Normalで起動)

grubに行ってしまうのは,どこに起動スクリプトがあるのかPC側が認識できていない状態です.
以下では,どこに起動スクリプトがあるか指定し,起動しています.

set prefix=(hd0,gpt2)/boot/grub
set root=(hd0,gpt2)
insmod normal
normal 

4行目のnormalで勝手に起動すると思います.

起動した場合には,Terminalで

sudo update-grub

を実行して,起動スクリプトがどこにあるのか記憶させてあげます.

起動しなかった場合には,以下の文をterminalで記入してください.

⑤normalで起動しない場合(bootで起動)

引き続きgrub上で,以下を実行してください.

insmod linux
linux /vmlinuz root=/dev/sda2
initrd /initrd.img
boot

bootでubuntuが起動します.
起動後Terminalで⑤のコマンドを記入して実行してください.

sudo update-grub

これで,毎回起動時にgrubに入ることなくUbuntuを起動できたと思います.
再起動などを行なって,grubに入らないか確認をお願いします.

最後に

基本は②のマウント,ブートローダーのインストールの段階で動いたのですが,
grubに入ってしまう場合があったので,迷宮入りしかけました.

誰かのお役になれば幸いです.

参考サイト様

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1