双系统重装win7重新加载Ubuntu

 之前一直使用的是winXP+Ubuntu的双系统,后来winXP出现了些问题,而且越来越慢,好吧,既然工作的主系统是Unbutu,那么从用户体验上来说,win7无疑是更好的选择.
 覆盖安装win7后,Ubuntu的启动项直接不见了,手上又没有阿j哥的Ubuntu的安装盘,只能用工具去引导了.
网上很多相关资料都是Ubuntu老的版本的,挣扎了几个小时后,终于搞定了.
 所需工具:1.grub4dos 2.Ubuntu的livecd或者u盘中的linux系统,我用的是KNOPPIX.
 准备好后就可以动手了。
 1.进livecd的Ubuntu或u盘中的linux,找到:文件系统/boot/grub/grub.cfg,用记事本打开,记下ubuntu的启动命令(有很多个,我们只需要第一个);
 2.安装grub4dos,即解压后把grldr,grldr.mbr,menu.lst粘到X盘(win7所在分区)。
 3.X盘新建boot.ini,键入[boot loader]
[operating systems]
C:\grldr.mbr="grub4dos"

 4.在menu.lst中键入之前记下的ubuntu启动信息(不同电脑,系统参数不同)
 title Unbuntu 10.10
root (hd0,1)
kernel /boot/vmlinuz-2.6.35-24-generic root=UUID=1fe21987-20c1-4eb1-9a8a-c943e53b2f7e ro   quiet splash
initrd /boot/initrd.img-2.6.35-24-generic
boot
 5.重启,选grub4dos,再选Unbuntu 10.10,可爱的logo出现了。
 也可以直接用grub4dos的commondline来进系统,不过麻烦了。

 裝pe的话会顺坏grub4dos,重复2->5步骤即可。

 就是这样。

这篇是一年前写的文章,当时发在校内上了,看的人也不多,结果当时就没怎么在意。

但这两天刚好又在倒腾电脑,发现这文章写得真是 。。。 烂。

说明不清楚,还有拼写错误,想起了一句话:错误的注释比没注释更可怕。

改正如下:

 假设电脑上已装有Ubuntu,重装win7到C盘后引导项被删除。为重新引导ubuntu,我们先在win7上装grub4dos。

原理是利用win7的bootmgr。

准备软件:grub4dos软件。

步骤:

1.在X盘中新建boot.ini,在里面写入

[boot loader]
[operating systems]
C:\grldr.mbr="grub4dos"

这样在开机的时候bootmgr就能从boot.int中读取启动信息,在次启动的时候就能选择启动win7或是启动grub4dos;

2.解压grub4dos后拷贝文件夹中grldr,grldr.mbr,menu.lst三个文件到C盘,到这grub4dos就算装好了,开机后能够选择grub4dos引导;

3.menu.lst中记录的是引导信息,这里我们有利用它来引导Ubuntu,先要获得Ubuntu的启动信息,10.10之后的系统都存放在/boot/grub/grub.cfg,有两种方法,1)在装好Ubuntu后,打开/boot/grub/grub.cfg,找到如下字段

menuentry 'Ubuntu,Linux 3.0.0-12-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set
root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 60aeeaf3-1d61-47f4-a2c5-72d18e775e86
    linux    
/boot/vmlinuz-3.0.0-12-generic root=UUID=60aeeaf3-1d61-47f4-a2c5-72d18e775e86 ro   quiet splash vt.handoff=7
    initrd  
 /boot/initrd.img-3.0.0-12-generic
}

红色的字段就是有用的信息,新建一个文档把它存起来;2)如果是之前没有记录启动信息,那在装完win7之后可利用Ubuntu的livecd,或是U盘linux系统来获取;

4.编辑menu.lst,

 title Unbuntu 10.10
root (hd0,0)
kernel 
/boot/vmlinuz-3.0.0-12-generic root=UUID=60aeeaf3-1d61-47f4-a2c5-72d18e775e86 ro   quiet splash
initrd
/boot/initrd.img-3.0.0-12-generic
boot

注意一下第二行,grub.cfg中写的是 root='(hd0,msdos1)',menu.lst中也这样写的话会提示错误,改成hd0,0后就没问题了,意思是挂在第一块硬盘的第一分区。

5.grub4dos还有很多其他功能,比如引导pe,安装系统,这里就不意义赘述了。


2014年9月更新

下面的方法不用grub4dos,只要一个俄ubuntu的启动盘(光盘或者U盘)就可以,之用几条命令就可以修复启动项。

Ubuntu12.04和Ubuntu14.04测试通过。

参考:http://www.cnblogs.com/dolphin0520/archive/2012/03/11/2390175.html


1)准备一张ubuntu系统安装盘;

2)将ubuntu系统安装盘放入光驱,重新启动计算机,进入BIOS,将开机启动设置为光驱(CD/ROM)启动方式;

3)然后保存设置退出,等待片刻就进入到ubuntu的安装界面,此时有两个选择

1.在该光盘上试用ubuntu系统

2.将ubuntu系统安装到计算机上

选择"在该光盘上试用ubuntu系统",进入到ubuntu系统之后,打开终端(快捷键组合是Ctrl+Alt+T);

4)在终端下输入sudo -i(获得管理员权限)

5)在终端下输入fdisk -l(是小写的字母'L',查看盘符列表)

会出现类似下面的信息:



    Disk /dev/sda: 320.1 GB, 320072933376 bytes
    255 heads, 63 sectors/track, 38913 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0x70f7ab9c

    Device Boot Start End Blocks Id System
    /dev/sda1 1 1627 13060096 27 Unknown
    Partition 1 does not end on cylinder boundary.
    /dev/sda2 * 1627 1639102400 7 HPFS/NTFS
    Partition 2 does not end on cylinder boundary.
    /dev/sda3 1639 8166 52429859 7 HPFS/NTFS
    /dev/sda4 8167 38913 246975277+ 5 Extended
    /dev/sda5 8167 32385 194539082+ 7 HPFS/NTFS
    /dev/sda6 32386 38788 51432066 83 Linux
    /dev/sda7 38789 38913 1004031 82 Linux swap / Solaris

然后找到ID为83的盘符,根据上面显示的信息可知当时装ubuntu时是装在sda6这个分区。

6)在终端输入mount /dev/sda* /mnt

(*代表ubuntu系统所在的分区,即上一步显示结果中ID为83的分区号,如上面显示的是在sda6这个分区,

所以输入的是mount /dev/sda6 /mnt

注意:mount后面有一个空格,sda6后面也有一个空格,这两个空格千万不要漏掉,否则会报错)

7)上一步结束之后,继续在终端中输入grub-install --root-directory=/mnt /dev/sda

等待一会儿,若出现Installationfinished,No Error Reported则表示成功了

(注意:grub-install之间没有空格,--root前面有一个空格,--root前面是两个'-',/mnt后面有一个空格)

8)到此,ubuntu引导基本恢复,重启电脑后,就可以看到熟悉的ubuntu引导界面了,进入ubuntu系统,打开终端输入

sudo update-grub

等待片刻显示以下信息:

Generating grub.cfg ...
    Found linux image: /boot/vmlinuz-2.6.31-20-generic
    Found initrd image: /boot/initrd.img-2.6.31-20-generic
    Found memtest86+ image: /boot/memtest86+.bin
    Found Windows Vista (loader) on /dev/sda1
    Found Windows 7 (loader) on /dev/sda2
    done

恢复工作便全部完成了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值