我最近将 Linux 系统从 HDD 移到了 SSD。我设法让它启动,一切都很顺利,直到我从 HDD 中删除了旧的启动分区。现在,当我尝试启动时,我最终进入了 dracut shell 并出现/dev/disk/by-uuid/xxxxx doesn't exist
错误,我以前的分区的 UUID 在哪里(xxxxx
我不确定它是哪一个,因为我不再拥有它们)。/boot
/boot/efi
现在我需要重新生成 initramfs 以使用我从 hdd 克隆到 ssd 的新分区。我尝试dracut --regenerate-all --force
从救援启动运行,但没有帮助。
我正在使用 Fedora 21,我该怎么办?还是其他地方有问题?
答案1
您还有 F21 安装媒体吗?
如果是,请执行以下操作:
启动到“故障排除”> 拯救 Fedora 系统
允许安装(通常不是 r/o)
chroot /mnt/sysimage
dracut --regenerate-all -f && grub2-mkconfig -o /boot/grub2/grub.cfg
如果你是当然它不会抛出先前dracut --regenerate-all
所犯的错误(即ls /boot
显示它们但不会启动)只需使用第二个命令重建 grub。
~ 发自 Fedora 22 盒子
答案2
尝试以下链接说明:
https://ask.fedoraproject.org/en/question/57752/how-do-i-regenerate-my-initramfs/
首先扫描逻辑卷:
vgscan vgchange -ay
查找交换分区:
blkid|grep 交换
举个例子:
/dev/mapper/fedora-swap:UUID="28d71a2c-1b34-4115-aa19-083373ec4d8a" TYPE="swap"
编辑 /etc/fstab 以使用交换分区,以下是示例:nano /etc/fstab
/dev/mapper/fedora-swap swap 交换默认值 0 0
要重新生成所有 initramfs,请执行以下操作:
dracut --regenerate-all --force
答案3
我已经修复了 fstab 和 grub 条目中的所有内容,但在启动时我仍然进入维护模式,并出现 dracut 超时错误:
dracut --regenerate-all -f && grub2-mkconfig -o /boot/grub2/grub.cfg
这解决了我的问题。(CentOS7 专用服务器)
答案4
几乎每次发生这种情况时,我都会启动到以前的内核,然后在 Gnome 的终端中移除并重新安装内核和相关软件包。请注意,版本字符串会有所不同,因此只需通过 distors 首选方法查看当前安装的内核版本即可。以下是我上次发生这种情况时 Fedora 37 的示例。
$ sudo dnf remove *6.2.9-200*
$ sudo dnf upgrade kernel --refresh
几点说明:
- 这不是强制性的,但为了确保元数据和包管理器缓存是最新的,添加了“--refresh”开关。如果以下条件不适用,请随意将其删除。
- 如果您完全确定并确信没有突然推送的新内核,或者您没有使用不稳定/测试存储库,请在第二个命令末尾添加“-y”。它将为您接受更改;重新启动,一切就绪。