本人在工作中经常会用到两个系统,因为重装微软windows操作系统导致引导问题,或者是因为改变硬盘分区导致系统不能正常引导时有发生,特把遇到的问题整理如下
一、第一种情况
双系统win8、win7和ubuntu 14.0.4
后来因为想安装android x86 4.4 体验一下。分区盘增多减少导致系统不能引导,开机什么显示都没有光标闪烁
1、用live cd 或者启用syslinux U盘(Fedora和ubuntu 引导安装盘)
2、把boot所在分区挂载上去
#a.mount /dev/sda11 /mnt
/dev/sda11是boot所在的分区(因为我boot没独立分区所以这个分区也是根分区)
#b.然后安装grub2
#update-grub (这步我没运行)
grub2-install --root-directory=/mnt /dev/sda
#若是ubuntu系统光盘引导,那么是这面的操作命令,把引导写入/dev/sda
sudo grub-install --boot-directory=/mnt/boot /dev/sda
3、重启电脑
#若出现下面情况,启动后出现(用fedora会出现grub>)按下面方式处理。要是你按上面sudo grub-install 能直接进系统
grub>
grub>set root=(hd0,msdos11)
##boot所在在分区
grub>linux /boot/vmlinuz-3.13.0-32-generic root=/dev/sda11
##boot所在分区/dev/sda11
grub>initrd /boot/initrd.img-3.13.0-32-gerneric
grub>boot
#开始引导进登陆系统执行
sudo update-grub
#重新写入grub引导
sudo grub-install /dev/sda
#重启电脑你会看到引导界面正常使用
==========================================================================
二、第二种情况
#ubuntu 14.0.4
#双系统因为改变磁盘磁盘分区导致开机出现
GRUB loading
error:unknow filesystem
grub rescue>
#处理方式有两种情况
#方法1:
grub rescue>ls
##查看分区情况根据ls (hd0,msdos9)可以查看到能识别的分区系统文件
grub rescue>set root=(hd0,msdos9)
##boot分区不是单独分区的情况
grub rescue>set prefix=(hd0,msdos9)/boot/grub
grub rescue>insmod /boot/grub/i386-pc/normal.mod
grub rescue>normal
引导进入系统后修复grub
sudo update-grub
sudo grub-install /dev/sda
或者sudo grub-mkconfig -o /boot/grub/grub.cfg && sudo grub-install /dev/sda
#方法2:
#用live cd 或者live usb启动
##boot没有单独分区,linux安装的根目录下
sudo mount /dev/sda9 /mnt
sudo grub-install --boot-directory=/mnt/boot /dev/sda
##boot单独分区
sudo mount /dev/sda9 /mnt
sudo grub-install --boot-directory=/mnt /dev/sda
#重启后系统能正常引导和使用
========================================================
三、编辑grub.cfg添加启动引导
ubuntu grub 添加操作系统启动项,按严格来说是不能直接操作grub.cfg(另外文章说明)
sudo vi /boot/grub/boot
#添加内容根据实际情况
#我安卓系统安装在/dev/sda1
menuentry 'android' --class android --class os {
# recordfail
# load_video
# gfxmode $linux_gfx_mode
# insmod gzio
# insmod part_msdos
# insmod ext2
# set root='hd0,msdos9'
# if [ x$feature_platform_search_hint = xy ]; then
# search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos9 --hint-efi=hd0,msdos9 --hint-baremetal=ahci0,msdos9 b6b51490-fca4-4a52-9bb2-17b1ca2ff3fc
# else
# search --no-floppy --fs-uuid --set=root b6b51490-fca4-4a52-9bb2-17b1ca2ff3fc
# fi
# linux /boot/vmlinuz-3.13.0-37-generic root=UUID=b6b51490-fca4-4a52-9bb2-17b1ca2ff3fc ro quiet splash $vt_handoff
# initrd /boot/initrd.img-3.13.0-37-generic
#splashimage=/grub/android-x86.xpm.gz
set root='hd0,msdos1'
linux /android-4.4-r1/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 video=-16 SRC=/android-4.4-r1
initrd /android-4.4-r1/initrd.img
}
#不要运行sudo update-grub,这样你刚才编辑的会被覆盖
#sudo shutdown -r now