虛擬機器 之 Fedora Core 5.0 用 Xen 虛擬Slackware 10.2

weixin_34015860發表於2019-01-08
作者:北南南北
來自:LinuxSir.Org
提要:目前xen虛擬Linux、BSD及其它類Unix系統正火之時,趁熱打鐵,本人也在Fedora Core 5.0 上虛擬安裝了Slackware 10.2;Xen 是一種基於核心的虛擬程式,所以Xen虛擬的作業系統佔用資源更少,是極為輕量級的作業系統虛擬程式;本文以Fedora Core 5.0為基礎平臺,通過Xen虛擬Slackware 10.2 為例,來解說Xen的一般應用;
目錄
1、什麼是Xen;
2、執行Xen的平臺選擇; 2.1 Xen的執行平臺Fedora Core 5.0;
2.2 為Fedora Core 5.0 安裝支援Xen的核心;
2.3 為Fedora Core 5.0 安裝Xen; 2.31 確認Xen伺服器的執行級別;
2.32 Xen伺服器的啟動、停止的方法;
2.33 Xen和防火牆的關係的處理;
2.34 檢視Xen是否執行起來了xm list; 3、 在Fedora Core 5.0中安裝Slackware 10.2的方法; 3.1 通過chroot 命令來構建Slackware 10.2;(僅供參考);
3.2 通過指令碼實現自動安裝Slackware 10.2到映像檔案中;(推薦); 3.21 下載Slackware 10.2相關;
3.22 通過 Slackware builder for UML來安裝Slackware 10.2; 4、Fedora Core 5.0 的Xen的配置;
5、啟動Slackware,Xen虛擬Slackware正式開始;
6、Xen 虛擬的Slackware的遠端訪問方法; 6.1 通過 ssh 遠端訪問; 6.11 引導Slackware的命令;
6.12 檢視sshd伺服器已經執行;
6.13 判斷sshd伺服器是否安裝;
6.14 如何開啟sshd伺服器;
6.15 檢視是sshd伺服器是否執行起來;
6.16 檢視網路卡的ip地址;
6.17 在Fedora 中通過ssh訪問 Slackware; 6.2 在Fedora 中通過vnc訪問; 6.21 在Fedora 中安裝vnc;
6.22 在Slackware中安裝vnc;
6.23 在Slackware中配置和執行vncserver;
6.24 在Fedora 中通過vncview訪問Slackware桌面; 7、Xen的相關用法及說明;
8、常見問題處理;
9、關於本文;
10、後記;
11、參考文件;
12、相關文件;
+++++++++++++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++++++++++++

1、什麼是Xen;
Xen 是一個基於作業系統核心的虛擬程式,是遵循GPL發行;她能在一套物理硬體上虛擬多個作業系統,其虛擬的作業系統是最接近原汁原味。由於她是基於核心的虛擬機器,能和作業系統聯絡的更加緊密,能大大減少系統資源的佔用率;Xen 是從事跨平臺開發,網路測試的利器; Xen 相容作業系統,請參見:《Current OS Compatibility》 目前Xen 還不能對Windows的支援還在開發之中,對Linux、BSD等的支援沒有太大的問題;
2、執行Xen的平臺選擇;
大多Linux發行版本及BSD的版本都有支援Xen,所以Xen目前是比較成熟的技術,因其遵循GPL釋出,使得Xen在開源作業系統佔用率只高不下。我這次選用的是Fedora Core 5.0;當然您也可以用其它作業系統,自己來編譯安裝Xen;
2.1 Xen的執行平臺Fedora Core 5.0
Fedora Core 5.0的好處是線上就能升級安裝支援Xen的核心軟體包,所以就省卻了自己編譯安裝Xen的麻煩;
2.2 為Fedora Core 5.0 安裝支援Xen的核心;
安裝支援Xen的核心比較簡單,用yum 就可以線上安裝,請參見:《關於Fedora Core 5.0 通過Yum線上升級說明》,先設定好yum的源,然後線上安裝支援Xen的核心,您可以用yumex來點滑鼠完成,當然也可以用命令列模式來安裝,看自己的喜歡吧;
[root@localhost ~]# yum install kernel-xen0-2.6.16-1.2080_FC5
[root@localhost ~]# yum install kernel-xenU-2.6.16-1.2080_FC5
其中kernel-xen0-2.6.16-1.2080_FC5是虛擬機器執行環境的核心,這個核心可以為虛擬的作業系統提供一個基礎的虛擬硬體環境,比如虛擬網路卡、顯示卡等;而kernel-xenU-2.6.16-1.2080_FC5核心是客戶機所用的核心,也就是被虛擬的作業系統,要通過這個核心來引導;安裝好後,在/etc/grub.conf中以有類似如下一段(看看就行);
title Fedora Core (2.6.16-1.2080_FC5xen0)
        root (hd0,6)
        kernel /boot/xen.gz-2.6.16-1.2080_FC5
        module /boot/vmlinuz-2.6.16-1.2080_FC5xen0 ro root=LABEL=/  rhgb quiet
        module /boot/initrd-2.6.16-1.2080_FC5xen0.img
