您的位置:首页 > 运维架构 > Linux

linux 重启进入grub

2016-11-06 16:03 399 查看
我的系统 redhat7.0

事情发生起源:

之前一直没有更换redhat的源,昨天晚上我成功更换了源。

然后,我使用redhat自带的软件更新,进行更新,自动检测更新,发现需要下载700Mz左右的安装包

挺长的时间,我离开一段时间,再回来看见提示更新失败(我怀疑是网络的原因,因为我使用的网络不稳定),接着有提示我,需要重启(好像是已经有部分安装了),
刚好不用电脑,就直接重启,想看看样子。

结果,呵呵,直接进入grub界面,这个界面的样子:
Minimal bash-like line editing is ....
...... ......
...... ......

grub>

就是这个样子,这个是grub2.0的环境。(怎么确定自己的grub版本 输入 help 显示出所有当前grub可用的命令,不同grub版本的命令不太一样的,额,我不是特别清楚)

该干嘛呢?

通过grub引导系统

首先,我输入 ls 命令
显示出所有的分区信息,如下:
(lvm/rhel-root) (lvm/rhel-home) (lvm/rhel-swap) (hd0) (hd0,gpt1) (hd0,gpt2) (hd0,gpt3)

看到这个,我很好奇 (lvm/rhel-root) (lvm/rhel-home) (lvm/rhel-swap) 这三个分区.

再次使用ls 命令查看分区内的信息
ls (lvm/rhel-root)/
显示出该分区内的所有内容(如下):
./ ../ boot/ etc/ usr/ mnt/ opt/ (这是我根据记忆复述的)
我紧接着又 ls (lvm/rhel-root)/boot/
显示出这个分区里的boot文件夹下的内容(如下):
./ ../
啥都没有。

之后再网络上看到有人说可以在/ect/fstab 中查看到分区信息

cat 是用来查看文件内容的命令(grub2.0支持这个命令)
于是我输入命令  cat (lvm/rhrl-root)/etc/fstab
显示出fstab文件信息(如下):
#...
#...
#...
/dev/mapper/rhel-root     /
UUID=5ED3....273          /boot
UUID=01T2...8380          /boot/efi
/dev/maper/rhel-home      /home
/dev/mapper/rhel-swap     Swap

这个文件提供的信息非常重要,是我最后解决问题的关键。
这个文件描述信息就是指出各个分区对应的(不知到怎么讲)

反正我这个文件告诉我 /dev/mapper/rhel-root  就是对应这 根目录 /

我们继续:
四句 grub 命令引导内核
grub> set root=(hd0,2)
grub> linuxefi /vmlinuz(这里用tab键补齐,但我发现竟然有3个vmlinuz文件,我很慌,随便选了一个)  root =/dev/mapper/rhel-root  (这里就是关键)
grub> initrdefi /initram....(也是用tab键补齐,也是发现有3个initra..文件,很慌,挑了一个和上面我选的vmlinuz一致的)
grub> boot

搞定!

分析四句话:
set root(hd0,2) 把grub指向我们想引导进入的发行版所在的分区(关于hd0,2是怎么填的,我之前用ls (hd0,2)/ 这个命令查看到(hd0,2)这个分区下面有vmlinuz... initr....文件,其他的分区都没有,所以我确定发行版文件,内核等文件都在这个分区里)
linuxefi(这个命令,网上有看到用linux命令,只是我的grub只支持linuxefi命令,所以就用了这个) /vmlinuz....   root  /dev/mapper/rhelroot 这句话就是告知 grub 内核镜像再分区中的位置,以及根文件系统的位置(所谓根文件系统就是我在 /etc/fstab 中查看到的根目录 /  对应的那个分区,所以我填写的是 /dev/mapper/rhel-root)
initrdefi /initram......这句话就是设置虚拟文件系统文件的位置
输入boot 这是grub 将会引导进入指定的操作系统

总的来说,就是做填空题,答案自己用grub命令找,
三个填空题  1.  set root=(???)
2. linuxeft /vmlinuz????
3. initrdefi /initr???
或者 
1. set root=(???)
2. linux /vmlinuz????
3. initrd /initr????


成功进入了系统之后,还有最后一件事,很重要,就是再系统内进行修复,额,我还没解决。

2016-11-06 16:02:06 By JackLu
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux grub