%20grub-update%20%E3%81%8C%E5%88%A5%E3%81%AE%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96%E3%81%AE%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%92%E8%A6%8B%E3%81%A4%E3%81%91%E3%82%89%E3%82%8C%E3%81%AA%E3%81%84%20(Fedora%2034%20KDE).png)
複数のシステムがインストールされています。時系列順に、最初は Windows 10、次に Kubuntu 20.04、次に Fedora 34 KDE、そして KaOS です。Fedora は 2 番目のドライブに単独でインストールされ、独自の EFI を備えていますが、KaOS と EFI を共有しています。
構成は次のようになります。
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 739327 737280 360M EFI System
/dev/nvme0n1p2 739328 1001471 262144 128M Microsoft reserved
/dev/nvme0n1p3 1001472 457750527 456749056 217,8G Microsoft basic data
/dev/nvme0n1p4 457750528 459757567 2007040 980M Windows recovery environment
/dev/nvme0n1p5 459757568 500107263 40349696 19,2G Microsoft basic data
/dev/nvme0n1p6 500107264 644737022 144629759 69G Linux filesystem
/dev/nvme0n1p7 644737023 976773134 332036112 158,3G Linux filesystem
Device Start End Sectors Size Type
/dev/sda1 2048 1230847 1228800 600M EFI System
/dev/sda2 251660288 1258293247 1006632960 480G Linux filesystem
/dev/sda3 1258293248 1875384319 617091072 294,3G Microsoft basic data
/dev/sda4 1230848 3327999 2097152 1G Linux filesystem
/dev/sda5 3328000 251660287 248332288 118,4G Linux filesystem
/dev/nvme0n1p1
/dev/nvme0n1p2
は、Windows(にインストール5
)およびUbuntu( にインストールnvme0n1p6
) のEFIパーティションであり、 は、Fedora(および)およびKaOS()/dev/sda1
のEFIである。/dev/sda4
5
/dev/nvme0n1p7
この奇妙な選択は、Kubuntu のほかに、Windows と同じ EFI を使用する別の Linux を過去にインストールした結果、Windows ブートが破損したという事実に関係しています。これは、Kubuntu を再インストールしてブート メニューに Windows を追加することで修正されました。私は Windows とのこのような干渉を避けたかったので、独自の EFI を持つ別のドライブに Fedora をインストールし、その後、KaOS を Windows と同じドライブにインストールしたときに、別のドライブの EFI を使用して Fedora と共有するように選択しました。
KaOSをインストールした後、そのブートメニュー(systems-boot
ではなくによって実行されますgrub
)他のシステムは表示されませんでした。
Fedora と Ubuntu のブート メニューは、ファームウェア UEFI インターフェイスに隠されていました。Fedora にはすべてのシステムが含まれていました。kUbuntuのブートメニューにはFedora以外のすべてが含まれていました。
私はブート修復を使用して、Fedoraのブートメニューをデフォルトのものにしようとしました。これは最も完全だったからです(grubをインストールすることでsda1
)が、Fedoraを「最初に起動」するオプションがなかったので、Kubuntuを選択しました。その結果、Kubuntu のブート メニューがデフォルトになり、Fedora だけが欠けています。
Kubuntu grub が現在制御されているので、それを使用して、それに Fedora を追加したいと思います。grub を更新しても役に立ちません。
編集-1、@oldfred のコメント後:
編集-2、@oldfred の回答後:
boot/grub/grub.cfg
Kubuntu grub.cfg ファイルを調べたところ、そこにメニューエントリを追加することでKubuntu ブート リストがファイルによって決定されることがわかりました。
私が見つけた Fedora 独自の grub.cfg ファイルを見ると、Fedora のエントリが欠落しており、残りのシステムのみがリストされています。これらは、Fedora の Grub Customizer でも確認できます。独自のブート リスト内の Fedora エントリは、/loader/entries/
1 GB のルート ext4 パーティション (sda4) の個別のファイルによって決定されるようです。これらを Kubuntu の /boot/efi/loader/entries/ にコピーしても効果はありません。
Kubuntu の エントリに Fedora 独自のモデルがないためboot/grub/grub.cfg
、そこで見つけた行をコピーして KaOS 用に修正し、Fedora の仕様、つまり UUID を追加しました。フォーマットが正しいかどうかはわかりませんが、そのファイル内の KaOS のフォーマットは、ディストリビューション名と UUID のみが調整されているだけです。
menuentry 'Fedora 34 KDE' --class Fedora --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4834b108-13c9-406c-8a7b-a9c53440283c' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 F4F4-1172
else
search --no-floppy --fs-uuid --set=root F4F4-1172
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=4834b108-13c9-406c-8a7b-a9c53440283c rw quiet
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux.img
}
この方法では、もちろん Fedora の名前がブート リストに追加されますが、機能しません。
パーティションの UUID bfrs
( sda5
) を使用すると、次のメッセージが表示されます。
mount: new/-root: unknown filesystem type ‘btrfs’
念のため、「ルート」Fedora パーティション ( ) の UUID を試してみたところsda4
、次のメッセージが表示されました。
Error: root device mounted successfully but sbin/init does not exist
正しい方法は、sda5
パーティションのUUIDを追加することだと思います。これは、Fedoraの前述の3つのファイルすべてで指定されているものです。/loader/entries/
grub は btrfs を認識しないようです。
Apper を使用して、見つけることができた「btrfs」関連のファイルすべて、約 30 個のパッケージをインストールしましたが、同じことが起こります。
編集-3
以降のコメントから、ファイルを編集するのboot/grub/grub.cfg
ではなく、ファイルを編集しetc/grub.d/40_custom
て他のファイルの一部をコピーする必要があることは理解しています。しかし、どのファイルを使用すればよいのかわかりません。Fedora のパーティションで、ext4
-内のファイル以外に、Fedora のブートやブート リスト内のエントリに関連するものを見つけることができませんでし/loader/entries
た。それで、コピーする必要があるのは、これらのうちの 1 つでしょうか?
これは次のようなものですか/media/root/651b659a-8fc5-46d6-b291-22b3b523ebaf/loader/entries/a037a4898b9540bfbc52f3f377b2ff4d-5.13.19-200.fc34.x86_64.conf
(Fedora の 1GB ex4 パーティション sda4 からコピーしたものです):
title Fedora (5.13.19-200.fc34.x86_64) 34 (KDE Plasma)
version 5.13.19-200.fc34.x86_64
linux /vmlinuz-5.13.19-200.fc34.x86_64
initrd /initramfs-5.13.19-200.fc34.x86_64.img
options root=UUID=4834b108-13c9-406c-8a7b-a9c53440283c ro rootflags=subvol=root rhgb quiet
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel
boot/grub/grub.cfg
それとも、上記の EDIT-2 に投稿されたKubununtu のファイル内の KaOS のエントリのようなものですか?
答え1
私は一度 Fedora をインストールしましたが、その前には btrfs を使用していました。しかし、Ubuntu の grub エントリは UEFI ブートエントリにチェーンロードまたは構成ファイルでした。私はこれらを Ubuntu の grub の 40_custom に追加しました。UUID は一意であり、インストールの UUID に変更する必要があります。grub に直接ブートするには
menuentry "Fedora UEFI" {
search --file --no-floppy --set=root F496-1330
chainloader (${root})/efi/fedora/grub.cfg
}
多くの場合、grub のブート スタンザをあるインストールから別のインストールにコピーするだけで済みます。これが os-prober が行っていることです。異なる形式や構成を認識させるには、追加のドライバー (btrfs) または grub2 の .mod ファイル (btrfs.mod など) が必要になる場合があります。rEFInd を使用する場合は、grub スタンザを refind.conf に変換する必要があります。configfile は、grub または grub タイプのブート スタンザを持つ別のファイルへのリンクです。
menuentry "Fedora UEFI" {
search.fs_uuid a9bd9a65-bc8c-41b1-95b1-2dceb66b2652 root hd1,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
}
40_customとカスタムメニューの使用
https://help.ubuntu.com/community/Grub2/カスタムメニュー
設定ファイル:
https://www.gnu.org/software/grub/manual/grub/grub.html#Multi_002dboot-manual-config
https://ubuntuforums.org/showthread.php?t=2076205&page=54&p=13788092#post13788092