當我們重新引導系統時,要在GRUB的選單上選擇以這個核心來啟動系統;
2.3 為Fedora Core 5.0 安裝Xen;
我們可以線上通過yum來安裝,請參考 :《關於Fedora Core 5.0 通過Yum線上升級說明》,先設定好yum的源,然後線上安裝或升級Xen,您可以用yumex來點滑鼠完成,當然也可以用命令列模式來安裝,看自己的喜歡吧;我所用的Xen版本是xen-3.0.1-4;
[root@localhost ~]# yum install xen

2.31 確認Xen伺服器的執行級別;
[root@localhost ~]# chkconfig --list |grep xend
xend            0:關閉  1:關閉  2:啟用  3:啟用  4:啟用  5:啟用  6:關閉
xendomains      0:關閉  1:關閉  2:關閉  3:啟用  4:啟用  5:啟用  6:關閉
通過chkconfig 命令,我們得知xend和xendomains兩個守護程式都在3(文字執行模式)和5(圖形執行模式)都能自動執行;請詳細看上面的輸出。如果我們看到xend和xendomains在3和5執行模式下關閉的,則要開啟;您可以通過system-config-services或ntsysv來開啟這兩個守護程式;也可以用下面的簡單辦法 ;
[root@localhost ~]# chkconfig --level 35 xend on
[root@localhost ~]# chkconfig --level 35 xendomains on

2.32 Xen伺服器的啟動、停止的方法;
上面我們提到了當系統啟動時,xend伺服器會自動開啟。如果我們修改配置檔案或xend有問題時,我們可能需要重啟xend和xendomains伺服器;下面是一個簡單的說明,其它伺服器的啟動和停止也類似;對於Fedora Core 來說,我們經常用的伺服器守護程式(也就是伺服器程式的開關),大多都在/etc/init.d目錄中;自己看看就好,如果您不懂。
[root@localhost ~]# /etc/init.d/xend start   注:啟動
[root@localhost ~]# /etc/init.d/xend restart  注:重啟
[root@localhost ~]# /etc/init.d/xend stop    注:停止
同理xendomains的啟動、停止和重啟也是相似的;
2.33 Xen和防火牆的關係的處理;
防火牆包括iptables和SELinux,我是建議把他們關掉,如果您是新手,就關了吧;
[root@localhost ~]# system-config-securitylevel
全都Disable掉;
2.34 檢視Xen是否執行起來了xm list;
[root@localhost ~]# xm list
Name                              ID Mem(MiB) VCPUs State  Time(s)
Domain-0                           0      586     1 r-----   696.6
如果看到上面的Domain-0的輸出,就可以證明xend和xendomains已經在正常執行;值得注意的是:這時系統所用的核心是vmlinuz-2.6.16-1.2080_FC5xen0 在/boot中有,您可以通過下面的命令來檢視;
[root@localhost ~]# uname -r -p
2.6.16-1.2080_FC5xen0 i686
[root@localhost ~]#

