bootシステムがdefでEFIだったので、eliloを試した

当面はレガシーbootを使って起動するので問題ないが、いづれは移行しないといけないので
eliloを試してみた。

Slack-15.0のUSB-bootイメージで起動して、SSDをHDDにコピーして、ベースのSlack-15.0 https://seesaawiki.jp/lifewithslackzaurus_15_0/d/%a4%b3%a4%b3%a4%de%a4%c7%a4%f2%a5%b3%a5%f3%a5%c6%a5%ca%a4%ce%a5%d9%a1%bc%a5%b9%a4%cb%a4%b9%a4%eb
をパーティションを追加してそこに入れた。
$ sudo fdisk -l /dev/sdb
ディスク /dev/sdb: 698.64 GiB, 750156374016 バイト, 1465149168 セクタ
ディスク型式: –
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: –
\
デバイス 開始位置 終了位置 セクタ サイズ タイプ
/dev/sdb1 2048 206847 204800 100M EFI システム
/dev/sdb2 206848 239615 32768 16M Microsoft 予約領域
/dev/sdb3 239616 498792447 498552832 237.7G Microsoft 基本データ
/dev/sdb4 498792448 500115455 1323008 646M Windows リカバリ環境
/dev/sdb5 500115456 510601215 10485760 5G Linux ファイルシステム
/dev/sdb6 510601216 1465149134 954547919 455.2G Linux ファイルシステム

HDDをPCに入れて、Slack-15.0のUSB-bootイメージで起動して、HDDをmountして、chrootして、
procをmountして、
# installpkg /mnt2/slackware64/a/elilo-3.16-x86_64-12.txz

eliloって言うくらいだから、lilo.confをelilo.confにコピーしてeliloってやるのかと
思ったら、eliloがない。何故か/bootの下にWin用のバイナリがある。
# ls -l /boot/*elilo*
\-rwxr-xr-x 1 root root 216219 6月 13 2018 /boot/elilo-ia32.efi
\-rwxr-xr-x 1 root root 238531 6月 13 2018 /boot/elilo-x86_64.efi
# file /boot/elilo-x86_64.efi
/boot/elilo-x86_64.efi: PE32+ executable (EFI application) x86-64 (stripped to external PDB), for MS Windows

それで、elilo slackware、でググって見てみた。動かし方は何となく分かったが、ここのは
どうやらLinuxの単独起動でありWinとのデュアルブートではないようだ。
https://slackware.jp/install/6-configurations.html
http://note.kurodigi.com/slackware141-uefi-install/

