好不容易下决心装个双系统,上次安装使硬盘分区表被破坏,所有数据丢失,至今元还元气大伤(哎,我==菜鸟 的必经之路)。
用u盘做了ubuntu11.10的启动盘,进行安装,网速太慢下载语言包下了半天,好不容易案子完成,发现无法进入win7了,启动列表中明明有启动项,点击启动后,光标在左上角闪了两下又回到启动列表界面了。找了打半夜的方法,没搞定,最好找到这个论坛了http://forum.ubuntu.org.cn/viewtopic.php?t=353596
这位老主做了十足的准备来提问(也是,巧妇难为无米之炊),也没枉费该楼主一番心思,正好有位天神路过此地,救了我等一条老命。
症状:ubuntu安装成功,完美运行,启动列表中有ubuntu和win7的启动选项。ubuntu可以启动,win7启动之后进入一个新的空白界面,光标在左上角闪烁几下之后又返回到启动列表界面(试了n次,发现是个四循环)。
既然有win7的启动项,说明win7的系统暂时没有罹难,好多人可能都为此一下牺牲了两个系统,哎悲剧。
解决方法:看那个帖子,楼主贴出了/etc/default/grub和/boot/grub/grub.cfg两个文件的内容,大致看了一下跟我的差不多吧,估计问题不在这里面(我==菜鸟的一面之词),之后二楼那位天神需要sudo fdisk -lu命令执行的结果(FDISK进行硬盘分区从实质上说就是对硬盘的一种格式化,-lu可以现实每个分区的起始地址)这条命令的作用是查看硬盘的详细分区情况。
结果如下:
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x179d179c
Device Boot Start End Blocks Id System
/dev/sda1 * 63 83891429 41945683+ 7 HPFS/NTFS/exFAT(表示win7系统安装在该分区中即C盘,如果win系统安装在其他盘就要关注相应的分区)
/dev/sda2 83891491 509628415 212868462+ f W95 Ext'd (LBA)
/dev/sda5 83891493 146818034 31463271 7 HPFS/NTFS/exFAT
/dev/sda6 146818098 385897364 119539633+ 7 HPFS/NTFS/exFAT
/dev/sda7 385897428 505628352 59865462+ 83 Linux
/dev/sda8 505628672 509628415 1999872 82 Linux swap / Solaris
注意其中的红色部分(I/O size (minimum/optimal): 512 bytes / 512 bytes同时读入和写出的块的大小(不理解),主要关注512就行了)
好像从上面的结果可以得解决方法了
一次执行下面三条语句:
sudo grub-install /dev/sda (安装grub到/dev/sda)
sudo update-grub (更新grub)
关键是下面这句花很难理解(不同的用户参数是不同的)
sudo dd if=/dev/sda of=/dev/sda bs=512 count=1 seek=63 skip=83891429
dd是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
if=文件名:输入文件名,缺省为标准输入。
of=文件名:输出文件名,缺省为标准输出。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
bs=512应该是根据前面有好多512得出的(如果你执行了sudo fdisk -lu后发现I/O size (minimum/optimal): 512 bytes / 512 bytes还有其他数字就要小心了)
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数
count=1就是仅仅拷贝一个块到指定文件
skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
seek=63,这里的632048是来自/dev/sda1 * 63 83891429 41945683+ 7 HPFS/NTFS/exFAT中的63起始磁柱
同理skip=83891429也是来自/dev/sda1 * 63 83891429 41945683+ 7 HPFS/NTFS/exFAT中的63起始磁柱
执行完
sudo grub-install /dev/sda
sudo update-grub
sudo dd if=/dev/sda of=/dev/sda bs=512 count=1 seek=63 skip=83891429
之后就海阔天空了重启试试就知道后果了,虽然本菜鸟不才,不明白这些命令的意思,照葫芦画瓢还是可以的。以上好多解释都来自www网络,顺便了解一下这些命令。