Fedora鏡像文件的解壓和提取
在向大家詳細(xì)介紹Fedora映像文件之前,首先讓大家了解下Fedora映像文件,然后全面介紹Fedora映像文件,希望對(duì)大家有用。Fedora 安裝運(yùn)行于一個(gè)Fedora映像文件中;
1 下載Fedora 5.0的基礎(chǔ)系統(tǒng);請(qǐng)到: http://jailtime.org
2 解壓和提取相應(yīng)文件;我們把下載下來的Fedora 5 基礎(chǔ)系統(tǒng),存放到/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 修改引導(dǎo)運(yùn)行Fedora的配置文件;
我們從fedora.fc5.20060401.img.tgz 解壓出來一個(gè)fedora.fc5.xen.cfg ,這個(gè)就是用來引導(dǎo)Fedora 5的配置文件。我們改一改以適合我們的需要。我們把這個(gè)文件復(fù)制為fc5vm.cfg[root@localhost ~]# cp /opt/fedora5vm/fedora.fc5.xen.cfg /opt/fedora5vm/fc5vm.cfgfc5vm.cfg 內(nèi)容如下:
- 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 這行,這行是定義虛擬操作系統(tǒng)內(nèi)核的,我們要用到我們安裝xen是所安裝的內(nèi)核。要在虛擬平臺(tái)/boot目錄中找。比如我用Slackware虛擬 Fedora 。那虛擬平臺(tái)就是Slackware。我應(yīng)試在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
我們看到有類似的三個(gè)文件,實(shí)際上只有一個(gè),也就是 vmlinuz-2.6.12.6-xenU,其它的都是他的鏈接文件。所以我們?cè)趉ernel行中指定內(nèi)核時(shí),可以用這三個(gè)中的任何一個(gè);比如我們用 vmlinuz-2.6-xenU;
memory是指定內(nèi)存大小的,我們?cè)O(shè)置被虛擬的Fedora 5的虛擬內(nèi)存大小是 128M;name 是定義虛擬操作系統(tǒng)的名字的,可以通過xm list中顯示出來,我們也改簡(jiǎn)單點(diǎn),改為fc5nics=1 不變dhcp 這行,是用來指定獲取Fedora 5系統(tǒng)的IP是通過DHCP獲取的,不過您也可以指定IP??梢圆灰@行;
vif = ['mac=aa:00:00:00:00:11'] 用來指定Fedora 5的網(wǎng)卡的物理地址;可以自己定義。ip = "192.168.1.144" 用來指定虛擬網(wǎng)卡的IPnetmask="255.255.255.0" 用來指定掩碼
disk來定義Fedora 5.0 所用的文件系統(tǒng),因?yàn)槲覀冞@次用的是Fedora映像文件。所以要用file:來指定,F(xiàn)edora 5用的交換分區(qū),也是一個(gè)Fedora映像文件;所以有:disk = ['file:/opt/fedora5vm/fedora.fc5.img,sda1,w', 'file:/opt/fedora5vm/fedora.swap,sda2,w']
指定fedora.fc5.imgFedora映像文件虛擬映射到/dev/sda1;交換分區(qū)文件fedora.swap映射到了/dev/sda2。映射過后,F(xiàn)edora的root文件系統(tǒng)就用映射后的/dev/sda1。
虛擬映射設(shè)備是可以在Linux系統(tǒng)設(shè)備定義的許可范圍內(nèi)進(jìn)行。自己嘗試著換一換映射點(diǎn)。如果Fedora的虛擬映射設(shè)備變了,我們得改變Fedora中的/etc/fstab。
root一行,來指定Fedora的root位于哪個(gè)映射后的設(shè)備。映射到哪里了呢?Fedora 安裝到了/dev/sda1,映射后虛擬到了/dev/sda1。所以Fedora系統(tǒng)引導(dǎo)時(shí)就尋找/dev/sda1做為文件系統(tǒng)。所以root這行可寫為:root = "/dev/sda1 ro"所以我們可以這樣寫Fedora 5的引導(dǎo)配置文件;
第一種:如果是用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 引導(dǎo)Fedora 5 ;
引導(dǎo)運(yùn)行Fedora 5.0就好辦了,就是用xm 工具來引導(dǎo);首先要確認(rèn)你的Fedora 5的配置文件放在哪里。比如我們?cè)谶@個(gè)例子中是放在了/opt/fedora5vm中。并且文件名為fc5vm.cfg。所以我就可以這樣來引導(dǎo)Fedora 5。[root@localhost ~]# /usr/sbin/xm create -c /opt/fedora5vm/fc5vm.cfg
5 網(wǎng)卡不能激活的處理;
modprobe: FATAL: Could not load /lib/modules/2.6.12.6-xenU/modules.dep: No such file or directory如果出現(xiàn)類似上面的現(xiàn)象,請(qǐng)復(fù)制虛擬平臺(tái)的中的/lib/modues/下的2.6.12.6-xenU 到Fedora系統(tǒng)中;方法是先掛載Fedora 所處的物理分區(qū),然后用cp -rp 來復(fù)制;首先要關(guān)掉Fedora,然后再?gòu)?fù)制;
- [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
以上面虛擬操作系統(tǒng)的ID為準(zhǔn),比如fc5的ID是 2,就要運(yùn)行如下命令;[root@localhost ~]# xm destroy 2 然后mount 掛載Fedora所處的物理分區(qū)/dev/hda5;
- [root@localhost ~]# mount -o loop /opt/fedora5vm/fedora.fc5.img /mnt/fedora
- [root@localhost ~]# mkdir /mnt/fedora/lib/modules
注:在Fedora中的/lib目錄中創(chuàng)建modules。如果有了就不創(chuàng)建;
- [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
然后再來引導(dǎo)Fedora 5,進(jìn)入系統(tǒng)后用ifconfig來查看網(wǎng)卡的IP之類的,如果沒有激活,請(qǐng)用下面的命令來加載網(wǎng)卡模塊;在要Fedora中執(zhí)行;
- [root@fc5_pristine ~]# modprobe xennet
- [root@fc5_pristine ~]# dhclient 如果您用DHCP獲取IP,請(qǐng)執(zhí)行;
#p# 6 Fedora映像文件太小的解決辦法;
我們會(huì)發(fā)現(xiàn)我們下載的Fedora基礎(chǔ)系統(tǒng)的Fedora映像文件體積太小。體積小空間就小的了。Fedora 5.0如果只安裝基礎(chǔ)系統(tǒng),倒占用不了多少空間,如果再安裝一個(gè)桌面環(huán)境可能會(huì)占用大一點(diǎn)的地方。比如安裝GNOME或KDE。
我們可以自己創(chuàng)建一個(gè)Fedora映像文件,創(chuàng)建好文件系統(tǒng)。然后從我們下載下來的Fedora映像文件中的所有文件,也就是Fedora的基礎(chǔ)系統(tǒng),復(fù)制到我們新創(chuàng)建的映像中。前面已經(jīng)說過創(chuàng)建Fedora映像文件的辦法了。這個(gè)應(yīng)該好辦吧。
- [root@localhost ~]# dd if=/dev/zero of=fc5.img bs=2k seek=2048k count=1
- [root@localhost ~]# ls -lh fc5.img
- -rw-r--r-- 1 root root 4.1G 2006-04-13 11:22 fc5.img
- [root@localhost ~]# /sbin/mkfs.ext3 fc5.img
- mke2fs 1.38 (30-Jun-2005)
- fc5.img is not a block special device.
- Proceed anyway? (y,n) y
- [root@localhost ~]# mkdir /mnt/tmp 注:在/mnt/中創(chuàng)建tmp目錄
- [root@localhost ~]# mkdir /mnt/fedora 注:在/mnt中創(chuàng)建fedora目錄
- [root@localhost ~]# mount -o loop fc5.img /mnt/fedora/ 注:掛載我們新創(chuàng)建的fc5.img文件到 /mnt/fedora
- [root@localhost ~]# mount -o loop fedora.fc5.img /mnt/tmp/ 注:掛載我們下載下來的Fedora映像文件到/mnt/tmp
- [root@localhost ~]# cp -rp /mnt/tmp/* /mnt/fedora/ 注:復(fù)制Fedora基礎(chǔ)系統(tǒng)到新的Fedora映像文件;
- [root@localhost ~]# umount /mnt/tmp 注:卸載 fedora.fc5.img ;
- [root@localhost ~]# umount /mnt/fedora 注:卸載fc5.img
然后就是改一改引導(dǎo)Fedora 5的配置文件,注意改一下disk:那行;要到fc5.img指定進(jìn)去。要仔細(xì)看一下fc5所處的目錄;這個(gè)應(yīng)該好辦,不多說了;
強(qiáng)制終止正在運(yùn)行的虛擬操作系統(tǒng);(重要)
在xm這個(gè)管理工具中,我們把xm destroy 單列出來,就是因?yàn)檫@個(gè)工具是極為重要的;有時(shí)被虛擬的系統(tǒng)一直退不出去,但由于啟動(dòng)過程中遇到問題,又不能終止。這時(shí)我們要用到這個(gè)工具強(qiáng)制被虛擬的系統(tǒng)退出。
- [root@localhost ~]# xm list
- Name ID Mem(MiB) VCPUs State Time(s)
- Domain-0 0 586 1 r----- 2236.5
- fc5 1 128 1 -b---- 13.7
- [root@localhost ~]# xm destroy 1
- 或
- [root@localhost ~]# xm destroy fc5
這時(shí)您再用xm list查看,肯定fc5這個(gè)Domain已經(jīng)退出。xm destroy 這個(gè)指令還是極為有用的,所以我們單列出來。希望新手弟兄注意一下。
關(guān)于基礎(chǔ)系統(tǒng)安裝后,虛擬操作系統(tǒng)的軟件補(bǔ)充安裝;
基礎(chǔ)系統(tǒng)安裝好以后,下一步就是其它軟件的安裝。在各個(gè)系統(tǒng)都有軟件包管理工具; 在主流發(fā)行版中,都有相應(yīng)的軟件包管理工具,比如Fedora有rpm 和yum 工具;Debian有 apt工具。
或者通過chroot來安裝一些比較重要的軟件包。總之方法太多了;總之,后續(xù)軟件的補(bǔ)充安裝并不是什么問題;
關(guān)于虛擬操作系統(tǒng)的桌面訪問及遠(yuǎn)程訪問;
被虛擬的操作系統(tǒng),我們要把它看成一臺(tái)獨(dú)立運(yùn)行的計(jì)算機(jī)。計(jì)算機(jī)與計(jì)算機(jī)之間通過什么訪問來?ssh 或vnc。所以我們要在被虛擬的操作系統(tǒng)上安裝vncserver 和sshd;如果您虛擬的是Fedora ,我們可以在Fedora中執(zhí)行yum install vnc來安裝vncserver ;
#yum install vnc如果您虛擬的是 Debian ,您可以用apt-get install vncserver 來安裝vncserver ;#apt-get install vncserver當(dāng)然客戶端也要安裝vncview才行,您要自己在客戶端上安裝vncview;關(guān)于vnc遠(yuǎn)程桌面的訪問,您可以參考這篇:《Fedora Core 5.0 用 Xen 虛擬Slackware 10.2》
另外sshd服務(wù)器,也要安裝openssh 的軟件包;這個(gè)也省略不說了,比較簡(jiǎn)單,再說目前大多基礎(chǔ)系統(tǒng)已經(jīng)提供這個(gè)軟件包了。并且在被虛擬的系統(tǒng)在啟動(dòng)時(shí),sshd也自動(dòng)運(yùn)行了;連接sshd服務(wù)器的命令是;#ssh 用戶名@ip 比如 #ssh root@192.168.1.12
常見問題處理;
1 不能找到root分區(qū);表現(xiàn)如下癥狀;
- VFS: Cannot open root device "sda8" or unknown-block(2,0)
- Please append a correct "root=" boot option
- Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
引導(dǎo)虛擬操作系統(tǒng)的配置文件有問題,主要查看disk:那行和root那行是否用的是一個(gè)虛擬映射點(diǎn)。 比如是由于引導(dǎo)Fedora 的配置文件中disk行和root行如下:
- disk = ['phy:hda5,sda1,w','phy:hda8,sda2,w']
- root = "/dev/sda8 ro"
我們發(fā)現(xiàn)/dev/hda5被虛擬映射到/dev/sda1了。也就是說,被虛擬的操作系統(tǒng)引導(dǎo)運(yùn)行,它的root應(yīng)該位于/dev/sda1。而在這里定義的卻是/dev/sda8。所以應(yīng)該改為
- disk = ['phy:hda5,sda1,w','phy:hda8,sda2,w']
- root = "/dev/sda1 ro"
2 出現(xiàn)/tmp/.ICE-unix 類似的錯(cuò)誤;
chown: changing ownership of `/tmp/.ICE-unix': Read-only file system 再比較/tmp/xxxx之類的不能寫入,只讀之類的,請(qǐng)用xm destrony 先關(guān)掉被虛擬的操作系統(tǒng)。然后把被虛擬的系統(tǒng)的分區(qū)或Fedora映像文件掛載,刪除/tmp目錄中的臨時(shí)文件。注意.file是隱藏的。您可以通過ls -la來查看。然后再來刪除;
另外如果一直出現(xiàn)這個(gè)錯(cuò)誤,說明文件系統(tǒng)有問題了,這在ext3的文件系統(tǒng)中是經(jīng)常發(fā)生的。您可以用/sbin/fsck.ext3 工具來修復(fù)文件系統(tǒng)。當(dāng)然您的文件系統(tǒng)不能處于掛載狀態(tài)。應(yīng)該先umout 才能進(jìn)行;
比如修復(fù)一個(gè)分區(qū),應(yīng)該類似如下的命令;[root@localhost ~]# /sbin/fsck.ext3 /dev/hda5 如果中間遇到是否修復(fù)時(shí),按提示的就是y或yes吧;如果被虛擬的文件系統(tǒng)位于一個(gè)Fedora映像文件,也是用這種辦法,比如:[root@localhost ~]# /sbin/fsck.ext3 fc5.img
3 Device 0 (vif) could not be connectedWarning: The nics option is deprecated. Please use an empty vif entry instead:vif = [ '' ]Error: Device 0 (vif) could not be connected. Hotplug scripts not working.如果出現(xiàn)上面這種錯(cuò)誤,應(yīng)該看一下配置文件中有沒有 vif=['']的定義;
【編輯推薦】