美文网首页
记一次Ubuntu下安装Win7的过程

记一次Ubuntu下安装Win7的过程

作者: 多啦A狗 | 来源:发表于2019-06-21 11:55 被阅读0次

    磁盘无损分区

    原来的系统上有很多重要的数据,分区的时候整个硬盘就分了一个区,要想装win7就必须再分一到两个主分区。进入PE,用Diskgenius调整分区容量,空出来的空间再分两个区。

    安装Win7

    公司电脑不能联网不能插u盘,只能用光盘安装系统,进入安装界面后系统提示需要光盘驱动,真是哔了狗了,光盘要啥驱动,无奈只能进PE用系统安装工具把系统文件先写进磁盘然后安装。文件写入完毕后重启系统,提示Missing Operating System,因为安装工具把Windows的MBR写入了磁盘,而Windows分区目前并不是激活分区所以提示没有操作系统,此时再进入Diskgenius激活Windows所在的分区,重启进入系统,顺利安装Windows。但是由于修改了MBR,现在的Ubuntu无法启动了。

    修复Ubuntu启动项

    原来打算win7装好后用easybcd新建Ubuntu的启动项,但是新系统没有任何驱动文件,无法联网,无法插光盘变成了一个信息孤岛。然后后来发现easybcd添加的启动项也没用,进入系统显示Try (hd0, 0): EXT2错误,不知道啥原因。放弃在Windows启动管理器启动Ubuntu的想法,改用Ubuntu启动管理器grub2启动Windows。

    使用grub2启动管理器

    这中间走了很多弯路,具体的弯路就不一一描述了。使用Ubuntu光盘进入使用而不安装的临时系统,使用命令行把主硬盘启动管理器改成grub2,命令如下:
    假如你的ubuntu 的 / 分区是sda7,又假如 /boot分区是 sda6,用livecd启动,
    在终端下输入

    sudo -i
    mount /dev/sda7 /mnt
    mount /dev/sda6 /mnt/boot  # 如果没 /boot 单独分区这步跳过
    grub-install --root-directory=/mnt/ /dev/sda # 这步就是在硬盘上安装grub
    

    如果grub.cfg己丢失,需要重建的还要执行

    mount --bind /proc /mnt/proc
    mount --bind /dev /mnt/dev
    mount --bind /sys /mnt/sys
    chroot /mnt 
    update-grub2 # 当前电脑的系统必须使用grub2,不然直接进入grub命令行,需要手动加载系统内核
    umount /mnt/sys
    umount /mnt/dev
    umount /mnt/proc
    exit
    

    经过上述操作之后就可以进入grub2启动管理器,也可以顺利进入Ubuntu,但是没办法进入win7,现象是先花屏,然后没反应。继续搜索解决方案,找到一条:
    进入Ubuntu命令行手动增加启动项:

    sudo gedit /etc/grub.d/40_custom
    

    在文档最下面增加:

    menuentry '搜索并启动windows7'  {
       recordfail
       gfxmode $linux_gfx_mode
       insmod gzio
       insmod part_msdos
       insmod ntfs
       search --no-floppy --file --set=root /bootmgr
         ntldr /bootmgr
    }
    

    然后再更新一下grub启动项:

    sudo update-grub2
    

    重启进入启动管理器,选择新建的“搜索并启动windows7”,顺利进入win7。另外还有系统生成的一个win7启动项,但是没用,丢在那不管它就行,删了有可能会影响有用的这个。

    grub命令行手动加载内核

    如果在安装grub时没有使用

    sudo update-grub2
    

    而是使用了

    sudo update-grub
    

    会安装一个低版本的grub,重启后进入grub命令行,进入这个命令行后可以手动加载内核进入系统。

    grub>ls # ls之后会出现很多分区,进入/boot所在的分区,我这里是(hd0, msdos1)
    grub>ls (hd0,msdos1)/ # 显示/boot下的文件,我们需要vmlinuz开头和initrd开头的文件
    grub>set root=(hd0,msdos1)  # 这个是vmlinuz和initrd所在分区,如第一分区是 (hd0,msdos1),要搞不清楚就用 grub>search -s -f -n /vmlinuz
    grub>linux /vmlinuz root=/dev/sday  # sday的是你的 / 分区号
    grub>initrd /initrd
    grub>boot
    

    进入系统

    相关文章

      网友评论

          本文标题:记一次Ubuntu下安装Win7的过程

          本文链接:https://www.haomeiwen.com/subject/lhaeqctx.html