3、 在Fedora Core 5.0中安裝Slackware 10.2的方法;
目前安裝作業系統的主要方法是通過chroot來實現,就Slackware 10.2的在Fedora 環境下的安裝,自然也超不出這個方法;不過對於Xen的虛擬Slackware 10.2已經有人寫了一個指令碼,然後通過指令碼在Fedora Core 5.0中安裝Slackware 10.2,採用的方法也是chroot 的方法;為了使大家明白一點怎麼在一個作業系統下安裝另一個作業系統,我看有必要簡單的寫一寫chroot的要點;
3.1 通過chroot 命令來構建Slackware 10.2;(僅供參考)
大多開源作業系統都可以通過chroot的方法來安裝,在這方面Gentoo 和LFS用的比較多,如果您懂得Gentoo 或LFS,您應該明白如何chroot安裝一個作業系統;一個作業系統可以寫進一個實際的物理硬碟分割槽,也可以寫在一個映像檔案中,主要做什麼用了。如果您想讓這個作業系統不通過任何虛擬機器執行,就要安裝在一個實際物理分割槽中;如果是虛擬執行,安裝到一個映像檔案中比較好,象我們這次通過Xen虛擬Slackware 10.2,我們把作業系統安裝在映像檔案中比較好;請參考:《通過chroot 構建Linux作業系統概要》
3.2 通過指令碼實現自動安裝Slackware 10.2到映像檔案中;(推薦)
我在通過chroot 構建Slackware 10.2的過程中,查到了一個用指令碼構建的方法;原文地址:http://wiki.xensource.com/xenwiki/SlackwareDomU
3.21 下載Slackware 10.2相關;
Slackware 10.2 下載: http://www.slackware.com/getslack
Slackware builder for UMLmkuml-2004.07.17-ananas.tar.bz2 說明: Slackware builder for UML就是通過chroot 模式安裝Slackware 到映像檔案的相關指令碼和軟體包,只是把我們自己chroot來安裝Slackware的工作簡化;
3.22 通過 Slackware builder for UML來安裝Slackware 10.2

第一步:解壓mkuml-2004.07.17-ananas.tar.bz2

[root@localhost ~]# tar jxvf mkuml-2004.07.17-ananas.tar.bz2
[root@localhost ~]# cd mkuml-2004.07.17
[root@localhost mkuml-2004.07.17]#


第二步:在mkuml-2004.07.17中建立slackware-current目錄,並把Slackware 10.2的兩張光碟內容提取出來放入slackware-current目錄中;
[root@localhost ~]# cd mkuml-2004.07.17
[root@localhost mkuml-2004.07.17]# mkdir slackware-current
[root@localhost mkuml-2004.07.17]# cd slackware-current/
[root@localhost slackware-current]# mount -o loop /opt/slackware-10.2-install-d1.iso /mnt/cdrom/
[root@localhost slackware-current]# cp -rp /mnt/cdrom/*  .
[root@localhost slackware-current]# umount /mnt/cdrom
[root@localhost slackware-current]# mount -o loop /opt/slackware-10.2-install-d2.iso /mnt/cdrom/
[root@localhost slackware-current]# cp -rp /mnt/cdrom/*  .
[root@localhost slackware-current]# umount /mnt/cdrom
說明:如果 /mnt目錄下沒有cdrom 目錄,就自己建立一個;Slackware的兩張安裝盤放置目錄在哪,要根據自己的情況來指定,我是把這兩張光碟放在了/opt目錄中,所以就有上面的mount 命令;
第三步:更改mkuml-2004.07.17目錄中的mkuml.sh;

在mkuml.sh中找到如下段落;
# file system sizes
ROOT_MB=2000
SWAP_MB=128
更改為
# file system sizes
ROOT_MB=3000
SWAP_MB=256
其中ROOT_MB是指定建立映像檔案的大小,也就是說Slackware是安裝到這個映像檔案中;我在這裡設定成為3G大小,SWAP_MB是指定交換分割槽檔案的大小,我在這裡設定為256M;根據自己的情況來設定。一般的情況下,Slackware完全安裝需要3G左右;在mkuml.sh中找到
mke2fs -F -j root_fs
改為
mke2fs -F -j -O ^resize_inode root_fs
和上面的改更聯絡起來的意思就是,首先要建立一個root_fs的檔案,大小為3G,然後再建立一個swap_fs的檔案,大小為256M;然後再對這兩個檔案分別建立檔案系統,root_fs建立為ext3檔案系統,swap_fs建立為swap檔案系統;如果不太明白,請參看 mkuml.sh中的相關語句;
第四步:執行mkuml.sh;

