适用场景
本文不适用于Windows下硬盘安装Fedora20,Windows下硬盘安装Fedora可以使用Grub24Dos、EasyBCD等,请移步相关文档
本文适用于已有Linux系统后继续尝试其他发行版系统,或者说新买电脑后规划双系统时参考。事实上,本文介绍的方法可以说是"三系统共存":原有的Windows、最小化安装的Linux、准备安装的新版本Linux(此处为Fedora20)。
本文特别适用于某一个发行版的爱好者,新出发行版就想替换掉老的系统尝试一下的情况。比如,若干年前Fedora16出来时候,一时兴奋刻了一张DVD光盘就安装了双系统,接下来Fedora系列推新的时候不想每个版本都刻一个光盘,却又想尝试新系统。这时候就要规划一下了,个人觉得采用"三系统共存"有以下优点:
-
- 中间层:在Windows和想安装的Linux版本之间放置了另一个Linux中间层。万一其它两个系统出什么问题了,还进入最小化安装的Linux,好歹可以mount一下,把重要数据拷出来……
- 扩展性:Windows系统不会被修改,安装其他版本的时候不用修改Windows下的配置文件。因为这时候的Grub配置文件不在Windows系统里面。
以Fedora20为例,本文介绍的步骤如下:规划磁盘分区;最小化安装Fedora低版本(引入Grub和另一个系统);安装Fedora20
磁盘分区示例
三个系统依次在逻辑磁盘上分布,规划好安装分区是重要的一步。例如500GB的硬盘,可以留100GB空闲分区用来安装另外两个Linux系统:其中最小化安装的Linux可以分配15GB(留下足够的空间放置Fedora20的DVD镜像),剩下85G安装Fedora20。
下图是一个磁盘分区的示意图
相对应的分区图如下,整个磁盘在Linux系统中编号为/dev/sda
注意:上图是使用分区软件DiskGenius截图,分区的编号和Linux系统对磁盘分区的编号不同!上图中编号为n对应Linux中分区为n+1,如上图中扩展分区序号为3,在Linux系统中对应/dev/sda4。可以看到sda4(上图编号3)为扩展分区。分区sda5-sda7(上图编号4-6)对应Windows下的三个磁盘分区。而sda8和sda9(上图编号7和8)对应最小化的Fedora安装分区(sda8为根目录所在分区,sda9对应为swap分区)。sda10-sda13(上图编号9-12)为硬盘安装的Fedora20系统所在的分区,在这里没有使用LVM磁盘格式,而是把Fedora20系统安装到4个独立的分区上。
光盘最小化安装Fedora低版本
这一步的目的是为了引入Grub(Grub2)装载程序,同时引入一个最小化安装的Linux系统,用以提取Fedora20的DVD数据,最小化安装的过程非常快。以上面分区图为例,最小化Linux安装在了sda8、sda9,分别作为根目录分区和交换分区。
最小化Linux系统安装完成之后,需要把Fedora20的DVD镜像拷贝过来,由于此时没有图形界面,拷贝镜像需要手动mount。例如Fedora20的DVD镜像在G盘(上图编号为6,对应/dev/sda7)根目录下,则可以使用下面的命令:
mount –o loop /dev/sda7 /mnt cp /mnt/Fedora20-**.iso / umount /mnt
以上命令将镜像文件拷贝到最小化安装的Linux的根目录,接下来从ISO文件中提取出images文件夹、vmlinuz、initrd.img,如下
mount -o loop /Fedora20-**.iso /mnt cp /mnt/images / -rf cp /mnt/images/pxeboot/vmlinuz /mnt/images/pxeboot/initrd.img /
至此,完成硬盘安装Fedora20的所有准备工作
硬盘安装Fedora20
首先,引用一段话:"所有Linux启动过程都是类似的:开机后运行一个引导器(grub、lilo、syslinux等),将内核和initrd载入内存;内核取得控制权以后,找到根文件系统,运行其中的init,启动系统。"
重启之后,进入Grub2(Grub)命令行界面。(出现选择系统列表时候,注意最下面一行说明,按"C"键进入command模式)。对于Grub2,依次输入下面的命令,注意,此时Fedora20的DVD镜像处于/dev/sda8分区,即最小化安装的Linux所在的根目录。
set root=(hd0,msdos8) linux /vmlinuz linux repo=hd:/dev/sda8:/ initrd /initrd.img boot
之后进入系统安装界面,开始安装Fedora20系统,可以选择Gnome的桌面环境,在此不在详述。
安装完Fedora20之后,默认只识别出来Windows和Fedora20两个系统,而最小化安装的Linux没有被识别出来,此时更新下grub.cfg的配置文件即可。系统会自动扫描磁盘上面的所有可引导的系统。
grub2-mkconfig -o /boot/grub2/grub.cfg
结语
注意,当对磁盘分区进行操作时候一定要慎重!尤其是删除分区、格式化分区,确认之后再操作。最好事先规划好磁盘分区,避免在硬盘安装Fedora20过程中动态改变分区号导致ISO镜像路径错误而导致的安装失败!如果因为磁盘分区序号发生变化引起系统找不到根目录而不能启动时候,数据并没有丢失,只是找不到启动的入口。此时,可以使用光盘修复启动项,重新生成grub.cfg配置文件。或者进入Grub命令行,手动输入命令启动系统(最好在安装完成之后,备份一下)。