人家江湖飘呀,哪能不挨刀呀。总有搞坏分区UUID或者fstab被自己搞砸了,从而不能正常的进入linux系统。那么怎么办呢?开机一条grub,进入系统全靠他。
grub命令模式
分区UUID改变因为系统分区UUID的改变,grub找不到启动配置文件grub.cfg,这时候就会黑屏白字,命令提示符 grub。怎么办?我告诉你套路,我们要设定(set)两个变量,插入一个模块,启动这个模块,就可以看到启动菜单了。
两个变量分别是root和prefix,root设置根分区,prefix 设置grub目录。如果不知道哪个分区,只能查看每个分区下有什么内容了。
ls (hd0,msdos1)/
确认眼神,这就是根分区
下面我们就要一气呵成了。
grub>set root=(hd0,msdos1)
grub>set prefix=(hd0,msdos1)/boot/grub
grub>insmod normal
grub>normal
grub加载开机菜单命令
如果没有错误的话,就可以看到启动菜单了,剩下的就不用我说了吧。
启动菜单过时把启动菜单请出来了,可是这个菜单是一个过期的。原因是改了分区,却没有更新grub,就匆忙重启了。怎么办? 只有手动指定启动参数了啊。Linux 需要指定内核地址,root分区。这里root可以根据(hdx,msdosy)来猜测一下,不一定准。
linux /boot/vmlinuz-5.5.0-xxx-amd64 root=/dev/sda1
initrd initrd.img-5.5.0-xxx-amd64
boot
没有特殊情况是可以启动的。
把fstab搞坏了Linux在启动以后,会读取/etc/fstab文件,执行挂载分区操作,有分区无法挂载,则会输入root密码。好巧不巧,然而这时候你的root密码是空的,便会告诉你,root已经被锁定了。怎么办,好说,进入单用户模式。Debian系列的单用户模式,进入方法有点不一样,需要在linux 命令后加 "init=/bin/bash" 。
linux /boot/vmlinuz-5.5.0-xxx-amd64 root=/dev/sda1 init=/bin/bash
initrd initrd.img-5.5.0-xxx-amd64
boot
单用户模式
单用户模式,先要重新挂载根分区,因为fstab是错误的,需要改进一下命令。
mount -o remount,rw /dev/sda1 /
好,现在就可以放心的修正fstab了。
很高兴这篇文章可以帮到需要的人,有什么想法,欢迎评论留言。