CentOS7 win7 u盘装双系统 修复系统

环境: ASUS MB VER K45VD 笔记本电脑一台( i5-3230M 处理器、 SATA 、 Nvidia)、 Windows7 系统

在 win7 下安装 CentOS7

使用 UltraISO(软碟通) 制作 U 盘启动盘
到官网下载安装镜像,插入 U 盘,打开 UltaraISO ,选中下载的镜像,依次点击“启动 -> 写入硬盘镜像”,在弹出的窗口中选择 U 盘,首先用 fat32 格式格式化 U 盘,然后选择写入方式“usb-hdd+”(这个方式根据电脑的硬件环境不同自行选择,有些老电脑不支持这个方式),点击写入开始向硬盘写数据。大概 10 分钟到 20 分钟即可完成,制作完后不用复制任何文件, U 盘大概使用了 4 G。这里还需要修改一下 U 盘中的文件,进入 U 盘,修改 isoLinux/sysLinux.cfg isoLinux/grub.cfg 文件(或者还有其他几个文本文件),修改里面关于启动 U 盘的名称改为现在 U 盘的名称,否则无法从 U 盘安装系统。

划分空闲分区
在 Windows7 下右击图标“计算机”进入计算机管理,点击“磁盘管理”,选择 Windows 分区空闲最多的分区,右击,点击“压缩”盘(最好是最后一个分区,可以将最后一个分区的文件移动到前面的分区),选择压缩的空间,我压缩了 150G 。

安装
重启电脑,选择从 U 盘启动;这里有一个 EFI 的启动方式(默认 u 盘启动会使用这种方式),这是一个较新的技术,选择这个方式和没有 EFI 在启动方式上有区别,似乎要使用 GPT 硬盘,选择哪种方式要看电脑硬件支不支持,较新的电脑一般会支持,我选择这两种方式都可以。选择启动方式后,会进入 CentOS7 的安装界面的选择项,一个是直接安装系统,一个是测试硬件后安装系统,建议测试下硬件是否支持。我选择直接安装系统,进入 CentOS7 图形安装界面,选择语言,选择时区,设置网络,系统分区,设置软件安装,设置 Kdump (用来检测系统错误信息,一般关闭 Kdump )。分区时首先选择手动分区,注意次序,先选择 /boot 分区,500M左右吧,这个分区会存放启动时的镜像文件(选择 efi 方式启动的要先分 /bootefi ,再分 /boot,而没选 efi 方式的会有一个 /bootbios 分区,我没有管它);选择根分区“/”,大概 50G(自己看情况选择大小咯), swap 分区,大概 4G , home 分区剩下的,保存选择,如果不能安装就再次分区,这次选择自动分区保存退出即可;注意选择安装的软件,软件源是本地 U 盘,不用设置,选择安装的软件种类时选择 Gnome ,并且将右边的相关软件都打钩(需要的),这样安装图形界面后有无线网络的图标,很方便(选择编程种类时虽然软件更齐全,但是没有无线网络的图标,设置网络麻烦,并且它的 DHCP 服务还不好设置),关于网络的设置参考可以我另外一篇随笔。

在 Linux 下找回 Win7 的启动项:
在/etc/grub.d/40_custom中添加如下语句增加 Windows7 启动项

menuentry 'Windows 7'{  
            insmod part_msdos  
            insmod ntfs  
            insmod ntldr  
            set root=(hd0,3)          # 我的 Windows7 的 boot 启动分区(有的电脑 boot 文件就在 c 盘里,但是我的被单独划分出了一个分区)是 /dev/sda3
            chainloader +1          # +1 前面有个空格
            boot  
    }

然后执行命令 grub2-mkconfig -o /etc/grub2.cfg (根据 grub2.cfg 文件位置选择目录),重启电脑即可;使用 Linux 系统后一段时间,执行上面的命令就能自动识别 Windows7 的启动分区了,不用在 /etc/grub.d/40_custom 中添加语句。

grub rescue

造成这种不良事故的罪魁祸首是我的好奇心和 testdisk 这个强大的数据恢复软件,很可怕的性能,我没有完全了解他的操作,结果将我的分区搞坏了,系统启动不了,之后好好研究下他的操作。

我的系统配置是:CentOS7,grub2,mbr。

grub rescue 修复过程:
grub rescue 中能用得到命令:
ls set prefix root insmod
首先输入ls查看系统中有几个启动盘,我的情况是(hd0) (hd0,msdos1)………如果你知道自己的启动盘可以略过这段。
然后依次使用ls (hd0,msdosX)这条命令,如果出现filesysrem未知,则你的grub不在这里面,出现file not found 或者一大串文件列表,并且有grub. cfg这个文件,那么恭喜你,找到grub所在的磁盘了,我的是(hd2,msdos)
我的/boot是单独分区的,使用grub2,因此下面的情况适仅适合/boot单独分区的咯,如果你是没有单独分区的情况,请到网上搜索,大致的过程一样,仅仅目录grub的位置不同(没有亲自实践,不敢肯定)。

执行下面几条语句:

set root=hd0,msdos2
set prefix=(hd0,msdos2)/grub2
insmod normal
normal

这样就可以正常启动了,具体参数视自己情况而定。
启动之后进入系统,执行下列命令,不然每次启动都要进入grub rescue ,很不好。
grub-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/sda
这样就行了,网上资料说这样是重建了MBR分区。

重建grub2

使用livecd或者u盘安装盘,进入系统后有sh#提示符。

sudo mount /dev/sda2 /mnt    #/dev/sda2是grub2所在的分区,可以进入grub后使用find /boot/grub/grub.cfg找到。

