红联Linux门户
Linux帮助

如何从硬盘安装Fedora 17

发布时间:2014-11-09 10:22:47来源:linux网站作者:sabalol

如何从硬盘安装Fedora 17 (How to install fedora 17 from hard drive, Fedora-17-i386-DVD.iso)

现在Fedora 17也出来了,但是硬盘安装的方式有了些变化,所以就在上一篇的基础上修改吧。

假设你的硬盘分区为:

/dev/sda1   /boot    500M

/dev/sda2  /         40G

/dev/sda3  /home     250G     # grub 中的 (hd0, 2),  grub是从0 开始计数的。

/dev/sda4  swap      2G


注:/dev/sda3 在grub2中为(hd0,msdos3)

步骤1: 复制Fedora-17-i386-DVD.iso   到 /home目录下

步骤2: 复制Fedora-17-i386-DVD.iso中的 isolinux/vmlinuz, isolinux/initrd.img 到 /home下。

具体指令为:

sudo mount -t iso9660 -o loop Fedora-17-i386-DVD.iso  /mnt

sudo cp -afr   /mnt/isolinux/vmlinuz    /mnt/isolinux/initrd.img   /home

注意: /home目录下不能有其它iso映像,  比如Fedora-16-i386-DVD.iso, 否则安装的是fedora 16, 而不是fedora 17

步骤3:(可选)再在/home/创建一个目录保存gurb2的module, 以防/boot被格式化后,而安装过程又被意外中断,导致系统无法启动。

mkdir /home/f16
cp -afr /boot/grub  /home/f16
cp -afr /boot/grub2  /home/f16

步骤4:重启电脑。

步骤5:(grub1的指令)

进入grub后, 按 c  进入grub 命令行


输入如下命令:

root (hd0, 2)    # 我们刚刚把 vmlinuz, initrd.img存放到该分区了(/dev/sda3,  /home), 所以root要指定为  hd0,2
kernel /vmlinuz   linux repo=hd:/dev/sda2:/          #  注意,"hd: "  表示从硬盘安装(HardDisk),  最后的":/" 指定安装源的路径
initrd  /initrd.img
boot

注意," hd: "  表示从硬盘安装(HardDisk),  最后的" :/ " 指定安装源的路径, 这两个参数非常重要:

如果没有指定hd:,  安装程序默认会从光盘安装,如果没有fedora 17的光盘在光驱里面,按boot后,系统会直接停在黑底白字的启动界面。

如果没有指定“:/" , 安装程序则会在你执行格式化后,安装grub到/dev/sda这个界面,点”next“, 直接报错,安装程序退出,如果,你已经格式化了/boot, 那么系统将不能再正常启动了,开机时就会是:grub rescue的界面。如果你不幸走到这一步,在最后,我会给出恢复方法。


步骤5:(grub2的指令)

如下:  ( grub2中, 磁盘分区的编号是从1开始的, 跟linux系统中 /dev/sad1,  /dev/sda2, ... 等相同,由于我们的vmlinuz, initrd.img等放到了/dev/sda3, 所以在grub2中指定分区的时候为msdos3)

linux (hd0,msdos3)/vmlinuz linux repo=hd:/dev/sda3:/
initrd (hd0,msdos3)/initrd.img
boot


现在就可以像光盘安装的步骤一样安装Fedora 17了。

安装完成后, 会自动升级grub 1 为grub 2.

注意: 安装过程中, 格式化分区的时候, 不要把/dev/sda3 , 即/home给格式化了, 否则后果非常严重, 安装过程将不能继续下去, 因为映像源已经没有了!


步骤6:恢复grub的方法:

在grub rescue> 提示符下输入:

prefix=(hd0,msdos3)/f16/grub2
insmod linux
normal

现在又可以输入上面的安装指令了。


步骤6.1 USB方法

如果你没有把/boot/grub2, 事先保存在/home/f16中,你可以从其它fedora 机器上把grub2的/boot/grub2目录保存的u盘根目录中,u盘的格式一定要是ext格式的,否则grub2不能识别fat, ntfs格式的分区。

然后在grub rescue> 输入ls 查看u盘的分区。

u盘一般是(hd1,msdos1), 如果只有一个分区的话。

在grub rescue> 提示符下输入:

prefix=(hd1,msdos1)/grub2
insmod linux
normal