Xen 提示与技巧
1. 设置 Xen 映像的安全性脉络
SELinux 对应 Xsen 的针对性原则要求 Xen 的磁盘映像拥有 xen_image_t 的脉络。假若映像并不包含在这个脉络内,domU 访问这个映像时便会遭到拒绝(建基於 Anaconda 的安装程序,例如 CentOS 的安装程序将会不能找到这个映像应提供的硬盘)。根据缺省值,下列两个目录拥有这个脉络:
/var/lib/xen/images(/.*)? system_u:object_r:xen_image_t:s0 /xen(/.*)? system_u:object_r:xen_image_t:s0
你亦可以手动式地利用 chcon 配置文件案或目录的脉络。如果你希望不论因何原因要撤消脉络时,仍能保留正确的脉络,你亦可以为本地文件加入自定的脉络。举个例说,我想将映像放置在 /src/xen 内。下列指令会预备这个目录作为放置 Xen 映像之用:
# mkdir -p /srv/xen # semanage fcontext -a -t xen_image_t "/srv/xen(/.*)?"
第二个指令会将这行加进 /etc/selinux/targeted/contexts/files/file_contexts.local 内:
/srv/xen(/.*)? system_u:object_r:xen_image_t:s0
然后再新装入 SELinux 的原则。现在既然这些原则已经知道正确的文件脉络,你可以用 restorecon 来递回地将正确的脉络套用到这个目录:
# restorecon -R /srv/xen
假若你想的话,你可以用 ls 来检查脉络已经被正确地设置:
# ls -dZ /srv/xen drwxr-xr-x root root system_u:object_r:xen_image_t /srv/xen
2. 主控台的处理
一个 domU 系统的缺省主控台是 xvc0。这是 xm console 连接时用的。要登录这个主控台,必须有一个 agetty 实体聆听 xvc0。假若不这样做,你只会看见指向这个主控台或所有主控台的 syslog 信息。如果 /dev/console 及 /dev/xvc0 代表同一个设备(当 xvc0 是主要或唯一主控设备时会属实),kudzu 会自动为 xvc0 在 /etc/initab 内加入记录。要是你使用虚拟的框缓冲区,这个情况并不属实,因此 xvc0 的记录将不会被加进 /etc/initab 内。至於 virt-manage 是否使用框缓冲区的,可以借着查看本地配置文件的 vfb 选项而作判断。例如:
vfb = ["type=vnc,vncunused=1"]
如果你仍然想通过 xvc0 登录,请在 domU 的 /etc/initab 内加入以下内容:
co:2345:respawn:/sbin/agetty xvc0 9600 vt100-nav
请亦在 /etc/securetty 内加入 xvc0。
以 root 的身份,你可以用下列指令吩咐 init 重新阅读 /etc/inittab:
# telinit q
3. 通过 virt-manager 定义其它键盘布局
你很可能已经见过一台 DomU 半虚拟系统的键盘布局永远在 virt-manager 内扮演一个 qwerty 键盘,而不采用开机时(或在 /etc/sysconfig/keyboard 内)所指定的键盘布局。这个情况只会当你使用 vfb(通过 virt-manager 或直接利用 vncviewer)时出现。如果你使用 xm console,系统会使用正确的键盘布局。
但由 CentOS 5.1 开始(也就是利用 xen-3.0.3-41.el5、xen-libs-3.0.3-41.el5、libvirt-0.2.3-9.el5 及 virt-manager-0.4.0-3.el5 这些组件)你可以在 DomU 内通过 virt-manager 采 qwert 以外的键盘布局。不幸地,这不能在 virt-manager 内设置,而要在配置文件内以「来宾」的身份设置:
下面是为一台 DomU 设置比利时键盘布局(be-latin1)的样例:
vfb = [ "type=vnc,vncunused=1,keymap=fr-be" ]
当然,你须要用一个正确的修改值:所有可用的按键对照表都放置在 /usr/share/xen/qemu/keymaps 内
你亦可以将某个键盘布局设置为所有 domU 的缺省值。要这样做,编辑 /etc/xen/xend-config.sxp 这个文件,然后加入如此一行(样例采用法文键盘):
(keymap 'fr')
接著你须要重新引导 Xen 守护程序令这个设置生效(service xend restart)。
Translation of revision 11