在windows上运行windows系统,用虚拟机软件是可以,直接运行是不可能的。
在汉澳sinox机器上创建和运行几百个sinox操作系统副本,几百个用户登录进入自己的操作系统操作而不影响他人,这就是jail容器技术。
jail是一种操作系统层虚拟化技术
jial目标
1.虚拟化:每个软件容器(jail)都是在主机机器上执行的一个虚拟环境,有它自己的文件系统,进程,使用者与超级使用者的帐户。在软件容器内运行的进程,它面对的环境,跟实际的操作系统环境几乎是一样的。
2.安全性:每个软件容器都是独立运作,与其他软件容器隔离,因此能够提供额外的安全层级。
3.容易删除及创建:因为每个软件容器的运作范围有限,这使得系统管理者可以在不影响整体系统的前提下,以超级使用者的权限,来删除在软件容器下运作的进程。
jail机制限制了在软件容器中运作的进程,不能够影响操作系统的其他部份。也就是说,在软件容器中的进程,是运作在一个沙盒上。
可以这样理解jail创建了操作系统副本,用户在操作系统副本里面看到的是一个独立的操作系统,既独立于主机上的操作系统,也独立于其他操作系统副本。
jail跟virtualbox区别是jail只能创建sinox虚拟操作系统,virtualbox可以创建包括windows各种虚拟操作系统,主机用户可以看到jail文件目录,所以注意区分主机和虚拟机同名用户的userid和goupid,jail副本里面的用户不能看见主机文件系统,跟硬件有关的命令也可能用不了。virtualbox虚拟机则谁也看不到对方文件系统。
创建和运行sinox副本在很多场合非常有用。
jail用法
安装单台jail虚拟机
1、选择jail在宿主机的目录,一般放置在/usr/jail目录下,例如我要安装配置一台cms虚拟机
#mkdir -p /usr/jail/cms
2,安装虚拟机
运行sysinstall,进入选项options设置chroot 目录,为/usr/jail/cms
退出进入configure配置菜单 分发菜单 distribution 安装基本系统。
也可以用命令安装。或者用ezjail批量建立虚拟机。
3、配置运行虚拟机
#ee /etc/rc.conf
ifconfig_rl0_alias0="inet 192.168.1.38 netmask 255.255.255.0"
jail_enable="YES"
jail_list="cms"
jail_cms_rootdir="/usr/jail/cms"
jail_cms_hostname="cms.mydomain.com"
jail_cms_ip="192.168.1.38"
jail_cms_exec="/bin/sh /etc/rc"
jail_cms_devfs_enable="YES"
保存后重启宿主机,ifconfig看下宿主机的虚拟网卡配置,jls查看虚拟机状态。
4、管理虚拟机
#jxexc 1 passwd root
#jxexc 1 pw user add shuqi888
#jxexc 1 passwd shuqi888
#jxexc 1 pw groupmod wheel -m shuqi888
#jxexc 1 ee /etc/rc.conf
rpc_bind_enable="NO"
sshd_enable="YES"
hostname="cms.mydomain.com"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
named_enable="YES"
#jxexc 1 sh /etc/rc
也可以在虚拟机开启sshd后远程登录进去管理
5、设置虚拟机上网
虚拟机创建配置完成后,会发现在虚拟机里无法连接到网络,执行ping命令总是返回socket: Operation not permitted。在宿主机上做如下操作:
# ee /etc/sysctl.conf
加上 security.jail.allow_raw_sockets=1
保存后重启即可
6、虚拟机优化
复制宿主机的resolv.conf到jail机上,解决DNS查询解析问题
#cp /etc/resolv.conf /usr/jail/cms/etc/resolv.conf