磁盘无损分区
原来的系统上有很多重要的数据,分区的时候整个硬盘就分了一个区,要想装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
进入系统