Que*_*low 6 fedora boot partition swap lvm
在从旧版本升级失败后,我在硬盘的可用空间中全新安装了 Fedora 20。一切似乎都工作正常,直到我删除了包含旧版本的分区以释放一些空间。重新启动计算机后,等待很长时间后,我收到以下消息:
警告:无法启动
警告:/dev/fedora_old/swap 不存在
启动 Dracut 紧急外壳
exit
如果我在 dracut 提示符下输入,我仍然可以启动。但是,这并没有解决问题的根源。网上有一些建议:
dracut --force --regenerate-all
Run Code Online (Sandbox Code Playgroud)
我不确定它到底做了什么,而且似乎并没有解决问题。整理交换分区的正确方法是什么?尽管新操作系统有自己的交换分区,但安装新操作系统时似乎仍在使用旧操作系统的交换分区。
以及我以后怎样才能避免这样的问题呢?
这就是我的目的/etc/fstab
:
/dev/mapper/fedora_new-root00 / ext4 defaults 1 1
UUID=somehexdec /boot ext4 defaults 1 2
UUID=someotherhexdec /boot/efi vfat umask=0077,shortname=winnt 0 0
/dev/mapper/fedora_new-home00 /home ext4 defaults 1 2
/dev/mapper/fedora_new-swap swap swap defaults 0 0
Run Code Online (Sandbox Code Playgroud)
小智 6
为了使其永久化,您需要更新/etc/default/grub
以指向正确的交换分区。
示例:更改此:
GRUB_CMDLINE_LINUX="rd.lvm.lv=rootVG/root rd.lvm.lv=oldnameVG/swapLV rhgb quiet"
Run Code Online (Sandbox Code Playgroud)
对此:
GRUB_CMDLINE_LINUX="rd.lvm.lv=rootVG/root rd.lvm.lv=rootVG/swapLV rhgb quiet"
Run Code Online (Sandbox Code Playgroud)
完成后,您需要重新生成 grub 配置:
grub2-mkconfig -o /boot/grub2/grub.cfg
Run Code Online (Sandbox Code Playgroud)
您可以通过查看/boot/grub2/grub.cfg
并验证交换现在是否指向正确的 VG/LV 来验证它是否有效
看来手动编辑rd.lvm.lv=fedora_old/swap
grub 配置文件中包含的参数可以解决问题。根本不需要运行 dracut 或重新安装 grub。
# vi /boot/efi/EFI/fedora/grub.cfg
Run Code Online (Sandbox Code Playgroud)
在您将从中启动的菜单条目下搜索以下行:
linuxefi /vmlinuz-3.12.x-xxx.fc20.x86_64 root=/dev/mapper/fedora_new-root00 ro
rd.lvm.lv=fedora_old/swaprd.lvm.lv=fedora_new/swap vconsole.font=....
为了确保上述更改得以保留,请对 执行相同的操作/etc/default/grub
:
GRUB_CMDLINE_LINUX=“
rd.lvm.lv=fedora_old/swaprd.lvm.lv=fedora_new/swap vconsole.font=...
如果此方法有误,请给出答案或发表评论。