這個過程就是建立映像檔案 root_fs和swap_fs,然後在他們之上進行建立檔案系統,接著會通過mount 掛載root_fs,然後安裝我們剛才提取出來的Slackware 10.2的兩張光碟的軟體包到root_fs中;這一切都是通過指令碼實現的,所以說這個指令碼實在是太好了。呵。。。簡單明瞭。。。把mkuml.sh改好後,我們要執行;
[root@localhost mkuml-2004.07.17]# ./mkuml.sh  /opt/slack102vm
這是什麼意思呢?這個意思就是通過指令碼mkuml.sh,在/opt中建立一個目錄,然後建立root_fs和swap到/opt/slack102vm中;然後進行建立上面所說的檔案系統,掛載檔案系統,安裝Slackware 之類的;一切全自動了... ... 到這一步,我們就會明白了吧,是不是把Slackware 安裝到了一個檔案中了呢?所以說安裝作業系統,也是可以安裝到一個檔案中的。比如 VMWARE虛擬Linux的安裝,也是可以虛擬到一個檔案中的;在這一過程中,還有root密碼的設定的提示,自己輸入一下,還有網路設定,也可以設定一下。在Hostname ,我設定的是slack,在DOMAINNAME的設定中,我設定的是localdomain ,在設定IP那塊,要根據自己的實際網路情況。我用的是DHCP自動獲取的,因為我在路由器中設定了所有的機器都通過DHCP自動獲取IP;如果您想知道自己的Slackware 10.2安裝到哪裡了呢?你檢視一下/opt/slack102vm中的root_fs就知道了;怎麼檢視呢?應該用mount -o loop 的方法來掛載;
[root@localhost mkuml-2004.07.17]# mkdir /mnt/slack
[root@localhost mkuml-2004.07.17]# mount -o loop /opt/slack102vm/root_fs  /mnt/slack
[root@localhost mkuml-2004.07.17]#cd /mnt/slack
上面的內容就是說,把/opt/slack102vm中的root_fs映像檔案掛載到了/mnt/slack中,進入/mnt/slack目錄,就可以檢視到了root_fs映像檔案的內容;
第五步:複製相關檔案到root_fs映像中;

要把一些檔案寫到root_fs中,我們首先必須要做的是掛載root_fs映像檔案,如前面所提到的mount -o loop的辦法;
[root@localhost ~]# mount -o loop /opt/slack102vm/root_fs  /mnt/slack
首先我們要把Fedora Core 5.0中核心模組2.6.16-1.2080_FC5xenU目錄複製到/mnt/slack下的lib/modules目錄中;
[root@localhost ~]# mkdir  /mnt/slack/lib/modules
[root@localhost ~]# cd /mnt/slack/lib/modules/
[root@localhost modules]#  cp -r /lib/modules/2.6.16-1.2080_FC5xenU .
您也可以把Slackware的兩張安裝光碟,都可以複製到 root_fs中,也就是root_fs的掛載目錄 /mnt/slack目錄中;這樣少什麼樣的軟體,就可以先通過chroot /mnt/slack 進入Slackware的系統,然後就可以通過掛載光碟映像通過pkgtool 或installpkg來安裝了;比如我們Slackware的iso放在了Slackware系統中的 /opt目錄中。
第六步:更改root_fs中的/etc/inittab和/etc/fstab檔案;

還是如同前面一樣,要先掛載root_fs到/mnt/slack目錄中;如果已經掛載好了,就直接進入/mnt/slack目錄就行了。找到 /mnt/slack/etc/inittab檔案中的;
c0:1235:respawn:/sbin/agetty 38400 tty0 linux
#c1:1235:respawn:/sbin/agetty 38400 tty1 linux
在上面的這段的第一行前面加上#號,並把第二行的前面的#號去掉;
#c0:1235:respawn:/sbin/agetty 38400 tty0 linux
c1:1235:respawn:/sbin/agetty 38400 tty1 linux
因為tty0的終端裝置已經被Fedora Core 5佔用,所以只能用tty1以後的了,當然您可以開啟其它的終端 ,就是把類似這樣的行前面的#號去掉;找到/mnt/slack/etc/fstab檔案;把其內容改為如下的
/dev/sda1            /            ext3    defaults          1  1
/dev/sda2 swap         swap    defaults          0  0
none                 /dev/pts     devpts  gid=5,mode=620    0  0
none                 /proc        proc    defaults          0  0