sudo grub-install root-directory=/mnt /dev/sda      #/mnt是系统安装的位置,重建的grub2在第一硬盘。这里的根目录不是电脑硬盘的目录(这条命令似乎不行)

相关经历:

下面是我这次悲惨遭遇的缘由,悲惨是因为我的磁盘中除了Linux系统启动和运行需要的分区还完好外,其他的分区都被销毁了,也许在经历一番波折后还能找回来,毕竟在磁盘分区消失后我没有在上面进行任何操作,数据没有丢失,以此为鉴。

前段时间我的电脑系统还是win7,在vmware虚拟机中装ubuntu学习了Linux下的shell编程,之后一段时间学习了系统方面的知识,然后就想装个centos7——win7的双系统,个人更喜欢centos,ubuntu更适合入门吧。经历各种挫折后终于装好了,关于如何安装的centos7与win7双系统,以后有时间我会写一篇博文详细记录下来的,波折不少,记录下来对我现在的时间来说不允许。其中的经验既可以与你们分享,又能让自己在很久之后还记得自己的成长历程。

这次“事故”是因为我昨天在virtual box中装好了win7的虚拟系统,所以我就想将笔记本上的win7卸载了,直接在虚拟机中运行。想到就做到,我直接将win7系统盘格式化,然后执行

grub-mkconfig -o /boot/grub2/grub.cfg

这个命令,重启系统。之后正常就如centos的启动过程,可是一直卡在了一条进程上面

a starting run in /dev/system

system 是我的win7系统盘分区(被我格式化的那个分区),我设置在系统启动时默认挂载win7的系统分区在 /system 目录下,问题就出在这里,我将它格式化后系统无法识别这个分区,无法挂在,因此系统集一直卡在这里,无法进入图形界面。在网上赵了很久,还下载了testdisk这个强大的软件 *_* ,最终在archLinux.org找到了解决方法(archLinux.org是个很棒的网站,我很多问题都是在上面找到解决方法的,他并不局限谈论archLinux这个发行版的,并且网站的管理也很好,不过似乎中文的版面很少很少,英语要有点基础)。

解决方法就是修改 /etc/fstab 中有关挂载 system 分区的语句,将他注释掉,重启系统,OK。
问题全都完美的解决了,win7已经从我的硬盘中消失了(除了虚拟数据),perfect。

可惜我的手有点发痒,想起昨天下载的testdisk软件还没有实践过呢,要不要实践一下呢(魔鬼般的想法毁灭了我宝贵的数据,我写的程序都消失了吗?),于是我就用他来恢复了我的win7系统盘,扫描了一晚上,将数据全部扫描出来了,然后我就将他写进了系统中,重启系统,很顺利。之后我就进入了 grub rescue 这个大坑。一番bing 搜索之后,终于找到上面的方法重启了系统,修复了系统,可是万万没想到,我的system盘恢复了,其他的几个关键的数据分区消失了,痛心疾首啊,这时突然发现grub居然自动识别了 windows7 的启动程序,以下勾起了我的好奇心,我能不能在window上恢复我丢失的文件呢?想到做到,重启,进入win7。这里不得不佩服下testdisk了,win7居然一点没变的重启成功了,就好像我并没有格式化他一样(快速格式化只是改变磁盘的属性,并不会改变数据,而恢复数据就是重建磁盘的相关信息,所以只要不覆盖原来的数据,就可以完美恢复),然后我下载了一个360(以前都用金山,用了很久,感觉比360好用,但是在系统底层方面好像不是很擅长,我感觉自己系统有些问题,可是他一直没有检测出什么问题,一直没有检测出来我的耳机驱动有什么问题,就是插上耳机没有声音。可能底层的问题和这些所谓的电脑管家、电脑助手关系不大,可惜我想修复下系统都不行,驱动精灵也是坑),希望他能修复我的系统引导问题,以前我就用360重装过系统,不过360除了要你绑定一大堆软件外,并没有什么用哈。

然后我就重启进入了centos,再次删除了system这个盘。这就是这次数据丢失的全过程了,我还期望用testdisk恢复我的数据呢。希望这篇文章能帮到和我有相似经历的同学,切忌不要再已经删除的分区上进行任何操作,除非你确定上面没有什么重要的数据,否则书局恢复软件也回天乏力,我在操作磁盘的过程中,看到root home boot 一类的Linux 安装时创建的分区后都远远避开,即使只是大小和他们相同的磁盘也绝对不进行任何操作,否则我现在就不是在这里写下我的经验,而是重装系统了。

吐槽

这里吐下槽,博客园在手机上的网页版有点问题啊,我在手机的记事本中编辑了这个博文,打开手机浏览器,进入我的博客,想粘贴这段文字,因为我使用的google输入法,没有粘贴选项,平时都是使用andriod自带的粘贴功能,可是我在编辑博文时发现无法调用andriod的粘贴功能,结果我通过邮箱,在电脑中打开邮件才将这篇博文发布上来了,希望博客园越做越好,喜欢这个清净的地方。

参考:

http://blog.hellosa.org/2010/11/29/grub-grub2-rebuild.html
http://www.mintos.org/newbie/ubuntu-restore-grub2.html
http://ying.hopto.org/wp/%E4%BD%BF%E7%94%A8grub2%E9%87%8D%E5%BB%BAmbr/
http://blog.csdn.net/sdfgh2046/article/details/5770810

上一篇:20145308刘昊阳 《Java程序设计》第2周学习总结


下一篇:c# maiform父窗体改变动态的gridew 奇偶行变色的快捷方法