最近先装了win10而后又安装了Centos7,结果无法进入centos,然后又删除Centos7安装了一个centos6.9,引导菜单这下倒有了,结果无法进入win10了,还好之前有过经验,在 /boot/grub/grub.cfg 文件中添加了如下代码:
然后终于看到了win10的启动引导了。
可是我老觉得centos6有点老了,想装上centos7然后又回到win10将 CentOS-7-x86_64-DVD-1708.iso 用ultraISO刻到我的U盘上,直接删除了Linux的分区(千万不要学我,不然会后悔的),然后重启电脑。第一次手慢了没按到F9进入启动方式的界面(我的是HP,快捷键就是F9),然后屏幕上只有一个大大的 ERROR12,不过此时我一点也不慌,我还要重装centos7呢,装完说不定就好了呢,可事实却扇了我一个打耳光,装完centos7后屏幕上出现了一个大大的 ERROR17,这下可真的懵逼了。
咋办呢,本想再重装一次,结果因为已经在磁盘上安装过了系统,再次安装就不允许了,然后整个人彻底陷入困境。
拿着手机不断的搜ERROR的解决方式,偶然看到了一个用U盘给安装Linux的解决途径,通过进入shell,然后给电脑添加启动引导。还好我有U盘的Linux,然后成功的通过rescue的方式进入了centos7,大致的过程如下:
进入选择U盘启动,进入Linux安装选项然后移动光标到:
Troubleshooting
Rescue a CentOS
1) continue
2) xxxxxx #忘了是啥了
3) shell
4) xxxxx #这个也忘了是啥了
# chroot /mnt/sysimage
# grub2-install /dev/sda #centos7用的是grub2
最关键的时候终于来了,我觉得这里可能和我的电脑有关系,也有可能是centos7的镜像有问题。按常理来说至少能看到centos的启动引导菜单,但是我的显示器上却没有出现,只有一条绿杠一闪而过。
最后的步骤当然是添加win10的启动引导了。
由于原生的centos7并不能识别windows的NTFS,所以先让Linux识别windows的分区,进入终端,使用su命令进入root用户,然后输入
# yum install ntfs-3g
# grub2-mkconfig -o /boot/grub2/grub.cfg
# Found Windows 10 (loader) on /dev/sda1
# vim /etc/default/grub
进入grub文件,进行如下修改:
GRUB_TIMEOUT=2 #选择系统时候的倒计时时间
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="gfxterm" #这里原来的值是console
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_GFXMODE=1440x900,1366x768,640x480 #设置分辨率
vim编辑器,按 I(insert的i)键进入编辑状态,然后才可以输入,只能用方向键移动光标,不能用鼠标。。。 编辑完成后,按Esc键退出编辑状态,然后再输入冒号 :(Shift+;),再输入 wq (写入并退出,write&quit)回车保存修改并退出vim编辑器。
这里关键是要将 GRUB_TERMINAL_OUTPUT 的值设置为 gfxterm,如果是console的话,开机就没有启动菜单,我估计它都在后台报错了。。。我对Linux了解也有限,也不知道对不对,不过我的确实是通过修改这个参数解决的问题,终于看到了可以选择windows或centos7的界面了,这还是之前用win7装centos得出来的经验。
然后是默认启动修改,毕竟日常用的windows还是比较多的。
可以使用命令:
# grub2-set-default "Windows 10 (Loader)(on /dev/sda1)"
回车确认输入,然后可以查看是否生效:
# grub2-editenv list
# saved_entry= "Windows 10 (Loader)(on /dev/sda1)" #我的结果大概是这样的
最后重启系统,就可以看到win10已经被设置为默认的启动系统了。