第七步:chroot 到Slackware系統進行配置;
我們要掛載 /opt/slack102vm中的root_fs到/mnt/slack,然後chroot到/mnt/slack;
[root@localhost ~]# chroot /mnt/slack
bash-3.00#   注:看到類似這樣的提示符,說明我們已經進入到了Slackware;
我們還要進行一系列的操作,比如 索引Slackware的庫檔案;
bash-3.00# ldconfig
接著,我們要建立一個rc.modules 的檔案,在/etc/rc.d目錄中;
bash-3.00# touch /etc/rc.d/rc.modules
bash-3.00#  echo  'modprobe xennet' > /etc/rc.d/rc.modules
注:上面那句echo的命令,意思是向rc.modules中寫入一句 modprobe xennet。在Slackware中,所有的核心模組的載入,都在 rc.modules中,modprobe xennet意思是讓系統在開機時自動掛載xennet模組。xennet 模組就是我們在Fedora Core 5.0 中複製到Slackware的檔案系統root_fs中的/lib/modules/2.6.16-1.2080_FC5xenU ;xennet模組就是Xen的虛擬Slackware的網路卡;如果您用DHCP 自動獲取IP,我們還要在Slackware中安裝dhcp開頭的包,這些包位於Slackware 10.2第一張光碟中的slackware目錄中的d目錄中;我們前面已經說過,要把Slackware的安裝盤最好複製到Slackware的檔案系統root_fs中;比如您把Slackware 10.2的安裝盤複製到 Slackware的檔案系統/opt目錄中,我們就可以掛載,然後安裝所需要的包了;比如我們Slackware的iso放在了Slackware系統中的 /opt目錄中。
bash-3.00# mount -o loop /opt/slackware-10.2-install-d1.iso  /mnt/cdrom
bash-3.00# cd /mnt/cdrom/slackware/n
bash-3.00# installpkg dhcp*.tgz
bash-3.00# cd ~
bash-3.00# umount /mnt/cdrom
如果您的Slackware的網路沒有配置好,請用netconfig來配置;
bash-3.00# netconfig
ENTER HOSTNAME 中,您可以寫上slack;在DOMAINNAME 中,您可以寫上localdomain;如果您用的是DHCP獲取IP,就選DHCP;如果問到DHCP伺服器在哪,也可以寫上您的DHCP伺服器,留空也行;如果您用的是靜態指定IP,您可以選擇靜態IP設定那項;
ENTER IP ADDRESS 寫上您的IP;比如 192.168.1.11
ENTER NETMASK 寫上網路掩碼: 比如 255.255.255.0
ENTER GATEWAY 閘道器:比如 192.168.1.1
NAMESERVER 可以寫上:202.96.128.143 更改/etc/resolv.conf檔案;
在這個檔案中,是存放DNS伺服器地址的,比如下面的內容;
nameserver 192.168.1.1
nameserver 202.96.128.143
nameserver 202.96.134.133
這是三個DNS地址,第一個地址是根據路由器192.168.1.1上的來更新,如果您有路由器,就根據自己的網路情況來寫;後面的兩個地址是可以用的;嘗試一下就知道了;配置好後,要退出Slackware的環境;
bash-3.00# exit
還要把Slackware檔案系統root_fs解除安裝掉;
[root@localhost ~]# umount /mnt/slack

4、Fedora Core 5.0 的Xen的配置;
我們在Fedora Core 5.0中/etc/xen的目錄中,建立一個檔案slack,目的是通過/etc/xen/slack引導Slackware 10.2;
[root@localhost ~]# touch /etc/xen/slack
在/etc/xen/slack的內容,如果您用DHCP來獲取IP,請參考下面的配置檔案來修改;
kernel ="/boot/vmlinuz-2.6.16-1.2080_FC5xenU"
memory = 128
name = "slack"
nics = 1
vif = ['mac=aa:00:00:00:11:11']
disk = ['file://opt/slack102vm/root_fs,sda1,w','file:/opt/slack102vm/swap_fs,sda2,w']
dhcp="dhcp"
root = '/dev/sda1 ro'
如果您用指定IP,就參考下面的配置檔案來修改;
kernel ="/boot/vmlinuz-2.6.16-1.2080_FC5xenU"
memory = 128
name = "slack"
nics = 1
vif = ['mac=aa:00:00:00:11:11']
disk = ['file://opt/slack102vm/root_fs,sda1,w','file:/opt/slack102vm/swap_fs,sda2,w']
dhcp="off"
root = '/dev/sda1 ro'
ip = "192.168.1.11"
netmask = "255.255.255.0"
gateway = "192.168.1.1"
hostname="slack"
解說:
1)kernel

