
F27にアップグレードし、再起動後に緊急シェルに入りました。何時間もグーグルと実験をした後、インストールCDからリカバリをロードし、OSイメージを見つけて/usr/lib/os-releaseを/etc/os-releaseにコピーしました。そして、おそらく覚えていない他のことの中で、私は
grub>
それで、私は起動できることがわかりました
grub> set boot=(hd0,msdos1)
grub> set prefix=(hd0,msdos1)
grub> insmod normal
normal
次に、カーネル選択プロンプト (「Fedora」ではなく「dracut」と表示されます) が表示されたら、「e」キーを押して 4.14.18-300.fc27.x86_64 を編集し、「set root='hd0,msdos1'」を「set root='hd0,msdos3'」に変更し、Ctrl + X キーを押して起動すると、最終的に Fedora 27 が起動します。
問題は、再起動するたびにこれを実行しなければならないことです。
# grub2-mkconfig -o /boot/grub2/grub.cfg
成功したと表示されましたが、何も変わりませんでした。マシンを起動するには、まだ手順全体を実行する必要があり、少々面倒です。幸いなことに、頻繁に再起動する必要はありません。
私の質問は、これらのパーティションの変更を再起動後も維持するにはどうすればよいかということです。
ありがとう!
grub.cfg には正しい値があるようですが、マシンを起動するには上記の操作を実行する必要があります。/etc/grub.cfg は /boot/grub2/grub.cfg にリンクされています。
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
set pager=1
if [ -f ${config_directory}/grubenv ]; then
load_env -f ${config_directory}/grubenv
elif [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="${saved_entry}"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
terminal_output console
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
source ${prefix}/user.cfg
if [ -n "${GRUB2_PASSWORD}" ]; then
set superusers="root"
export superusers
password_pbkdf2 root ${GRUB2_PASSWORD}
fi
fi
### END /etc/grub.d/01_users ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'dracut (4.14.18-300.fc27.x86_64) 27 (Server Edition) dracut-046-8.git20180105.fc27' --class generic --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.14.18-300.fc27.x86_64-advanced-14f0dc3e-9ff4-4051-a8a8-302730b552fb' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' e5576283-fa19-4b57-8c1a-4d44227e8b8c
else
search --no-floppy --fs-uuid --set=root e5576283-fa19-4b57-8c1a-4d44227e8b8c
fi
linux16 /vmlinuz-4.14.18-300.fc27.x86_64 root=UUID=14f0dc3e-9ff4-4051-a8a8-302730b552fb ro rhgb quiet
initrd16 /initramfs-4.14.18-300.fc27.x86_64.img
}
menuentry 'dracut (4.11.12-100.fc24.x86_64) 27 (Server Edition) dracut-046-8.git20180105.fc27' --class generic --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.11.12-100.fc24.x86_64-advanced-14f0dc3e-9ff4-4051-a8a8-302730b552fb' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' e5576283-fa19-4b57-8c1a-4d44227e8b8c
else
search --no-floppy --fs-uuid --set=root e5576283-fa19-4b57-8c1a-4d44227e8b8c
fi
linux16 /vmlinuz-4.11.12-100.fc24.x86_64 root=UUID=14f0dc3e-9ff4-4051-a8a8-302730b552fb ro rhgb quiet
initrd16 /initramfs-4.11.12-100.fc24.x86_64.img
}
menuentry 'dracut (4.11.10-100.fc24.x86_64) 27 (Server Edition) dracut-046-8.git20180105.fc27' --class generic --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.11.10-100.fc24.x86_64-advanced-14f0dc3e-9ff4-4051-a8a8-302730b552fb' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' e5576283-fa19-4b57-8c1a-4d44227e8b8c
else
search --no-floppy --fs-uuid --set=root e5576283-fa19-4b57-8c1a-4d44227e8b8c
fi
linux16 /vmlinuz-4.11.10-100.fc24.x86_64 root=UUID=14f0dc3e-9ff4-4051-a8a8-302730b552fb ro rhgb quiet
initrd16 /initramfs-4.11.10-100.fc24.x86_64.img
}
menuentry 'dracut (4.14.18-300.fc27.x86_64+debug) 27 (Server Edition) dracut-046-8.git20180105.fc27' --class generic --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.14.18-300.fc27.x86_64+debug-advanced-14f0dc3e-9ff4-4051-a8a8-302730b552fb' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' e5576283-fa19-4b57-8c1a-4d44227e8b8c
else
search --no-floppy --fs-uuid --set=root e5576283-fa19-4b57-8c1a-4d44227e8b8c
fi
linux16 /vmlinuz-4.14.18-300.fc27.x86_64+debug root=UUID=14f0dc3e-9ff4-4051-a8a8-302730b552fb ro rhgb quiet
initrd16 /initramfs-4.14.18-300.fc27.x86_64+debug.img
}
menuentry 'dracut (4.11.12-100.fc24.x86_64+debug) 27 (Server Edition) dracut-046-8.git20180105.fc27' --class generic --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.11.12-100.fc24.x86_64+debug-advanced-14f0dc3e-9ff4-4051-a8a8-302730b552fb' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' e5576283-fa19-4b57-8c1a-4d44227e8b8c
else
search --no-floppy --fs-uuid --set=root e5576283-fa19-4b57-8c1a-4d44227e8b8c
fi
linux16 /vmlinuz-4.11.12-100.fc24.x86_64+debug root=UUID=14f0dc3e-9ff4-4051-a8a8-302730b552fb ro rhgb quiet
initrd16 /initramfs-4.11.12-100.fc24.x86_64+debug.img
}
menuentry 'dracut (4.11.10-100.fc24.x86_64+debug) 27 (Server Edition) dracut-046-8.git20180105.fc27' --class generic --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.11.10-100.fc24.x86_64+debug-advanced-14f0dc3e-9ff4-4051-a8a8-302730b552fb' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' e5576283-fa19-4b57-8c1a-4d44227e8b8c
else
search --no-floppy --fs-uuid --set=root e5576283-fa19-4b57-8c1a-4d44227e8b8c
fi
linux16 /vmlinuz-4.11.10-100.fc24.x86_64+debug root=UUID=14f0dc3e-9ff4-4051-a8a8-302730b552fb ro rhgb quiet
initrd16 /initramfs-4.11.10-100.fc24.x86_64+debug.img
}
menuentry 'dracut (0-rescue-a9f8b0f7c9ac492ea0ca157a4e1f3d7b) 27 (Server Edition) dracut-046-8.git20180105.fc27' --class generic --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-a9f8b0f7c9ac492ea0ca157a4e1f3d7b-advanced-14f0dc3e-9ff4-4051-a8a8-302730b552fb' {
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' e5576283-fa19-4b57-8c1a-4d44227e8b8c
else
search --no-floppy --fs-uuid --set=root e5576283-fa19-4b57-8c1a-4d44227e8b8c
fi
linux16 /vmlinuz-0-rescue-a9f8b0f7c9ac492ea0ca157a4e1f3d7b root=UUID=14f0dc3e-9ff4-4051-a8a8-302730b552fb ro rhgb quiet
initrd16 /initramfs-0-rescue-a9f8b0f7c9ac492ea0ca157a4e1f3d7b.img
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_ppc_terminfo ###
### END /etc/grub.d/20_ppc_terminfo ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
blkidの出力:
[root@vh02 ~]# blkid
/dev/sda1: UUID="e5576283-fa19-4b57-8c1a-4d44227e8b8c" TYPE="ext4" PARTUUID="348d6d2c-01"
/dev/sda2: LABEL="home" UUID="5c592a5a-9819-40d5-a1aa-9e04688cecfa" TYPE="ext4" PARTUUID="348d6d2c-02"
/dev/sda3: UUID="14f0dc3e-9ff4-4051-a8a8-302730b552fb" TYPE="xfs" PARTUUID="348d6d2c-03"
/dev/sda5: UUID="4f19f0d8-badf-4dd3-8105-0bfb3d12609c" TYPE="swap" PARTUUID="348d6d2c-05"
答え1
/boot ボリュームが sda1 にある場合、メニュー エントリは間違いなく間違っています。次の一番上のエントリを見てください。
### BEGIN /etc/grub.d/10_linux ###
menuentry 'dracut (4.14.18-300.fc27.x86_64) 27 (Server Edition) dracut-046-8.git20180105.fc27' --class generic --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.14.18-300.fc27.x86_64-advanced-14f0dc3e-9ff4-4051-a8a8-302730b552fb' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' e5576283-fa19-4b57-8c1a-4d44227e8b8c
else
search --no-floppy --fs-uuid --set=root e5576283-fa19-4b57-8c1a-4d44227e8b8c
fi
linux16 /vmlinuz-4.14.18-300.fc27.x86_64 root=UUID=14f0dc3e-9ff4-4051-a8a8-302730b552fb ro rhgb quiet
initrd16 /initramfs-4.14.18-300.fc27.x86_64.img
}
set root='hd0,msdos3' は誤りです。'hd0,msdos1' とすべきです。これは GRUB を /boot パーティションに向けるものであり、カーネルへの root= 引数 ("linux16" で始まる行) は / のファイルシステム UUID を向ける必要があります。
おそらく、/ と /boot の両方に grub ファイルがあり、アップグレード中に /boot がアンマウントされた可能性があります。提供された情報から判断するのは難しいですが、これがよくある原因です。これを修正するには、grub-mkconfig
/dev/sda1 が /boot にマウントされていることを確認しながら、grub 構成を再生成するだけで簡単に解決できる可能性があります。本当にそれが問題である場合は、まず / ファイルシステムの /boot ディレクトリをクリーンアップすることをお勧めします。
dracut の問題は別々ですが、関連しています。カーネルの root=UUID= 行を見て、そこにある UUID が実際にルート ファイルシステムのものであり、他のものではないことを確認します。blkid
実行中のシステムでは、マウントされたポイントの横に UUID とその他の詳細が表示されます。メニューなどに「dracut」と表示されているのは、grub config 生成で fedora のインストールが正しく検出されなかったためです。これも、/boot がマウント解除されたか、または の実行中に / がバインド マウントされたことが原因である可能性がありますgrub-mkconfig
。