全部博文(71)
分类: 虚拟化
2012-07-24 23:41:26
从ibm pc开始,pc都配备了一个或两个串口(windows系统中叫做com口,linux系统中叫做ttys0)。虽然串口已经没有计算机发展早期那么重要,但还是有些重要的应用和用途的。比如:当以太网不可用时,可以利用串口通过null-modem电缆设置一个原始的网络。串口对于需要做内核级调试的调试人员也非常必要,因为内核级调试软件通常通过串口和调试人员交互。也就是说,利用虚拟串口,调试人员可以在虚拟机上做内核级调试从而不需要使用真实物理线缆连接到一台真实的pc。在虚拟机中提供多种多样的虚拟串口连接方式,有”使用物理机真实串口“、”使用pipe文件“、”使用文本文件”等方式,一般我们会使用“pipe文件”的形式处理虚拟机中的串口,但是pipe文件有固定的语法格式,即:\\.\pipe\
既然要生成pipe文件,那就需要一些特别的软件,windows下我们使用“vmware serial line gateway”进行pipe文件的关联,linux发行版下我们使用socat进行pipe的关联。
socat工具和”vmware serial line gateway”的使用思路是一样的,只不过文件的表现形式不一样:在windows系统下使用pipe文件,在linux发行版下使用socket文件,且他们都是要绑定到本地回环的一个”tcp socket“上从而实现连接跳转。
需要注意的是在linux发行版中串口叫做ttys,且设备号码是从0开始计算的,所以ttys0代表第一个串口,ttys1代表第二个串口;而在windows系统中串口叫做com,且com是从1开始计算的,所以com1就代表第一个串口,com2就代表第二个串口;
其次在vboxmanage中串口设备叫做uart:universal asynchronous receiver/transmitter);
最后串口是分为server模式和client模式的,这和c/s网络模型中的client和server的含义是差不多的:分清主动接收和被动接受这两个关键点即可。
第一步:我们将“vmware serial line gateway”软件从官方网站下载并安装,具体的处理过程这里就不再赘述了,我们参考前面的实验即可;
第二步:使用vboxmanage子命令modifyvm使centos这台vm的串口一使用pipe文件,且为client模式;
第三步:我们打开“virtualbox manager”,可以看到pipe文件的client模式是引用“vmware serial line gateway”生成的pipe文件“\\.\pipe\vmwaredebug“而已,并没有勾选”create pipe“复选框,另外可以看到我们使用的是com3: i/o base 0x3e8, irq 4,所有在linux发发行版下是ttys2;
第四步:我们也可以使用vboxmanage子命令showvminfo查看具体的串口信息;
第五步:我们将安装映像文件载入vm,然后启动centos,在gui的安装画面中我们按键盘左上角的【esc】键进入cli界面,在cli界面的boot提示符后,我们输入“linux text console=ttys2”即可;
第六步:我们使用putty远程终端软件通过telnet协议连接到centos这台vm。具体配置如下:我们下载安装putty软件,在弹出的界面中,【session】页签的“hostname”字段填入“127.0.0.1”,port选择567;“connection type”选择telnet,在“saved sessions”中输入centos,点击【save】按钮,再点击【open】按钮;
第七步:接着我们就可以在物理机通过“vmware serial line gateway”跳转进入centos这台vm的字符安装界面,只不过这里我们是通过串口的跳转进行安装而已;
更加详细的内容,敬请期待本人即将上市的呕心力作 《virtualbox完全学习手册》。
姜皓,网络id 小耗子老师,精通linux服务器管理、windows server 服务器管理、cisco路由器管理、虚拟化(vmware workstation、vsphere、virtualbox)等内容。
现就职于西北某国企。