我們是用vmlinuz-2.6.16-1.2080_FC5xenU這個核心來引導Slackware 10.2的,此核心檔案位於Fedora Core 5.0中的/boot目錄中。通過Xen虛擬執行Slackware ,並不能用Slackware自身所帶的核心來引導。用Slackware自帶的核心根本沒有辦法引導得起來。Xen虛擬其它的作業系統,都可以用這個核心來引導;

2)memory

是用來定義記憶體大小的,一般的情況下128就可以;

3)vif

可以定義虛擬網路卡實體地址,自己隨便設定一個mac地址就行,

4)disk

其中root_fs是Slackware的檔案系統,swap_fs是Slackware的交換分割槽檔案系統;其中的sda1是什麼意思?在這裡root_fs對映到/dev/sda1裝置上,是虛擬的,同理sda2也是這樣理解;w是可以讓使用者寫入檔案到root_fs和swap_fs中;其它是有關網路方面的,自己看一下就明白了;如果是通過DHCP自動獲取的IP的,可以用第一個配置檔案來修改。如果您是指定IP的,要根據下面來修改,按情況自己來辦;沒有什麼大不了的。嘗試一下就知道了;
5、啟動Slackware,Xen虛擬Slackware正式開始;
我們建立好/etc/xen/slack的配置檔案後,我們要用它來啟動Slackware作業系統,Xen虛擬Slackware正式開始;
[root@localhost ~]# xm create -c slack
啟動過程... ... 然後出現登入畫面;
Welcome to Linux 2.6.16-1.2080_FC5xenU (tty1)

slack: login:
在login 後面輸入root ,然後回車,接著出來密碼提示,再輸入密碼,回車;這樣就登入到Slackware了;
Waking a person unnecessarily should not be considered
a capital crime.  For a first offense, that is.

root@slack::~# root
成功中,現在我們就可以用Slackware了;在這段輸出中,Walking a person ... ... 之類的,是Slackware登入時出來的名人名言;每次登入都有。首先我們檢視一下網路是不是通的;
root@slack:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr AA:00:00:00:11:11
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a800:ff:fe00:11/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2120 (2.0 Kb)  TX bytes:1974 (1.9 Kb)
root@slack:~# ping linuxsir.org
PING linuxsir.org (218.61.34.138) 56(84) bytes of data.
64 bytes from cncln.online.ln.cn (218.61.34.138): icmp_seq=1 ttl=59 time=7.20 ms
64 bytes from cncln.online.ln.cn (218.61.34.138): icmp_seq=2 ttl=59 time=7.56 ms
看來是能通了... ... ... 這時我們就可以應用Slackware了。這時我們所應用的Slackware ,應該算做本地訪問。我們應該學會如何應用通過Fedora Core 5.0 來遠端訪問,請看下一節;
6、Xen 虛擬的Slackware的遠端訪問方法;
虛擬機器就是根據自己的需要,在一個作業系統平臺上,藉助相關的軟體虛擬另外的操作平臺。虛擬出來的作業系統和我們所處的真實的作業系統各自是獨立的。被虛擬的作業系統應該看作是一臺正在執行的機器 。因為真實的作業系統Fedora Core 5.0和虛擬的Slackware 10.2都被看成是各自獨立的機器,所以我們應該想到遠端訪問Slackware;有兩種方法,一種是ssh ,另一種是vnc ;其中 ssh訪問是文字的,而vnc訪問則是訪問桌面的;

6.1 通過 ssh 遠端訪問;
通過ssh遠端訪問比較簡單;首先確認在Slackware中是否已經安裝了sshd 伺服器;這個過程是在Slackware中操作;我們前面已經說了,要把Slackware引導起來登入;
6.11 引導Slackware的命令;
[root@localhost ~]# xm create -c slack

6.12 檢視sshd伺服器已經執行;
登入Slackware後,檢視sshd伺服器已經執行;如果有下面類似下面的提示,表示sshd伺服器已經執行,否則表示您沒有安裝sshd 伺服器;
root@slack:~# pgrep sshd
400

