0x00前言
我相信,有非常多的用户在使用 Linux 的过程中时不时会遇到开机时进入 initramfs
模式的情况,例如我就遇到不少次了。一般遇到这种情况,我们束手无策,只能重装系统。可总重装也不是个办法,于是我就去问了度娘,度娘告诉我开机会进入 initramfs
的原因是
- 没正常关机导致的磁盘损坏 #大部分情况下
- 文件系统无法正常挂载 #我通常遇到的情况
0x01解决办法
1、没正常关机导致的磁盘损坏
我们需要
- Live模式启动盘一个or一个Linux系统
进入Live模式,打开终端
使用 blkid
或者 fdisk
查看你的分区
使用 fsck
来修复你的磁盘
PS:原谅我写的如此短,毕竟我没遇到过这种情况。如果有其他大佬有更详细的步骤可以找我替换。谢谢~
2、文件系统无法正常挂载
首先,使用 blkid
来查看我们有哪些磁盘和分区(因为在initramfs没有fdisk)
blkid
假设你已经知道了你的 /
在 /dev/sdb1
, /boot
在 /dev/sdb3
。我们需要新建一个文件夹并把对应分区挂载进去,注意根目录和boot目录不要挂反,boot目录是在根目录下↓的。
mkdir mnt
mount /dev/sdb1 /mnt
mount /dev/sdb3 /mnt/boot
挂载完成后我们还需要挂载一些必要文件夹以供使用
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
mount -t proc proc /mnt/proc
如果你还有其他分区,也需要挂载到对应挂载点
现在使用 chroot
命令切换到 /mnt
chroot /mnt
用户变成 root@(none),这时你就可以和终端一样用各种工具进行修复了。
接下来我们修改 /etc/fstab
,先把分区情况导入fstab以便对照修改
blkid >> /etc/fstab
接着用你习惯的编辑器打开对照修改 fstab
并把多余的行删除。
保存退出,键入
sync
完成后 reboot
重启电脑,你就可以进入系统了
其实你刚才所做的这些步骤和电脑真实开机流程相似