最近、linuxのライブUSBが起動できないことが、頻繁にありました。
事象としては、ライブUSBを起動すると以下のメッセージが表示されて、POWER OFFされます。
「set_second_stage() failed: Invalid parameter」
発生するディストリビューションと原因および対策を示します。
では、ご覧ください。
あぁ〜俺 写っちゃってるよ。。
試した低スペックPC
試したパソコンのスペックを示します。
- CPU: AMD 1.2〜2.6GHz
- メモリ: 4G
本プログもこの環境で作成しています。
この低スペックパソコンに興味のある方は、以下の記事を参照してみてください。
問題のディストリビューション
本問題が発生するディストリビューションは、以下になります。
- debian 11.0(bullseye)64bit
- 上記の派生ディストリビューション
32bitは、確認していません。失礼。。。
原因と対策
問題の原因は、debianにあります。
bullseyeのバグですかね。。。
で、対策ですが、以下のファイルを差し替えます。
isoの「EFI/BOOT/bootx64.efi」を
debian 10(buster)のものに差し替えです。
busterベースのディストリビューションでも構いません。
と書きましたが、ちょっと面倒だったので
手順を示しておきます。
まず、手順の概要から。
- ①busterのisoからbootx64.efiを抽出
- ②bullseyeのisoのbootx64.efiを削除
- ③bullseyeのisoにbusterのbootx64.efiを追加
手順の詳細です。
①busterのisoからbootx64.efiを抽出
debian 10(buster)または、busterベースのディストリから
bootx64.efiを抽出します。
どんな方法でも構いません。
私は、ツールを使わないで実施しました。
- busterベースのq4os-3.15-x64.r1.isoをダウンロード
- USBにisoを焼く
- USBの「EFI/BOOT/bootx64.efi」をコピー
②bullseyeのisoのbootx64.efiを削除
この作業は、AnyBurnというツールを使いました。
Windowsでの作業となります。
ダウンロードしてインストールしてください。
次に日本語化を実施します。
AnyBurn 日本語化ファイル ダウンロードからダウンロードします。
「Any_Burn52_Jp01.zip」がダウンロードされるので解凍します。
解凍してできた「Japanese.ini」を以下に置きます。
C:\Program Files\AnyBurn\Lang
ここまでできたら、AnyBurnを起動します。
では、日本語化します。
「Option」-「Language」-「Japanese(日本語)」を実施します。
日本語化できました。
やっと本作業です。
AnyBurnの「イメージファイルの編集」を選びます。
対象isoファイルを指定して、読み込んでください。
今回は、bullseyeベースのMX Linux(MX-21_KDE_beta2_x64.iso)を
使用しています。
そうしたら、「EFI」-「BOOT」と辿って行きます。
「BOOTx64.efi」が表示されるので、選んで「削除」ボタンを押します。
「はい」を押して、削除できます。
③bullseyeのisoにbusterのbootx64.efiを追加
bootx64.efiの削除ができたら追加は簡単です。
bootx64.efiの表示画面で「追加」ボタンを押して
busterのisoから抽出したbootx64.efiを取り込んでください。
あとは、「次へ」を押せば、isoファイルが作成されます。
isoファイルをUSBに焼けば、起動できるようになります。
ちなみに以下の3ファイルは、起動確認済みです。
- debian-11.0.0-amd64-netinst.iso
- antiX-21-b2_x64-full.iso
- MX-21_KDE_beta2_x64.iso
これで、bullseyeベースのディストリで遊ぶことができます。
よしっ!
※2022.8.24
ventoy というソフトを使えば
set_second_stageのエラーを
回避できることが判明しました。
ventoy とは、初期設定をすると
img や iso をUSBにコピーするだけで
ブータブルUSBが作成できるソフトです。
以下のページに詳しく記載されていますので
同じエラーが発生する場合は、試して見てください。