6.13 判斷sshd伺服器是否安裝;
判斷sshd伺服器是否安裝,請檢視/var/adm/packages,如果裡面有openssh的檔案,表示已經安裝;
root@slack:~# ls /var/adm/packages/openssh*
/var/adm/packages/openssh-4.2p1-i486-1
如果沒有,請在安裝盤的第一張找出openssh軟體包,用下面的命令來安裝;
root@slack:~# installpkg   openssh*

6.14 如何開啟sshd伺服器呢?
root@slack:~# /etc/rc.d/rc.sshd

6.15 檢視是sshd伺服器是否執行得起來了?
root@slack:~# pgrep sshd

6.16 檢視網路卡的ip地址;
root@slack:~# ifconfig
eth0      Link encap:Ethernet  HWaddr AA:00:00:00:00:11
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a800:ff:fe00:11/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:165 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:10538 (10.2 Kb)  TX bytes:2011 (1.9 Kb)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:784 (784.0 b)  TX bytes:784 (784.0 b)
上面表示網路地址為192.168.1.11;實體地址是AA:00:00:00:00:11,這個實體地址我們是在什麼地方設定的??是在Fedora Core 5.0中的/etc/xen/slack配置檔案中;
6.17 在Fedora 中通過ssh訪問 Slackware;
[root@localhost ~]# ssh root@192.168.1.11
The authenticity of host '192.168.1.11 (192.168.1.11)' can't be established.
RSA key fingerprint is 81:0f:fc:ff:a9:e2:d0:e0:27:89:00:db:f0:33:f0:48.
Are you sure you want to continue connecting (yes/no)? yes 注:在這裡輸入yes;
Warning: Permanently added '192.168.1.11' (RSA) to the list of known hosts.
root@192.168.1.11's password:注:在這裡輸入密碼;
Last login: Wed Apr  5 10:02:47 2006 from 192.168.1.3
Linux 2.6.16-1.2080_FC5xenU.

It's not Camelot, but it's not Cleveland, either.
                -- Kevin White, Mayor of Boston

root@slack:~#  注:登入成功;

6.2 在Fedora 中通過vnc訪問;
在Fedora 中能通過vnc連線遠端的Slackware桌面,這是一個方便的工具;也是在OpenSource作業系統中最常用的工具之一;在Fedora 中,我們要用到vnc的客戶端vncviewer,而在遠端的Slackware中,我們要架vnc的伺服器vncserver;
6.21 在Fedora 中安裝vnc;
[root@localhost ~]# yum install vnc

6.22 在Slackware中安裝vnc;
我們可以在Slackware中安裝TightVNC,我下載的版本是 tightvnc-1.3dev7-i486-1kjz.tgz 您可以到 http://www.linuxpackages.net 上查詢下載,TightVNC下載地址請訪問下面的地址,選擇一個映象來用wget下載; http://www.linuxpackages.net/download.php?id=8599 在Slackware中,通過wget下載,比如;
#wget http://linuxpackages.slackwaresupport.com/\
Slackware-10.2/ken/tightvnc-1.3dev7-i486-1kjz.tgz
安裝TightVNC,請用installpkg來安裝;
root@slack:~# installpkg tightvnc-1.3dev7-i486-1kjz.tgz

6.23 在Slackware中配置和執行vncserver;

第一步: 執行vncserver,生成登入密碼和配置檔案;
我們執行一下vncserver,這樣就在當前使用者的家目錄下生成一個.vnc的目錄,這個目錄中有一個檔案是配置檔案xstartup比較重要,隨後我們會介紹如何更改這個檔案;
root@slack:~# vncserver
You will require a password to access your desktops.

Password: 注:在這裡輸入vncserver的密碼;
Warning: password truncated to the length of 8.
Verify: 注:再輸入一次密碼;
Would you like to enter a view-only password (y/n)?y 

<b>注:</b>請輸入一個僅能遊覽的密碼,以這個密碼登入後,僅能檢視,不能做任何操作;比如前面的密碼,您可以設定為123456,僅能瀏覽桌面的密碼,您可以設定為654321;嘗試一下就知道這兩個密碼的許可權有何不同了;

第二步:關掉vncserver;
root@slack:~#pkill vnc


