Fedora镜像文件的解压和提取(1)
时间:2010-09-22 来源:mydear
在向大家详细介绍Fedora映像文件之前,首先让大家了解下Fedora映像文件,然后全面介绍Fedora映像文件,希望对大家有用。Fedora 安装运行于一个Fedora映像文件中;
1 下载Fedora 5.0的基础系统;请到: http://jailtime.org
2 解压和提取相应文件;我们把下载下来的Fedora 5 基础系统,存放到/opt/fedora5vm目录中;然后解压;
- [root@localhost ~]# mkdir /opt/fedora5vm
- [root@localhost ~]# mv fedora.fc5.20060401.img.tgz /opt/fedora5vm
- [root@localhost ~]# cd /opt/fedora5vm
- [root@localhost fedora5vm]# tar zxvf fedora.fc5.20060401.img.tgz
- [root@localhost fedora5vm]# ls
- fedora.fc5.20060401.img.tgz fedora.fc5.img fedora.fc5.xen.cfg fedora.swap
3 修改引导运行Fedora的配置文件;
我们从fedora.fc5.20060401.img.tgz 解压出来一个fedora.fc5.xen.cfg ,这个就是用来引导Fedora 5的配置文件。我们改一改以适合我们的需要。我们把这个文件复制为fc5vm.cfg[root@localhost ~]# cp /opt/fedora5vm/fedora.fc5.xen.cfg /opt/fedora5vm/fc5vm.cfgfc5vm.cfg 内容如下:
- kernel = "/boot/vmlinuz-2.6-xenU"
- memory = 128
- name = "fc5"
- nics = 1
- vif = ['mac=aa:00:00:00:00:11']
- dhcp = "dhcp"
- disk = ['file:/opt/fedora5vm/fedora.fc5.img,sda1,w', 'file:/opt/fedora5vm/fedora.swap,sda2,w']
- root = "/dev/sda1 ro"
注解:首先我们看kernel 这行,这行是定义虚拟操作系统内核的,我们要用到我们安装xen是所安装的内核。要在虚拟平台/boot目录中找。比如我用Slackware虚拟 Fedora 。那虚拟平台就是Slackware。我应试在Slackware的/boot中找文件名中包含vmlinuz和xenU字样的文件。比如我找以的是:
- [root@localhost ~]# ls -lh /boot/vmlinuz*xenU*
- lrwxrwxrwx 1 root root 21 2006-04-12 07:49 /boot/vmlinuz-2.6-xenU -> vmlinuz-2.6.12.6-xenU
- lrwxrwxrwx 1 root root 21 2006-04-12 07:49 /boot/vmlinuz-2.6.12-xenU -> vmlinuz-2.6.12.6-xenU
- -rw-r--r-- 1 root root 1.1M 2006-04-12 07:49 /boot/vmlinuz-2.6.12.6-xenU
我们看到有类似的三个文件,实际上只有一个,也就是 vmlinuz-2.6.12.6-xenU,其它的都是他的链接文件。所以我们在kernel行中指定内核时,可以用这三个中的任何一个;比如我们用 vmlinuz-2.6-xenU;
memory是指定内存大小的,我们设置被虚拟的Fedora 5的虚拟内存大小是 128M;name 是定义虚拟操作系统的名字的,可以通过xm list中显示出来,我们也改简单点,改为fc5nics=1 不变dhcp 这行,是用来指定获取Fedora 5系统的IP是通过DHCP获取的,不过您也可以指定IP。可以不要这行;
vif = ['mac=aa:00:00:00:00:11'] 用来指定Fedora 5的网卡的物理地址;可以自己定义。ip = "192.168.1.144" 用来指定虚拟网卡的IPnetmask="255.255.255.0" 用来指定掩码
disk来定义Fedora 5.0 所用的文件系统,因为我们这次用的是Fedora映像文件。所以要用file:来指定,Fedora 5用的交换分区,也是一个Fedora映像文件;所以有:disk = ['file:/opt/fedora5vm/fedora.fc5.img,sda1,w', 'file:/opt/fedora5vm/fedora.swap,sda2,w']
指定fedora.fc5.imgFedora映像文件虚拟映射到/dev/sda1;交换分区文件fedora.swap映射到了/dev/sda2。映射过后,Fedora的root文件系统就用映射后的/dev/sda1。
虚拟映射设备是可以在Linux系统设备定义的许可范围内进行。自己尝试着换一换映射点。如果Fedora的虚拟映射设备变了,我们得改变Fedora中的/etc/fstab。
root一行,来指定Fedora的root位于哪个映射后的设备。映射到哪里了呢?Fedora 安装到了/dev/sda1,映射后虚拟到了/dev/sda1。所以Fedora系统引导时就寻找/dev/sda1做为文件系统。所以root这行可 写为:root = "/dev/sda1 ro"所以我们可以这样写Fedora 5的引导配置文件;
第一种:如果是用DHCP来获取IP:
- kernel = "/boot/vmlinuz-2.6-xenU"
- memory = 128
- name = "fc5"
- nics = 1
- vif = ['mac=aa:00:00:00:00:11']
- dhcp = "dhcp"
- disk = ['file:/opt/fedora5vm/fedora.fc5.img,sda1,w', 'file:/opt/fedora5vm/fedora.swap,sda2,w']
- root = "/dev/sda1 ro"
第二种:如果是指定IP的话:
- kernel = "/boot/vmlinuz-2.6-xenU"
- memory = 128
- name = "fc5"
- nics = 1
- vif = ['mac=aa:00:00:00:00:11']
- disk = ['file:/opt/fedora5vm/fedora.fc5.img,sda1,w', 'file:/opt/fedora5vm/fedora.swap,sda2,w']
- root = "/dev/sda1 ro"
- ip = "192.168.1.144"
- netmask="255.255.255.0"
4 引导Fedora 5 ;
引导运行Fedora 5.0就好办了,就是用xm 工具来引导;首先要确认你的Fedora 5的配置文件放在哪里。比如我们在这个例子中是放在了/opt/fedora5vm中。并且文件名为fc5vm.cfg。所以我就可以这样来引导 Fedora 5。[root@localhost ~]# /usr/sbin/xm create -c /opt/fedora5vm/fc5vm.cfg
5 网卡不能激活的处理;
modprobe: FATAL: Could not load /lib/modules/2.6.12.6-xenU/modules.dep: No such file or directory如果出现类似上面的现象,请复制虚拟平台的中的/lib/modues/下的2.6.12.6-xenU 到Fedora系统中;方法是先挂载Fedora 所处的物理分区,然后用cp -rp 来复制;首先要关掉Fedora,然后再复制;
- [root@localhost ~]# xm list
- Name ID Mem(MiB) VCPUs State Time(s)
- Domain-0 0 462 1 r----- 2192.9
- fc5 2 128 1 -b---- 6.4
以上面虚拟操作系统的ID为准,比如fc5的ID是 2,就要运行如下命令;[root@localhost ~]# xm destroy 2 然后mount 挂载Fedora所处的物理分区/dev/hda5;
- [root@localhost ~]# mount -o loop /opt/fedora5vm/fedora.fc5.img /mnt/fedora
- [root@localhost ~]# mkdir /mnt/fedora/lib/modules
注:在Fedora中的/lib目录中创建modules。如果有了就不创建;
- [root@localhost ~]# cp -rp /lib/modules/2.6.12.6-xenU/ /mnt/fedora/lib/modules/
- [root@localhost ~]# chmod -R 755 /mnt/fedora/lib/modules/
- [root@localhost ~]# umount /mnt/fedora
然后再来引导Fedora 5,进入系统后用ifconfig来查看网卡的IP之类的,如果没有激活,请用下面的命令来加载网卡模块;在要Fedora中执行;
- [root@fc5_pristine ~]# modprobe xennet
- [root@fc5_pristine ~]# dhclient 如果您用DHCP获取IP,请执行;