はじめに
やっと動いたのでまた遭遇した時のために残しておきます.
参考サイト様のまとめなので,そちらも読んでいただけると幸いです.
環境
入れたい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に入ってしまう場合があったので,迷宮入りしかけました.
誰かのお役になれば幸いです.
参考サイト様