ArchLinuxには、「通常」と「フォールバック」の2つのブートオプションがあります。どちらのオプションも同じカーネルをロードしますが、初期RAMディスクは異なります。ただし、UEFIブートメニューに対応するメニュー項目を作成できません。次のスクリプトでメニュー項目を追加します。
#!/bin/python
import subprocess
import sys
def insert_menu_entry(label, initrd_rel, params):
disk = "/dev/disk/by-id/ata-TS128GSSD370S_C698244747"
command = ["efibootmgr", "--verbose", "--create",
"--disk", disk,
"--part", "2",
"--loader", "\\EFI\\arch\\vmlinuz-linux",
"--label", label,
"--unicode", "initrd=\\EFI\\arch\\" + initrd_rel + " root=" + disk + "-part3 rw " + params]
if not (subprocess.run(command).returncode == 0):
sys.exit(20)
insert_menu_entry("Arch Linux SSD Fallback", "initramfs-linux-fallback.img", "nopat fbcon=map:0")
insert_menu_entry("Arch Linux SSD", "initramfs-linux.img", "fbcon=map:10")
これらのメニュー項目はefibootmgr --verbose
次のように表示されます。
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0002,0000,0001,0007,0005
Boot0000* Arch Linux SSD Fallback HD(2,GPT,de5f4687-886d-4a95-a79b-d08ebc6a4fd8,0x80000,0x80000)/File(\EFI\arch\vmlinuz-linux)i.n.i.t.r.d.=.\.E.F.I.\.a.r.c.h.\.i.n.i.t.r.a.m.f.s.-.l.i.n.u.x.-.f.a.l.l.b.a.c.k...i.m.g. .r.o.o.t.=./.d.e.v./.d.i.s.k./.b.y.-.i.d./.a.t.a.-.T.S.1.2.8.G.S.S.D.3.7.0.S._.C.6.9.8.2.4.4.7.4.7.-.p.a.r.t.3. .r.w. .n.o.p.a.t. .f.b.c.o.n.=.m.a.p.:.0.
Boot0001* Linux Boot Manager HD(2,GPT,de5f4687-886d-4a95-a79b-d08ebc6a4fd8,0x80000,0x80000)/File(\EFI\SYSTEMD\SYSTEMD-BOOTX64.EFI)
Boot0002* Arch Linux SSD HD(2,GPT,de5f4687-886d-4a95-a79b-d08ebc6a4fd8,0x80000,0x80000)/File(\EFI\arch\vmlinuz-linux)i.n.i.t.r.d.=.\.E.F.I.\.a.r.c.h.\.i.n.i.t.r.a.m.f.s.-.l.i.n.u.x...i.m.g. .r.o.o.t.=./.d.e.v./.d.i.s.k./.b.y.-.i.d./.a.t.a.-.T.S.1.2.8.G.S.S.D.3.7.0.S._.C.6.9.8.2.4.4.7.4.7.-.p.a.r.t.3. .r.w. .f.b.c.o.n.=.m.a.p.:.1.0.
Boot0005 Hard Drive BBS(HD,,0x0)/VenHw(5ce8128b-2cec-40f0-8372-80640e3dc858,0200)..GO..NO..........T.S.1.2.8.G.S.S.D.3.7.0.S...................\.,.@.r.d.=.X..........A.................................>..Gd-.;.A..MQ..L.6.C.8.9.4.2.7.4.7.4. . . . . . . . . . ........BO..NO..........S.A.M.S.U.N.G. .H.D.2.0.4.U.I...................\.,.@.r.d.=.X..........A.................................>..Gd-.;.A..MQ..L.2.S.7.H.D.J.B.2.2.2.0.8.1.9. . . . . . ........BO
Boot0007* UEFI OS HD(2,GPT,de5f4687-886d-4a95-a79b-d08ebc6a4fd8,0x80000,0x80000)/File(\EFI\BOOT\BOOTX64.EFI)..BO
ただし、これらのメニュー項目の1つは再起動後に消えます。「systemd-boot」のメニュー項目は消えません。ローダーが同一であるため、マザーボードのファームウェアがメニューエントリを削除すると思われます。motheboardはMSI B450-A Proです。
UEFIマザーボードの通常の動作ですか、それともこのマザーボードの気まぐれですか?「systemd-boot」などの追加のブートローダーをインストールせずに、これらのメニューエントリを追加するにはどうすればよいですか?それらは、ブートメニューに複雑さを追加します。