add linux boot entry windows、でググった:
https://learn.microsoft.com/ja-jp/windows-hardware/drivers/devtest/adding-boot-entries
https://superuser.com/questions/1471937/how-can-i-add-a-bcd-boot-entry-for-linux-in-windows-boot-manager-in-efi
方法その1:
Slack-15# mount -t vfat /dev/sda1 /mnt2
Slack-15# ls -l /mnt2/EFI/
total 2
drwxr-xr-x 2 root root 1024 Feb 17 2022 Boot
drwxr-xr-x 4 root root 1024 Feb 17 2022 Microsoft
Slack-15# cp -a -i /boot/elilo-x86_64.efi /mnt2/EFI/Boot/
Slack-15# cp -a -i /etc/lilo.conf /mnt2/EFI/Boot/elilo.conf
起動時BIOSメニューから、
UEFI menu > Boot Device Options > Boot From EFI File… > Select elilo-x86_64.efi
設定して起動してみると、
ELILO boot: ………………………………………………………
…………………………………………………………………
………………………………………………………
となっていつまで経っても起動しない。やっぱeliloconfigを使わないとダメか。
# vi /usr/sbin/eliloconfig
This script installs the elilo boot loader, the kernel, and optionally
an initrd into the EFI System Partition. A boot menu entry can also be
installed using efibootmgr.
こういうメニューになるのか? https://kledgeb.blogspot.com/2015/11/efibootmgr-1-uefiuefi.html
The EFI System Partition is expected to be mounted on /boot/efi before
running this script.
# installpkg /mnt2/slackware64/a/efibootmgr-20191011_e8ce9fe-x86_64-4.txz
# installpkg /mnt2/slackware64/a/efivar-20201015_cff88dd-x86_64-1.txz
# installpkg /mnt2/slackware64/l/gnu-efi-3.0.14-x86_64-1.txz
(ls -l /mnt2/slackware64/*/*efi*.txz で引っかかったヤツは全部入れた)
$ grep -E ‘bin|lib’ /var/log/packages/efibootmgr-20191011_e8ce9fe-x86_64-4 | sed s@^@/@ | xargs ldd | grep found
$ grep -E ‘bin|lib’ /var/log/packages/efivar-20201015_cff88dd-x86_64-1 | sed s@^@/@ | xargs ldd | grep found
$ grep -E ‘bin|lib’ /var/log/packages/gnu-efi-3.0.14-x86_64-1 | sed s@^@/@ | xargs ldd | grep found
(依存libの不足はなかった)
が、USBからレガシーbootするとefibootmgrは使えないようだ。あと、同じPCでメモしながら
イロイロと試すのは、ディスク入れ替えがメンドクサイ。elilo-x86_64.efiの代わりにvmlinuz
でもロードするようなので、とりあえずmountする”/”を固定したカーネルをmakeして
https://seesaawiki.jp/lifewithslackzaurus_15_0/d/%2econfig%20%28linux%2d5%2e15%2e19%20%cd%d1%29
それで起動してメモしながらイロイロと試すことにした。
\
今までのWeb系ソフト練習用システムを/dev/sda9に入れて、そこを”/”としてmountするkernelをmake
して、起動してefibootmgrを実行した。
$ cat /proc/modules | grep efi
efivarfs 16384 1 – Live 0x0000000000000000
$ sudo efibootmgr
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0002,0009,0004,0006,0005,0007,0008
Boot0000* Windows Boot Manager HD(1,GPT,417a77a8-c2d1-4141-abc2-47dace02eed8,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS………x…B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}…d………….…
Boot0001* Windows Boot Manager HD(1,GPT,417a77a8-c2d1-4141-abc2-47dace02eed8,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS………x…B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}…d………….…
Boot0002* Slackware PciRoot(0x0)/Pci(0x1f,0x2)/EDD10(0x2a010480)/HD(1,GPT,417a77a8-c2d1-4141-abc2-47dace02eed8,0x800,0x32000)/File(\EFI\Boot\vmlinuz-sda9)
Boot0004* Diskette Drive BBS(Floppy,Diskette Drive,0x0)..BO
Boot0005* Internal HDD BBS(HD,P1: WDC WD7500BPVT-26HXZT3,0x0)..BO
Boot0006* USB Storage Device BBS(USB,USB Storage Device,0x0)..BO
Boot0007* CD/DVD/CD-RW Drive BBS(CDROM,CD/DVD/CD-RW Drive,0x0)..BO
Boot0008* Onboard NIC BBS(Network,IBA GE Slot 00C8 v1550,0x0)..BO
Boot0009* UEFI: Hard Drive PciRoot(0x0)/Pci(0x1f,0x2)/EDD10(0x2a010480)/HD(1,GPT,417a77a8-c2d1-4141-abc2-47dace02eed8,0x800,0x32000)..BO
\
参考:https://kledgeb.blogspot.com/2015/11/efibootmgr-2-uefi.html
$ sudo efibootmgr -c -d /dev/sda -p 1 -l “\\EFI\\Boot\\elilo-x86_64.efi” -L “Slackware2″
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0003,0002,0009,0004,0006,0005,0007,0008
Boot0000* Windows Boot Manager HD(1,GPT,417a77a8-c2d1-4141-abc2-47dace02eed8,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS………x…B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}…d………….…
Boot0001* Windows Boot Manager HD(1,GPT,417a77a8-c2d1-4141-abc2-47dace02eed8,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS………x…B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}…d………….…
Boot0002* Slackware PciRoot(0x0)/Pci(0x1f,0x2)/EDD10(0x2a010480)/HD(1,GPT,417a77a8-c2d1-4141-abc2-47dace02eed8,0x800,0x32000)/File(\EFI\Boot\vmlinuz-sda9)
Boot0004* Diskette Drive BBS(Floppy,Diskette Drive,0x0)..BO
Boot0005* Internal HDD BBS(HD,P1: WDC WD7500BPVT-26HXZT3,0x0)..BO
Boot0006* USB Storage Device BBS(USB,USB Storage Device,0x0)..BO
Boot0007* CD/DVD/CD-RW Drive BBS(CDROM,CD/DVD/CD-RW Drive,0x0)..BO
Boot0008* Onboard NIC BBS(Network,IBA GE Slot 00C8 v1550,0x0)..BO
Boot0009* UEFI: Hard Drive PciRoot(0x0)/Pci(0x1f,0x2)/EDD10(0x2a010480)/HD(1,GPT,417a77a8-c2d1-4141-abc2-47dace02eed8,0x800,0x32000)..BO
Boot0003* Slackware2 HD(1,GPT,417a77a8-c2d1-4141-abc2-47dace02eed8,0x800,0x32000)/File(\EFI\Boot\elilo-x86_64.efi)
これで再起動しても何故か上の様に …… となりうまくいかなかった。
まあいいや。eliloだとliloの様にWinは起動できない可能性があるし、切り替えたい時は
BIOS起動でWinのローダか直接vmlinuzかを選択するか。
eliloが動かないのはelilo.confの書き方を間違えたせいだった。lilo.confとは少し違った。
eliloconfigの通りに書き直したらうまくいった。
$ cat /mnt2/EFI/Boot/elilo.conf
chooser=simple
delay=1
timeout=1
#
image=vmlinuz-sda9
label=vmlinuz-sda9
read-only
append=”root=/dev/sda9 vga=normal ro”
#
image=vmlinuz-sda5
label=vmlinuz-sda5
read-only
append=”root=/dev/sda5 vga=normal ro”
(chooser=simpleって、1つ目しかloadしないのか。とりあえず今はこれでいいや)

方法その2:
WinのFileはいじりたくないので、こっちは試さなかった。
Slack-15# mkdir /mnt2/EFI/Slackware
Slack-15# cp -a /boot/elilo-x86_64.efi /mnt2/EFI/Slackware/
Slack-15# cp -a -i /etc/lilo.conf /mnt2/EFI/Slackware/elilo.conf
rebootして、Win11で起動
Win11# bcdedit
(Win11# bcdedit /copy {current} /d “elilo” 実行しない)
Win11# bcdedit /set “{bootmgr}” path \EFI\Slackware\elilo-x86_64.efi
(Windows Boot Manager ではLinuxを起動できないため上書き?。Winはeliloが起動する?)
(“”を付けるのはパワーシェルの場合らしい)

Winのブートローダーを試してみる:2023.02
予想以上にWin<->Slackの交互起動を行いそうだ。その度にBIOSメニュー設定変更してPC基板
上のIC(flash?)を書き換えるのはあまりよくないな。spitzでも書き換えないようにしていた。
Win10# bcdedit

Windows ブート ローダー
\——————————–
identifier {current}
device partition=C:
path \Windows\system32\winload.efi
description Windows 10
locale ja-JP
inherit {bootloadersettings}
recoverysequence {2f4ad288-97cf-11ed-a0e8-93924d3b6275}
displaymessageoverride Recovery
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \Windows
resumeobject {c0cd6a2f-8fb2-11ec-afdc-8a4b04793d80}
nx OptIn
bootmenupolicy Standard

Windows ブート ローダー
\——————————–
identifier {c0cd6a28-8fb2-11ec-afdc-8a4b04793d80}
device unknown
path \Windows\system32\winload.efi
description Windows 11
locale ja-JP
inherit {bootloadersettings}
recoverysequence {c0cd6a29-8fb2-11ec-afdc-8a4b04793d80}
displaymessageoverride Recovery
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice unknown
systemroot \Windows
resumeobject {c0cd6a27-8fb2-11ec-afdc-8a4b04793d80}
nx OptIn
bootmenupolicy Standard

Win11の領域をフォーマットしてWin10を入れたせいか、deviceがunknownになっている。
https://learn.microsoft.com/ja-jp/windows-hardware/drivers/devtest/bcd-boot-options-reference
BCDEdit /deletevalue
/deletevalue オプションは、ブートエントリオプション (およびその値) を Windows ブート構成データストア (BCD) から削除または削除します。 Bcdedit/deletevalue コマンドを使用して、BCDEdit/set コマンドを使用して追加されたオプションを削除します。 ドライバーをテストおよびデバッグするときに、ブートエントリのオプションを削除することが必要になる場合があります。

Win10# bcdedit /set {bootmgr} path \EFI\Boot\vmlinuz-sad9
この操作を正しく終了しました。
Win10# bcdedit

Windows ブート マネージャー
\——————————–
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
path \EFI\Boot\vmlinuz-sad9
description Windows Boot Manager
locale ja-JP
inherit {globalsettings}
default {current}
resumeobject {c0cd6a2f-8fb2-11ec-afdc-8a4b04793d80}
displayorder {current}
\ {c0cd6a28-8fb2-11ec-afdc-8a4b04793d80}
toolsdisplayorder {memdiag}
timeout 30

Windows ブート ローダー
\——————————–
identifier {current}
device partition=C:
path \Windows\system32\winload.efi
description Windows 10
locale ja-JP
inherit {bootloadersettings}
recoverysequence {2f4ad288-97cf-11ed-a0e8-93924d3b6275}
displaymessageoverride Recovery
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \Windows
resumeobject {c0cd6a2f-8fb2-11ec-afdc-8a4b04793d80}
nx OptIn
bootmenupolicy Standard

Windows ブート ローダー
\——————————–
identifier {c0cd6a28-8fb2-11ec-afdc-8a4b04793d80}
device unknown
path \Windows\system32\winload.efi
description Windows 11
locale ja-JP
inherit {bootloadersettings}
recoverysequence {c0cd6a29-8fb2-11ec-afdc-8a4b04793d80}
displaymessageoverride Recovery
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice unknown
systemroot \Windows
resumeobject {c0cd6a27-8fb2-11ec-afdc-8a4b04793d80}
nx OptIn
bootmenupolicy Standard

これだと選択画面無しでSlackだけが起動してしまった。BIOSメニューでWinBootを削除
して再度bootx64.efiを設定するとWinが起動するように直ったが、bcdedit表示は変わ
ってない。grubだとWinもLinuxも両方行けるのか?。

Win10# bcdedit /displayorder {bootmgr} /remove
コマンド ラインで /f スイッチを指定していない場合は、このエントリは削除
できません。詳細については、bcdedit /? を実行してください。
アクセスが拒否されました。

Win10# bcdedit /f /delete {bootmgr}
この操作を正しく終了しました。

Win10# bcdedit

Windows ブート ローダー
\——————————–
identifier {2f4ad288-97cf-11ed-a0e8-93924d3b6275}
device ramdisk=[C:]\Recovery\WindowsRE\Winre.wim,{2f4ad289-97cf-11ed-a0e8-93924d3b6275}
path \windows\system32\winload.efi
description Windows Recovery Environment
locale ja-jp
inherit {bootloadersettings}
displaymessage Recovery
osdevice ramdisk=[C:]\Recovery\WindowsRE\Winre.wim,{2f4ad289-97cf-11ed-a0e8-93924d3b6275}
systemroot \windows
nx OptIn
bootmenupolicy Standard
winpe Yes

Windows ブート ローダー
\——————————–
identifier {c0cd6a28-8fb2-11ec-afdc-8a4b04793d80}
device unknown
path \Windows\system32\winload.efi
description Windows 11
locale ja-JP
inherit {bootloadersettings}
recoverysequence {c0cd6a29-8fb2-11ec-afdc-8a4b04793d80}
displaymessageoverride Recovery
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice unknown
systemroot \Windows
resumeobject {c0cd6a27-8fb2-11ec-afdc-8a4b04793d80}
nx OptIn
bootmenupolicy Standard

Windows ブート ローダー
\——————————–
identifier {c0cd6a29-8fb2-11ec-afdc-8a4b04793d80}
device ramdisk=[unknown]\Recovery\WindowsRE\Winre.wim,{c0cd6a2a-8fb2-11ec-afdc-8a4b04793d80}
path \windows\system32\winload.efi
description Windows Recovery Environment
locale ja-jp
inherit {bootloadersettings}
displaymessage Recovery
osdevice ramdisk=[unknown]\Recovery\WindowsRE\Winre.wim,{c0cd6a2a-8fb2-11ec-afdc-8a4b04793d80}
systemroot \windows
nx OptIn
bootmenupolicy Standard
winpe Yes

Windows ブート ローダー
\——————————–
identifier {current}
device partition=C:
path \Windows\system32\winload.efi
description Windows 10
locale ja-JP
inherit {bootloadersettings}
recoverysequence {2f4ad288-97cf-11ed-a0e8-93924d3b6275}
displaymessageoverride Recovery
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \Windows
resumeobject {c0cd6a2f-8fb2-11ec-afdc-8a4b04793d80}
nx OptIn
bootmenupolicy Standard

休止状態からの再開
\——————————–
identifier {c0cd6a27-8fb2-11ec-afdc-8a4b04793d80}
device unknown
path \Windows\system32\winresume.efi
description Windows Resume Application
locale ja-JP
inherit {resumeloadersettings}
recoverysequence {c0cd6a29-8fb2-11ec-afdc-8a4b04793d80}
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
filedevice unknown
custom:21000026 unknown
filepath \hiberfil.sys
bootmenupolicy Standard
debugoptionenabled No

休止状態からの再開
\——————————–
identifier {c0cd6a2f-8fb2-11ec-afdc-8a4b04793d80}
device partition=C:
path \Windows\system32\winresume.efi
description Windows Resume Application
locale ja-JP
inherit {resumeloadersettings}
recoverysequence {2f4ad288-97cf-11ed-a0e8-93924d3b6275}
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
filedevice partition=C:
filepath \hiberfil.sys
bootmenupolicy Standard
debugoptionenabled No

Windows メモリ テスター
\——————————–
identifier {memdiag}
device partition=\Device\HarddiskVolume1
path \EFI\Microsoft\Boot\memtest.efi
description Windows メモリ診断ツール
locale ja-JP
inherit {globalsettings}
badmemoryaccess Yes

何なんだ、これは。この後、Winはdiagmodeしか起動しなくなり、BIOSメニューでbootx64.efi
を削除/登録し直しても、起動できなくなった。しょうがないのでSlackで起動してBackUpして
いたvfat領域だけ戻してみるか。
$ file /mnt2/EFI/Microsoft/Boot/BCD
/mnt2/EFI/Microsoft/Boot/BCD: MS Windows registry file, NT/2000 or above
$ sudo cp -a /mnt3/EFI/Microsoft/Boot/BCD /mnt2/EFI/Microsoft/Boot/
起動するようになったが、Winの{bootmgr}が入ったままだ。まあいいか。

linux bcdedit、でググった:
https://wiki.archlinux.jp/index.php/Windows_%E3%81%A8_Arch_%E3%81%AE%E3%83%87%E3%83%A5%E3%82%A2%E3%83%AB%E3%83%96%E3%83%BC%E3%83%88
https://foxglovetree.wiki.fc2.com/wiki/Linux.dual_boot
https://www.vivaolinux.com.br/dica/Multi-boot-com-ELILO-Linux-Windows-8
(以下で実行した)
Win10# bcdedit /create /d “Slack-15.0” /application BOOTSECTOR
エントリ {2f4ad28a-97cf-11ed-a0e8-93924d3b6275} は正常に作成されました。
Win10# bcdedit /set {2f4ad28a-97cf-11ed-a0e8-93924d3b6275} device partition=c:
この操作を正しく終了しました。
Win10# bcdedit /set {2f4ad28a-97cf-11ed-a0e8-93924d3b6275} path \EFI\Boot\vmlinuz-sda9
この操作を正しく終了しました。
Win10# bcdedit /displayorder {2f4ad28a-97cf-11ed-a0e8-93924d3b6275} /addlast
この操作を正しく終了しました。
Win10# bcdedit /timeout 30
この操作を正しく終了しました。
Win10# bcdedit

Windows ブート マネージャー
\——————————–
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
locale ja-JP
inherit {globalsettings}
default {current}
resumeobject {c0cd6a2f-8fb2-11ec-afdc-8a4b04793d80}
displayorder {current}
\ {c0cd6a28-8fb2-11ec-afdc-8a4b04793d80}
\ {2f4ad28a-97cf-11ed-a0e8-93924d3b6275}
toolsdisplayorder {memdiag}
timeout 30

Windows ブート ローダー
\——————————–
identifier {current}
device partition=C:
path \Windows\system32\winload.efi
description Windows 10
locale ja-JP
inherit {bootloadersettings}
recoverysequence {2f4ad288-97cf-11ed-a0e8-93924d3b6275}
displaymessageoverride Recovery
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \Windows
resumeobject {c0cd6a2f-8fb2-11ec-afdc-8a4b04793d80}
nx OptIn
bootmenupolicy Standard

Windows ブート ローダー
\——————————–
identifier {c0cd6a28-8fb2-11ec-afdc-8a4b04793d80}
device unknown
path \Windows\system32\winload.efi
description Windows 11
locale ja-JP
inherit {bootloadersettings}
recoverysequence {c0cd6a29-8fb2-11ec-afdc-8a4b04793d80}
displaymessageoverride Recovery
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice unknown
systemroot \Windows
resumeobject {c0cd6a27-8fb2-11ec-afdc-8a4b04793d80}
nx OptIn
bootmenupolicy Standard

リアル モード ブート セクター
\——————————–
identifier {2f4ad28a-97cf-11ed-a0e8-93924d3b6275}
device partition=C:
path \EFI\Boot\vmlinuz-sda9
description Slack-15.0

起動メニューにSlack-15.0が出てきたが起動しない。ファイルが無いか壊れている、
とくる。ローダでないとダメなのか?。
https://learn.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/bcd-system-store-settings-for-uefi?view=windows-10

Win10# bcdedit /set {2f4ad28a-97cf-11ed-a0e8-93924d3b6275} path \EFI\Boot\elilo-x86_64.efi
(結果は同じ。ダメだった)

$ sudo vi lilo.conf (sda5とsda9を”/”とする2エントリを作った)
$ sudo lilo -b /dev/sda5 ( https://ja.manpages.org/lilo/8 )
$ sudo dd if=/dev/sda5 of=/mnt2/EFI/Boot/lilo.bin bs=512 count=1 (MBRをコピー)
Win10# bcdedit /set {2f4ad28a-97cf-11ed-a0e8-93924d3b6275} path \EFI\Boot\lilo.bin
(結果は同じ。ダメだった)
Win10# bcdedit /set {2f4ad28a-97cf-11ed-a0e8-93924d3b6275} path \EFI\Boot\lilo.exe
(結果は同じ。ダメだった)
Win10# bcdedit /set {2f4ad28a-97cf-11ed-a0e8-93924d3b6275} device partition=\Device\HarddiskVolume1
(結果は同じ。ダメだった)
Win10# bcdedit /set {2f4ad28a-97cf-11ed-a0e8-93924d3b6275} device partition=C:
Win10# bcdedit /set {2f4ad28a-97cf-11ed-a0e8-93924d3b6275} path \cygwin\boot\lilo.exe
(結果は同じ。ダメだった)
Win10# bcdedit /set {2f4ad28a-97cf-11ed-a0e8-93924d3b6275} path \cygwin\boot\elilo-x86_64.efi
(結果は同じ。ダメだった)

WinのローダはSlackロードできなそう。grubでWinとSlackをロードするしかないのか?
efibootmgr -n を試してみる。
https://qiita.com/YuzuRyo61/items/20d0fa84e0948eadf467
(うまくいった~、これや~)

$ efibootmgr
BootCurrent: 0009
Timeout: 1 seconds
BootOrder: 0009,0008,0000,000A,0007,000C,0003,0001,0002,0004,000B
Boot0000* Slackware2 PciRoot(0x0)/Pci(0x1f,0x2)/EDD10(0x2a010480)/HD(1,GPT,ac9fc8db-dc45-614e-b888-283414f8d35d,0x800,0x32000)/File(\EFI\Boot\vmlinuz-sda5)
Boot0001* Diskette Drive BBS(Floppy,Diskette Drive,0x0)..BO
Boot0002* Internal HDD BBS(HD,P1: TOSHIBA MK2575GSX,0x0)..BO
Boot0003* USB Storage Device BBS(USB,USB Storage Device,0x0)..BO
Boot0004* CD/DVD/CD-RW Drive BBS(CDROM,CD/DVD/CD-RW Drive,0x0)..BO
Boot0006* Windows Boot Manager HD(1,GPT,417a77a8-c2d1-4141-abc2-47dace02eed8,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS………x…B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}…d………….…
Boot0007* USB PciRoot(0x0)/Pci(0x14,0x0)/USB(1,0)/HD(1,GPT,ad619f29-74bf-4eb2-89ae-7f3058ccbdc4,0x800,0x39ef7df)/File(\efi\boot\bootx64.efi)
Boot0008* Windows Boot Manager HD(1,GPT,ac9fc8db-dc45-614e-b888-283414f8d35d,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS………x…B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}…d………….…
Boot0009* Slackware PciRoot(0x0)/Pci(0x1f,0x2)/EDD10(0x2a010480)/HD(1,GPT,ac9fc8db-dc45-614e-b888-283414f8d35d,0x800,0x32000)/File(\EFI\Boot\vmlinuz-sda9)
Boot000A* Slackware3 HD(1,GPT,ac9fc8db-dc45-614e-b888-283414f8d35d,0x800,0x32000)/File(\EFI\Boot\elilo-x86_64.efi)
Boot000B* Onboard NIC BBS(Network,IBA CL Slot 00C8 v0110,0x0)..BO
Boot000C* UEFI: Hard Drive PciRoot(0x0)/Pci(0x1f,0x2)/EDD10(0x2a010480)/HD(1,GPT,ac9fc8db-dc45-614e-b888-283414f8d35d,0x800,0x32000)..BO

普段はSlack使い、たまにWinに切り替える。
$ sudo efibootmgr -n 0008
$ sudo init 6
Winからrebootしたら、(BIOSメニューで最上位にしている)Slackが起動されて戻って来る。
最初からWin使いたい場合でもSlack起動してからになるが、まあいいか。spitzでもflash書き
換えたくなくて、電源ON時はOZ起動してからkexecで他のkernel起動してたし。ある意味 efi
bootmgr_-nはkexecの代わり。
\
https://kledgeb.blogspot.com/2015/11/efibootmgr-5-pc1pc1.html
(残念ながらどうやらflash書き換えは変わらないらしい。bestではないがbetter。今はこの方法
が最も簡単なため、これでいく) (2023.04)

Slack-14.2を入れる用事ができたので、起動時BIOSメニューからエントリーを追加した
Boot000D* Slackware4 PciRoot(0x0)/Pci(0x1f,0x2)/EDD10(0x2a010480)/HD(4,GPT,c5593195-c1d9-7a4d-93d3-f43bbaf2a863,0xf14f800,0x143000)/File(\EFI\Boot\vmlinuz-sda10)
が、これだとbootmgr_-nでbootできないらしい。仕方ないので、
# efibootmgr -c -d /dev/sda -p 1 -l “\\EFI\\Boot\\vmlinuz-sda10” -L “Slackware4”
とやってこっちをbootmgr_-nで指定したらbootできた。
Boot000E* Slackware4 HD(1,GPT,ac9fc8db-dc45-614e-b888-283414f8d35d,0x800,0x32000)/File(\EFI\Boot\vmlinuz-sda10)/dev/sda
これで設定すると起動順番は最優先になるので、BIOSメニューで最優先は元(vmlinuz-sda9:Slack-
15.0)に戻した。-p 1はそういう意味か。(2023.11)

参考URL:
.config (linux-5.15.19 用)
https://seesaawiki.jp/lifewithslackzaurus_15_0/d/%2econfig%20%28linux%2d5%2e15%2e19%20%cd%d1%29
lilo EFI boot、でググった:
https://wiki.archlinux.jp/index.php/Arch_%E3%83%96%E3%83%BC%E3%83%88%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9
https://www.rodsbooks.com/efi-bootloaders/elilo.html
\
Win10 -> Win11 引越しと efibootmgr設定
https://seesaawiki.jp/lifewithslackzaurus_15_0/d/Win10%20%2d%3e%20Win11%20%b0%fa%b1%db%a4%b7%a4%c8%20efibootmgr%c0%df%c4%ea

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です