0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kexecでUbuntu24.04環境でデュアルブート再起動せずに切り替える方法

Posted at

はじめに

こんにちは、しゅんです。

新年入ってかなり気合入っています。実は自分のリアルのことで色々と現実逃避しているだけです。
今回は、Ubuntu環境でkexecを利用してデュアルブート構成のOSを切り替える方法を解説します!この記事は、デュアルブートを利用している方に向けた内容で、OSを切り替える手間を軽減したい場合に役立つ手法です。

それと!windowsはすでに半年くらい前に消しました。
自分の環境は
SSD01ubuntu24.04
SSD02ubutu22.04

注意: この方法では、システムに問題が発生した場合の保証はできません。データ損失やOSの破損などのリスクを理解した上で、自己責任でお試しください。

実現したいこと

Ubuntu 24.0422.04がインストールされたデュアルブート環境で、再起動を伴わずにOSを切り替えます。

通常、OSを切り替える際には再起動してGRUBメニューから選択しますが、kexecを利用すると高速にカーネルを切り替えることが可能です。

必要な準備

以下の環境を前提としています:

現在の環境: Ubuntu 24.04

切り替え先: Ubuntu 22.04

ストレージ構成:
この辺は自分の環境に合わせてください

Ubuntu 24.04: /dev/nvme0n1

Ubuntu 22.04: /dev/nvme1n1p4

以下の手順を実行する前に、データのバックアップをおすすめします。

kexecを使ったOS切り替え手順

1. kexec-toolsのインストール

まず、kexec-toolsをインストールします:

sudo apt update
sudo apt install kexec-tools

2. 切り替え先カーネルの確認

Ubuntu 22.04のブートディレクトリにアクセスして、カーネルイメージとinitrdファイルを確認します。

ls /media/syun/782fb4f7-ccc5-467a-8b56-356b23da8f52/boot

出力例:

syun@syun:~$ ls /media/syun/782fb4f7-ccc5-467a-8b56-356b23da8f52/boot
System.map-5.15.0-43-generic  initrd.img.old
System.map-6.8.0-49-generic   memtest86+.bin
config-5.15.0-43-generic      memtest86+.elf
config-6.8.0-49-generic       memtest86+_multiboot.bin
efi                           vmlinuz
grub                          vmlinuz-5.15.0-43-generic
initrd.img                    vmlinuz-6.8.0-49-generic
initrd.img-5.15.0-43-generic  vmlinuz.old
initrd.img-6.8.0-49-generic
syun@syun:~$ 

この場合、以下のファイルを使用します:

  • カーネル: vmlinuz-6.8.0-49-generic
  • initrd: initrd.img-6.8.0-49-generic

3. kexecでカーネルをロード

ロードの前に念の為に起動してたソフトなどのデータを保存する

Ubuntu 22.04のカーネルをロードします:

sudo kexec -l /media/syun/782fb4f7-ccc5-467a-8b56-356b23da8f52/boot/vmlinuz-6.8.0-49-generic \
    --initrd=/media/syun/782fb4f7-ccc5-467a-8b56-356b23da8f52/boot/initrd.img-6.8.0-49-generic \
    --append="root=/dev/nvme1n1p4 ro quiet splash"

4. kexecでカーネルを起動

ロードが成功したら、以下のコマンドで新しいカーネルを起動します:

sudo kexec -e

すぐ起動する。失敗したら強制シャットダウンするしかないらしい。
この操作で、Ubuntu 22.04が起動します。

注意事項

  • 復旧手段を用意する: 問題が発生した場合に備え、ライブUSBなどでシステムを復旧できる状態を整えておきましょう。
  • ファイルシステムの整合性: 切り替え前に必ずディスクの整合性を確認してください。
  • サポート外の動作: kexecは特殊なツールであり、すべてのハードウェアや環境で完全に動作するわけではありません。

Ubuntu 24.04に戻るには

1. Ubuntu 22.04で再起動

Ubuntu 22.04上で以下を実行して再起動します:

sudo reboot

2. GRUBメニューで選択

再起動後、GRUBメニューからUbuntu 24.04を選択して起動します。

こういう感じです

おわりに

kexecを利用した高速なOS切り替え方法をご紹介しました。この手法は便利ですが、リスクも伴いますので、慎重に試してください。デュアルブート環境をより効率的に活用したい方にとって役立つ内容になれば幸いです。

最後まで読んでいただきありがとうございました!

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?