开机进入grub解决方法
1.首先利用ls命令,找到Ubuntu安装在哪个磁盘分区
-
比如输入ls后我的机器列出的磁盘分区信息如下:
(hd0),(hd1),(hd1,gpt3),(hd1,gpt2),(hd1,gpt1)
-
查找包含grub.cfg文件的分区
假定通过 ls (hd1,gpt2)/boot/grub 发现了grub.cfg文件,则表明Linux安装在这个分区
2. 找到Linux的/boot分区,以及/根分区所在的磁盘位置
输入 cat (hd0,gpt2)/etc/fstab
会输出类似下面的信息
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during installation
UUID=dd6e0539-1369-4938-8af5-378f02cf05cf / ext4 errors=remount-ro 0 1
3. 指定Linux内核,及/所在分区
grub> linux (hd0,gpt2)/boot/vmlinuz-4.8.0-36-generic ro text root=/dev/sda2
4. initrd命令指定initrd文件
grub> initrd (hd0,gpt2)/boot/initrd.img-4.8.0-36-generic
5. boot引导系统,开机
grub> boot
6.永久解决
这样就可以进入图形化界面了,但是每次重启都又重新出现grub界面; 所以进入界面后,需要操作:
>sudo update-grub
>sudo grub-install /dev/sda
按照大部分教程,到这一步就可以重启万事大吉了,但是也可能会出现sudo grub-install /dev/sda 这步骤报错了。。。
Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: error: embedding is not possible, but this is required for cross-disk install.
这个时候输入:
>sudo parted /dev/sda set 1 bios_grub on
>sudo parted /dev/sda print
>sudo grub-install /dev/sda
这样既可成功。如果还是有问题,例如多块硬盘的时候,需要在BIOS里改变启动顺序既可。