第三步:配置vncserver;

其實配置vncserver 主要是想讓客戶機瀏覽Slackware 時,能看到什麼桌面環境,是GNOME還是KDE,還是Wmaker?用什麼桌面就得在Slackware中安裝什麼。Slackware系統比較小,總共才兩張盤,安裝安裝就行了,用installpkg 或pkgtool 來安裝;如何安裝桌面環境不提了,我們已經多次說到如何安裝Slackware的軟體包了;比如 我們想讓客戶機通過vncview瀏覽Wmaker桌面;我就得如下做;
root@slack:~# cd ~/.vnc  注:切換到當前使用者家目錄中的.vnc目錄;我用的是root使用者;
root@slack:~/.vnc# pwd  注:檢視使用者所在的當前目錄;
/root/.vnc  注:我們看到我們位於的正是root使用者下的.vnc目錄;

root@slack:~/.vnc# cp /etc/X11/xinit/xinitrc.wmaker  xstartup  注:這是讓客戶機操作Wmaker桌面;
root@slack:~/.vnc# cp /etc/X11/xinit/xinitrc.gnome  xstartup  注:這是讓客戶機操作GNOME桌面;
root@slack:~/.vnc# cp /etc/X11/xinit/xinitrc.kde   xstartup  注:這是讓客戶機操作kde桌面;
root@slack:~/.vnc# cp /etc/X11/xinit/xinitrc.xfce   xstartup  注:這是讓客戶機操作xfce桌面;
上面的桌面任選其一,只有您安裝了相應的桌面,才能在/etc/X11/xinit目錄中看到相應桌面的啟動檔案;注意:每次更改xstartup 時,都要重新啟動vncserver,否則不會生效;

第四步:啟動vncserver ;

root@slack:~/.vnc# vncserver -depth 24  -geometry 800x600  -pixelformat  RGB888
我們是以800x600的解析度,色深是24... ... 具體的引數,請檢視 vncserver --help
root@slack:~/.vnc# vncserver -depth 24  -geometry 800x600  -pixelformat  RGB888

New 'X' desktop is slack:1 注:記住後面的slack:1,這個就是客戶機通過vncview檢視Slackware桌面的地址;

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/slack:1.log

6.24 在Fedora 中通過vncview訪問Slackware桌面;
首先我們在Fedora Core中執行vncview,vncview 是用來連線遠端桌面的工具;
[root@localhost ~]$ vncviewer
出來一個連線的畫面,有下面的一行: VNC server:注:我們要在畫面的輸入框中輸入Slackware的vncserver伺服器的地址,您可以在Slackware中檢視網路地址,通過ifconfig;比如我的Slackware的地址是192.168.1.11 ,而我們在執行vncserver後,看到一下vncserver的地址slack:1 ,如果您的機器通過DNS解析過了,就就在VNC Server的後面輸入slack:1就能連線了。如果您的機器沒有做DNS,您可以直接用ip地址來訪問,也就是把slack:1中的slack換成您的IP地址,也就是類似這樣的192.168.1.11:1 所以我們應該在VNC server畫面中輸入框中輸入 192.168.1.11:1 ,請與您的vncserver的地址和ip地址為準,我在這裡只是舉個例子;
VNC server: 192.168.1.11:1
輸入密碼後,應該能看到Slackware的桌面了... .... 請看如下的圖:
7、Xen的相關用法及說明;
主要是xm工具的用法,請參考:《Xen 初學者指南》
8、常見問題處理;




9、關於本文;
本文是我用三個晚上寫成的,修改放在了白天。這篇文件文字比較多,主要怕新手或對Xen不太熟悉的弟兄看不清楚,所以就多寫了點。技術含量呢,應該說比較低,大家將就著看吧。如果能指點指點,是我最高興的事了。一個人寫文件是有點無聊,大家參與相互學習和交流,可能會好一點 ... ...
10、後記;

想把去年未完成的Samba教程寫完,也想知道一點新的技術動態。想學習的東西太多了,呵... ... 現在才感覺到時間真的很寶貴,一年也就是一晃就過去了... ... 在有生之年,做點自己喜歡做的事,人生無非如此... ...
11、參考文件;

《How to Install Slackware Linux to a DomainU》 《Xen v3.0 Users' Manual》
12、相關文件;

相關文章