マルチブート構成
前回までで、2つのOSを同居させて片方だけはEFIブートローダーから起動している。デュアルブートのもう一方は、EFIから起動したDebianのGrubから起動される。という構成が出来ている。
ここでは、続きをおこなって、マルチブートで両方ともに、EFIパーティションに登録してEFIブートするように変えておく。
レベル4 EFIブートを書き換える。
システムのインストールの状況
ここまでで、EFIパーティションでDebianのGRUBメニュからUbuntuを起動している。
Ubuntuが起動した状態を確認する
EFIは使ってない。
Debianが起動した状態を確認する。
EFIがあることがわかる。
ここでの目標
EFI未登録のUbuntuを起動し、Ubuntu自身にEFI登録させる。
ubunuで起動して
efiインストーラーを導入
sudo apt install grub-efi-amd64
EFIパーティションをマウント
sudo mkdir /boot/efi sudo mount /dev/vda1 /boot/efi
EFIへUbuntuブートローダーをインストール
sudo grub-install --target=x86_64-efi
インストール出来たか確認
EFIにインストール出来たか確認
takuya@ubuntu:~$ efibootmgr BootCurrent: 0001 Timeout: 0 seconds BootOrder: 0004,0001,0002,0000,0003 Boot0000* UiApp Boot0001* debian Boot0002* UEFI Misc Device Boot0003* EFI Internal Shell Boot0004* ubuntu
再起動時にEFIパーティションマウントさせる
このままでは、再起動したときに /boot/efi
が見えなくなるので再起動後も維持するようにします。
echo "/dev/vda1 /boot/efi vfat umask=0077 0 1" | sudo tee -a /etc/fstab
EFIブート順を変更する
takuya@ubuntu:~$ sudo efibootmgr -o 0004,0001 BootCurrent: 0001 Timeout: 0 seconds BootOrder: 0004,0001 Boot0000* UiApp Boot0001* debian Boot0002* UEFI Misc Device Boot0003* EFI Internal Shell Boot0004* ubuntu
再起動する
sudo reboot
再起動のGRUBメニュー
UbuntuのEFIブートローダーからUbuntuのGRUBメニューが起動する
まとめ
順番を意識すると間違えない。 EFIー>GRUBー>OS起動
EFI自身にマルチブートの機能があり、GRUBメニューにもマルチブートの機能がある。
EFIがDebianのGRUBメニューを起動し、GRUBメニューからUbuntuを起動することが出来る。
EFIがUbuntuを起動して、GRUBメニューからUbuntuが起動できる。
そして、ブートローダーを作るだけなので、OSをインストールをしなくても大丈夫。
OSを丸々コピーしてデュアルブートを作れることがわかった。
その他の方法
Mountしてchrootでも同じです。
sudo mount /dev/mapper/vg0-ubuntu /mnt sudo mount /dev/vdb1 /mnt/boot/efi sudo mount -t proc proc /mnt/proc/ sudo mount -t sysfs sys /mnt/sys/ sudo mount -o bind /dev /mnt/dev/ sudo mount -t devpts pts /mnt/dev/pts/ chroot /mnt
root#chrooted $ sudo grub-install --target=x86_64-efi