在Vmware Workstation 7中激活OEM Windows 7

警告:本文仅供学习与参考之用,请使用合法正版的软件。

对象 o    Vmware Workstation 7     o    Windows 7

目的    使用带有SLIC 2.1的BIOS在Vmware Workstation 7中激活OEM Windows 7

工具

o    7-zip 9.07 Beta

o    010 Editor 3.05

o    Phoenix BIOS Editor Pro 2.2.0.1

o    Vmware Workstation 7

o    Windows 7

o    Windows 7 OEM证书文件

o    Windows 7 OEM密钥

o    相应品牌的SLIC 2.1文件

方法

1. 提取原版BIOS

在Vmware Workstation 7的安装文件夹中找到vmware-vmx.exe文件(如果宿主系统是x64系统则该文件位于安装文件夹的x64\子文件夹中),复制到临时文件夹,通过右键菜单使用7-zip释放出其中的各个区段,在.rsrc\BINRES\文件夹中的6006即是Vmware Workstation 7的BIOS。方便起见可以将6006复制一份副本并重命名为vmwbios.rom。

2. 修改BIOS

使用Phoenix BIOS Editor Pro 2.2.0.1打开vmwbios.rom并且在以下过程中该文件必须保持打开状态!

2.1 使用010 Editor打开相应品牌的SLIC 2.1文件,如LENOVO.BIN,查看文件开始第9字节起的14个字节并将其复制,如联想某个SLIC 2.1为”LENOVOTC-5M   “(最后3位为空格,不带双引号)。

2.2 浏览Phoenix BIOS Editor Pro所在文件夹中的TEMP子文件夹,使用010 Editor打开BIOSCOD0.ROM,搜索rsdt,类型为ASCII字符串,会找到三处。在第一处找到的rsdt前后均有”INTEL 440BX   “(最后3位为空格,共14个字符)字符串,替换为刚才复制的14位OEM标识字符串,保存。

2.3 将相应品牌的SLIC文件复制到Phoenix BIOS Editor Pro的TEMP子文件夹中。

2.4 使用010 Editor打开TEMP子文件夹中的ROM.SCR文件。在文件末尾添加SLIC文件信息,如”ACPI LENOVO.BIN”。

2.5 回到Phoenix BIOS Editor Pro窗口,点击DMI Strings窗口,双击Motherboard Version右侧的’None’,在弹出对话框中输入相应的OEM标识字符串,例如联想则输入’LEGEND Dragon'(包括单引号),确定。

2.6 从File菜单选择Build BIOS…构建新的BIOS。

至此BIOS已经修改完毕。

3. 修改虚拟机配置

在Vmware Workstation 7中全新安装Windows 7或使用现有虚拟机,复制vmwbios.rom到虚拟机所在文件夹,打开该文件夹找到*.vmx虚拟机配置文件,使用010 Editor打开并在末尾加入[bios440.filename = “vmwbios.rom”](不包含[])。

4. 完成激活

在Vmware Workstation 7中启动Windows 7,将OEM证书文件(*.xrm-ms)复制入虚拟系统根文件夹。以管理员身份运行命令提示符(cmd.exe),安装证书,如”slmgr.vbs -ilc c:\lenovo.xrm-ms”。等待成功确认对话框出现后继续输入密钥激活,如”slmgr.vbs -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx”(xxxxx代表相应的密钥)。等待成功确认对话框出现即告激活正式完成。

附件:

清华同方    TSINGHUA TONGFANG COMPUTER 
方正    Founder PC 
七喜    HEDYCOMPUTER 
长城    GREATWALL 
TCL      TCL123 
IBM      IBM CORPORATION 
联想1      LEGEND Dragon 
联想2      LENOVO 
宏基1      AcerSystem 
宏基2      TravelMate 
富士通1      FUJITSU-PC 
富士通2      FSC SYSTEM 
富士通2      FSC SERVER 
富士通2      FUJITSU SIEMENS 
惠普1、惠普2003      Hewlett-Packard 
惠普2、惠普2003、康柏    Compaq 
惠普2    Hewlett 
NEC      NECC_ 
NEC      NEC-PC 
NEC      NEC_Product 
NEC      NEC Computers 
戴尔2003      Dell System 
戴尔1、2      Dell System 
戴尔1、2      Dell System 
戴尔1、2      Dell System 
戴尔1、2      Dell Computer 
戴尔2      Dell Inc 
华硕    ASUS_FLASH 
三星    $SAMSUNGPC 
松下    MEI_CF 
夏新    AMOI Electronics CO.,Ltd 
明基    BenQHub 
东芝1      TOSHIBA 
东芝1      TOSHIBA 
东芝2      TOSHIBA 
索尼1、2    Sony Corporation 
索尼1      Sony Corporation 
索尼2      Sony Corporation 
索尼2      Sony Corporation
发表在 计算机与 Internet | 一条评论

在移动硬盘上安装Ubuntu 10.04 LTS桌面版

前面文章提到,安装Windows 7的移动硬盘最前面的两个分区安装了Ubuntu,其中一个为根分区,一个为Swap分区。在安装Ubuntu时碰到了一些比较棘手的问题,觉得有必要记录一下。和上文说的一样,由于笔记本硬盘没有多余空间安装别的系统,所以决定在移动硬盘上安装Ubuntu。
 
Ubuntu的安装和使用方式比Windows 7灵活很多,首先可以使用Live CD试用或安装,也可以在启动Live CD系统后制作USB安装盘或直接安装到USB移动硬盘或本地硬盘。但这些都需要刻一张光盘,我不太喜欢。另外一种方式是使用虚拟机,通过光驱模拟功能启动Live CD来制作USB安装盘,但我的另外一个USB移动硬盘(为不混淆,后面称为B)有一个可启动的XP系统和一些数据,我不希望删除。后来的事实表明中间其实根本不需要制作USB安装盘,直接通过虚拟机安装到USB移动硬盘就可以,只是我当时担心这种方式安装后的移动硬盘拿到物理机器启动后可能会有问题,事实上也确实有些小问题,后面我会提到。最后我决定使用Grub4Dos这个启动管理器,并使用它的ISO模拟功能。首先用Grub4Dos包中的grldr代替移动硬盘B中根目录下的ntldr文件,把ISO文件拷贝到根目录并创建如下内容的menu.lst:
 
color blue/green yellow/red white/magenta white/magenta
timeout 30
default /default
 
title Ubuntu 9.10 LiveUSB
fallback 5
find –set-root /ubuntu-9.10-desktop-i386.iso
map /ubuntu-9.10-desktop-i386.iso (0xff) || map –mem /ubuntu-9.10-desktop-i386.iso (0xff)
map –hook
chainloader (0xff)
savedefault –wait=2
 
title Ubuntu 9.10 LiveUSB – 2
map –mem (hd0,0)/ubuntu-10.04-desktop-i386.iso (hd32)
map –hook
chainloader (hd32)
boot
 
title Ubuntu 10.04 Live CD
root (hd0,0)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04-desktop-i386.iso quiet splash ro locale=zh_CN.UTF-8
initrd /initrd.lz
 
title Ubuntu 10.04 LiveUSB
fallback 5
find –set-root /ubuntu-10.04-desktop-i386.iso
map /ubuntu-10.04-desktop-i386.iso (0xff) || map –mem /ubuntu-10.04-desktop-i386.iso (0xff)
map –hook
chainloader (0xff)
savedefault –wait=2
 
title Ubuntu 10.04 LiveUSB – 2
fallback 7
find –set-root /tt.iso
map /tt.iso (0xff) || map –mem /tt.iso (0xff)
map –hook
chainloader (0xff)
savedefault –wait=2
 
在上面这些选项中只有“Ubuntu 10.04 Live CD”能正常工作,其中参数的vmlinuz和initrd.lz是从对于的ISO文件中提取并放到根目录中。其它的选项在启动的最后都会提示init失败。启动界面如下:
 
选择“Ubuntu 10.04 Live CD”后,屏幕显示ntfs格式,这正是移动硬盘B上的文件系统。下面是启动到系统后的界面:
 
到这就可以通过点击桌面上“安装Ubuntu 10.04 LTS"的图标把系统安装到上文中提到的USB移动磁盘:
 
随便说一下,Live CD系统中并没有root账号,但可以通过"sudo passwd root"来设置,这和刚安装好后的Ubuntu系统一样的情况。
 
通过这种方式安装完Ubuntu后,发现原来的本地硬盘上的MBR被改写,导致无法从原来的硬盘启动。不过可以通过移动硬盘来启动Ubuntu,并使用hexdump或dd命令来验证本地盘的MBR确实被改写,这可能是Ubuntu安装程序的一个瑕疵。还好通过update-grub命令可以把本地磁盘上的系列纳入grub的管理范围,这样就可以通过USB移动硬盘间接启动本地磁盘上的XP系统,接下来就是用windows 7安装盘中的bootsect.exe修复本地盘的MBR,使得本地磁盘系统无需移动硬盘也能启动,当然也可以通过移动硬盘间接启动。
 
另外一个问题是在移动硬盘上继续安装Windows 7后,把原来移动硬盘上的Grub破坏掉了,这样移动硬盘就只能启动WIN7,而不能启动以前安装的Ubuntu,后来我尝试用Live CD来修复Grub问题,发现在运行”update-grub"是出现错误(如下图)。
 
后来是通过在虚拟机上安装一个同样版本的Ubuntu,把移动硬盘分给这台虚拟机,用虚拟机上的Ubuntu系统修复Grub,这样移动硬盘通过Grub就可以选择是启动Ubuntu还是Windows 7。

 

还有就是在虚拟机中启动USB移动硬盘上的Ubuntu系统时(该虚拟机必须选择的是Linux系统,比如Ubuntu),会出现X Windows的问题,通常多启动几次后会出现警告框。对话框出现后,选择“low-graphics mode"可以进入Gnome桌面环境。

 

但也可能上面的对话框根本不出现,直接进入字符界面。我认为X Windows系统在这方面处理的不是很好,其提示“no screens found”,另外也和nvidia驱动(T61显卡类型)有关。它在 /etc/X11/xorg.conf中添加了字段,这时如果把Device节中后面两行删除后运行“startx”命令也可以进入Gnome。

发表在 计算机与 Internet | 留下评论

在移动硬盘上安装Windows 7

Windows 7推出后,市场反应良好。也曾经在虚拟机中试用过,确实比Vista的体验好不少,软硬件的兼容性有了不小提高。由于我的T61笔记本一直使用Windows XP,虽然比较经典,但已推出时间过长,让人觉得没有太多新意,所以决定转到Windows 7平台。为保险起见,我并不打算把XP直接替换成Windows 7,但本地也没有多余的空间可以安装别的系统,所以想直接安装到移动硬盘。
在网上搜索了一下,Windows 7可以通过使用提供的USB工具创建USB安装盘,就是说不需要把ISO文件刻成光盘,而是通过这个工具把ISO镜像在USB移动硬盘进行处理后使得USB移动硬盘可以用来启动安装Windows 7 (需要在BIOS中选择USB启动)。遗憾的是虽然可以用USB硬盘安装WIN7,但并不能安装到USB移动硬盘上,安装过程中虽然会列出USB移动磁盘但提示不能安装在上面。
考虑到久谛的DreamClone Express可以把系统备份到移动硬盘并随时用于启动恢复,我决定先在VMWare虚拟机中安装Windows 7,然后把移动硬盘分给这台虚拟机,使用DreamClone Express把安装的系统备份到移动硬盘,最后把这个移动硬盘用于笔记本物理机直接启动,以后可以在保证安装的Win7系统一切就绪后在通过DreamClone把移动硬盘上的Win7替换掉笔记本上的XP系统,实现平滑过渡。下面是通过这种方式安装在移动硬盘并从物理机器上启动后的桌面(在Lenovo官方网站下载安装了匹配的硬件驱动,可以先安装其System Update软件,由它自动查找安装),有一点需要注意,从虚拟机转到物理机器运行后Aero没有启用,可以通过在搜索框里输入aero,选择aero疑难解答(应该是第三个选项),系统会自动诊断修复你的问题。另外,如果你想用虚拟机验证该移动硬盘是否可以启动,可以参考VMWare WorkStation中实现USB启动一文。

看一下磁盘的情况,磁盘0是笔记本本地硬盘,上面安装了Windows XP,其最前面的分区是Viast恢复分区。磁盘1好像是SSD(Intel称之为Turbo Memory),在XP下不能看到,在Vista和Windows 7下才会出现,配合这两种操作系统的ReadyBoost和ReadyDrive功能。磁盘2就是USB移动磁盘,Windows 7安装在第三个分区上,其盘符是C:,你问前面两个分区是什么?好吧,那里面安装了最新的Ubuntu桌面版(10.04 LTS),通过Grub可以在移动硬盘启动时选择哪个操作系统,顺便说一下,Ubuntu做的相当不错,值得推荐。

将来时间允许的情况下,我会尝试在该移动硬盘上继续安装WIN2008 R2,苹果等操作系统,到时候再和大家分享。

发表在 计算机与 Internet | 3条评论

在RHEL 5上搭建yum本地源并安装GCC

随着服务器虚拟化技术的应用普及,大家越来越习惯使用虚拟机安装系统来做一些学习,开发和测试。有些虚拟化厂商针对某些操作系统还提供了自动安装功能,非常方便。VMWARE之于RHEL 5就是一个例子,美中不足的是该自动安装并不包括常用开发工具集,另外RHEL 5和以前的RHEL 4在安装软件的方式上发生了变化,RHEL 4可以通过添加/删除程序来调整,RHEL 5已经没有这个功能,其通过yum机制来达到这个目的,但通常情况下使用yum需要RHN注册。

 

下面以RHEL 5.464位版本为例,说明如何不借助别的机器来搭建yum本地源,从而可以使用yum来安装一些光盘自带的软件,比如gcc 

 

1.       #su

2.       #mkdir /home/yum

3.       Insert RHEL 5.4 DVD

4.       #cd ‘/media/ RHEL_5.4 x86_64 DVD’

5.       #cp –r –f Server /home/yum

6.       #cp –r –f Cluster /home/yum

7.       #cp –r –f ClusterStorage /home/yum

8.       #cp –r –f VT /home/yum

9.       #chmod 666 /etc/yum.repos.d/rhel-debuginfo.repo

10.   Add following content to rhel-debuginfo.repo:

[Cluster]
name=Red Hat Enterprise Linux $releasever – $basearch – Debug
baseurl=file:///home/yum/Cluster/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 
[ClusterStorage]
name=Red Hat Enterprise Linux $releasever – $basearch – Debug
baseurl=file:///home/yum/ClusterStorage
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 
[Server]
name=Red Hat Enterprise Linux $releasever – $basearch – Debug
baseurl=file:///home/yum/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releasea 

[VT]
name=Red Hat Enterprise Linux $releasever – $basearch – Debug
baseurl=file:///home/yum/VT
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releasea 

 

11.   #rpm -ivh ‘/media/RHEL_5.4 x86_64 DVD/Server/createrepo-0.4.11-3.el5.noarch.rpm’

12.   #createrepo /home/yum/Server

13.   #createrepo /home/yum/Cluster

14.   #createrepo /home/yum/ClusterStorage

15.   #createrepo /home/yum/VT

16.   #yum install gcc

发表在 计算机与 Internet | 一条评论

Windows OEM版本激活机制

防盗版是每个商业软件厂商任重而道远的艰巨任务,微软公司也不例外,除了通过法律途径打击外,在技术上也是想方设法设置各种限制。在Windows 2000及之前时代,应该说自带的验证机制还是很简单,基本上一个有效的序列号可以用在任何一台电脑上。从XP开始,Windows加入了激活的要求,就是不仅要有有效的序列号,还要能通过微软官方途径的验证。
 
对于Windows零售用户来说,微软都会提供一个序列号,安装好系统后可以通过网络在线激活,但次数有限,如果频繁重装系统,可能会导致系统无法激活从而不能正常使用,这时可以使用电话方式,按微软客服要求提供必要的信息,实现手动激活。为避免麻烦,有的用户在第一次成功激活后手动备份认证的相关文件,将来如果重装系统可以直接恢复这些文件以达到激活的目的。
 
上面的做法对于大的电脑厂商(DELL,Lenovo,HP等)来说显然不合适。为了提高效率,它们的电脑生产装配都是流水线式的,出厂后系统都已预装好并直接可用,很难给不同的电脑配备不同的序列号,安装光盘和证书等,也不可能提供那么多的技术支持人员来处理序列号及激活等客户需求。为解决这些问题,从XP开始,微软把Windows版本分成OEM版本和非OEM版本,非OEM版本按客户的情况又分为零售版,大客户版,MSDN版等等。对于OEM版本,因为这些大的电脑厂商硬件型号有限,可以把操作系统和硬件绑定,使得为某个电脑厂商提供的OEM版本能且只能安装在特定的硬件上。
 
微软在XP时其OEM版本的做法是检查安装机器的BIOS内容,如果其内容没有包含预期的字符信息(一般是电脑厂商提供的厂商标识信息,不同的OEM版本只检查相对应厂商的字符),那安装完成后还需要用户手动激活,否则安装完成后会自动处于激活状态,由于这种激活不需要联网,一般也叫离线激活。这种做法应该说比较简单,电脑厂商在编写BIOS时只需加入指定的厂商字符信息。但由于用户刷新BIOS也很便利,可以很容易手动添加这些字符达到激活的目的。Vista开始,微软进一步做了加强,在ACPI协议中添加SLIC节(Software Licensing Internal Code),其中除了电脑厂商信息外,还包含Windows激活所要求的一些信息,另外为了防止伪造,还对相关内容作了签名并用公钥算法进行加密,同时公钥算法用到的公钥也存储在SLIC节中,为了防止公钥被伪造,通过颁发给各个电脑厂商的证书来验证,而证书由整个CA体系来保证其可靠和完整性。在安装Vista的OEM版本时,安装程序首先会去验证所有相关信息的真实性,只有在所有信息都未曾修改并且SLIC表中有预期的信息时,安装后的系统才会离线激活,否则需要用户手动激活。
 
可以看到,手动编造一个SLIC表是不可能的,但可以把别的机器上的有效SLIC表灌入另外的机器BIOS中,可以这样做是因为SLIC节的内容只提供信息给运行其上的操作系统,本身并不参与系统的启动过程,其自身并不含运行代码,而且也没有和单台机器绑定。修改BIOS的方式有两种,一种是硬改,一种是软改。硬改就是通过使用BIOS厂商相应的工具或编程器直接把修改后的BIOS文件写到主板的BIOS芯片里,这种方式适合IT爱好者,需要有一定的BIOS经验,也存在一定的风险,一旦刷写错误会导致整个系统再也无法启动。同时,如果刷写成功,这种方式也最可靠,微软很难把这种用户和合法的OEM用户区分开来。顾名思义,软改不需要改动BIOS芯片的内容,而是通过在操作系统加载前先期截获系统运行,在操作系统查询BIOS内容时提供替代但有效的信息以欺骗操作系统,这种软件大多数通过修改MBR或启动扇区来达到截获的目的,因为操作系统都是由MBR,启动扇区这些代码来加载的,这种方式应该说非常有效,也非常容易使用,只要运行某个软件就可以完成。但相比硬改,操作系统更容易检测到这种异常。
 
Windows 7的保护机制和Vista没有大的差别,只是升级了SLIC节的版本号。
 
注:本文只是用于学习软件的激活技术,请不要询问具体的修改细节。
发表在 计算机与 Internet | 一条评论

NT4源码编译工具包

NT4源码编译环境NTLDR编译详解文章中,我描述了怎么搭建NT4的源码编译环境,并对NTLDR的编译做了细致的描述。总的来说,已尽可能考虑了各个可能出错的环节,但由于步骤众多,操作性并不是最好。考虑到有网友写信问我怎么编译win32k.sys和其它一些模块,这进一步加大了描述的难度。鉴于此,我把除NT4源码和VC6外的所有编译需要的东西做成了一个编译包,进一步简化了编译环境的搭建,编译过程中不再需要手动调整。另外,除了前面提到的NTLDR外,该编译包还将编译ntoskrnl.exe,hal.dll,win32k.sys,ntfs.sys,ndis.sys,tcpip.sys,tdi.sys,rdr.sys,srv.sys,netbt.sys以及众多显示驱动等等,大家感兴趣的模块应该大都包括在其中。如果没有,也可以手动修改编译包自己添加。
 
下面是编译步骤:
 

1.  XPWIN2K3机器上安装VC6.0,SDK 2003

2.  nt4源代码解压到d:\nt下,里面应包含privatepublic两个目录。

3.  下载编译包,解压到d:\nt\build下,里面应包含nt4ddk,tools等目录。

4.  双击运行d:\nt\build\start.bat,这个时间会很长,可能需要几个小时,取决于机器的性能。

5.  D:\nt\public\sdk\lib\i386\checked目录下能找到大部分编译出来的模块,另外一些位于各自的目录,比如ntoskrnl.exe位于D:\nt\private\ntos\init\up\obj\i386,可以用windows自带的搜索功能在d:\nt目录下查找。

发表在 计算机与 Internet | 11条评论

VMWare WorkStation中实现USB启动

随着USB设备越来越普遍,出现了很多基于USB存储卡或USB移动硬盘的启动技术,比如WINPE,一些工具软件和很多Linux的发布版本都支持Live USB模式,这些大大方便了IT技术爱好者和一些普通用户。如果再结合虚拟化技术,不安装也不重启电脑就可以轻松体验一些最新最酷的操作系统和工具软件。遗憾的是虽然绝大部分虚拟环境支持ISO镜像文件启动,但起码我还不知道有哪个虚拟化厂商的产品可以直接从BIOS层次支持USB存储设备(CF卡或移动硬盘)的启动。这里和大家分享一下我所知道的两种补救方式,以VMWare WorkStation为例,应该也适用于别的虚拟化产品。
 
第一种相对比较简单,既然虚拟机的BIOS不支持USB存储设备,那就把USB存储设备模拟成BIOS可以启动的SCSI磁盘设备。创建虚拟机时选择磁盘类型时采用“使用现有物理设备”的方式,也可以在创建好虚拟机后再修改。图中的PhysicalDrive1对应磁盘管理器中的磁盘1。
 
 
 
第二种方式就是既然虚拟机现有的BIOS识别不了USB存储,那可以通过别的可启动的设备加载可以识别USB存储的软件,通过它们来支持从USB存储设备启动。支持ISO的光盘启动就是这样一个很好的切入点。这里我使用了PLoP Boot Manager v5.0,下载后解压并把其中的plpbt.iso文件作为虚拟机的光盘镜像文件,并指定该虚拟机从光驱启动。如果启动虚拟机时已经把USB存储插入主机中,会弹出如下对话框:
 
 
点击OK,然后虚拟机会从前面指定的镜像文件启动并出现如下菜单:
 
 
选择USB后系统就会尝试从连接到主机的USB存储设备开始启动。
发表在 计算机与 Internet | 留下评论

使用ESXi 4搭建Windows内核调试环境

程序出错时解决问题最好的办法是调试,调试分应用程序调试和内核调试两种。应用程序调试的工具有很多,基本上每种集成开发环境都会自带这种功能,比如windows下的各种VC版本,Linux下的GDB等等。内核调试相对要少很多,Linux下有kgdb,kdb等,Windows下有Softice,WinDbg等。应用程序调试一般都是单机调试,就是被调试程序和调试器运行在同一台机器上(虽然在调试特定的图形等程序时会使用远程调试,其实在本机还是有代理在运行)。内核调试为了确保调试的可靠性,一般需要两台机器。象Softice这种工具在内核调试时会有一些不足,因为它并不能暂停整台被调试机器的运行,否则调试程序也无法运行了,另外操作上也有很多不便之处。
 
由于搭建多机内核调试环境需要更多的机器,还需要串口线或1394线,所以很多时候即使内核调试也采用单机方式,我的内核调试经历就是从Softice开始的。随着服务器虚拟化技术的到来,开发人员已经可以在一台机器上跑多个操作系统,这样就可以使用更方便的双机调试方式,Windows下Windbg也就越来越成为主流,而Softice这类的产品已经很久不更新了。
 
相信大家对在VMware Workstation环境下怎么搭建内核调试环境应该很清楚,google一下可以找到一大堆教程。这里和大家分享一下在ESXi 4上怎么实现。这种技术比较而言有几个好处,一是ESXi服务器功能比较强大,可以同时跑多台虚拟机,便于搭建多机环境,不象普通的PC机,跑台虚拟机就气喘吁吁。另外为提高效率,很多软件测试工作都是通过虚拟服务器中的虚拟机来完成,如果出现问题那么可以保护环境,现场调试。
 
下面的介绍以Windows为例,也适用于Linux系统。假定在同一台ESXi 4的服务器上其中有两台虚拟机,一台为Windows 2003,一台为Windows 2008。2003这台机器为被调试机器,2008为调试机器。
 
1. 给2003这台虚拟机添加一个串口,并按下图设置,注意其中的管道名称,我曾尝试使用/tmp/mypipe,运行该虚拟机出现错误。
 
 
2. 启动该2003虚拟机,修改系统盘下的boot.ini文件(如果看不到,需修改文件选项以显示操作系统保护文件),我在文件后添加了一行调试选项,见下图。
 
 
3. 给2008这台虚拟机添加一个串口,并按下图设置。
 
 
4. 启动2008虚拟机,运行WinDbg软件,按下图设置好后点确定。
 
 
5. 最后,重新启动2003虚拟机,启动时选择调试菜单。
发表在 计算机与 Internet | 留下评论

启用ESXi 4的SSH功能

ESXi其实就是基于Linux开发的具有虚拟化功能的操作系统,习惯Linux的用户一般都喜欢使用SSH远程控制,遗憾的是ESXi 4默认并没有启用SSH服务,不过可以通过如下步骤将其打开:
1. 打开安装ESXi的物理服务器的控制台,可以看到如下界面,按ALT+F1进入下一步(如果没为root账号设置密码可以按F2配置)。
2. 屏幕将显示如下信息,输入unsupported后敲回车,注意在输入的时候屏幕确实看来没反应,不用管它。
3. 到这一步系统应该会提示你输入密码,正确输入root账号的密码后会出现如下信息。

4. 用vi打开/etc/inetd.conf文件,把ssh前面的#去除并保存。然后输入/sbin/services.sh restart重启服务。5. 通过ps aux | grep inetd命令获得inetd的进程ID,并使用kill -HUP PID杀掉inetd进程。

最后用你喜欢的SSH客户端就可以连接上ESXi服务器了,重启后依然有效,我用的是SSH Secure Shell Client,可以免费下载。但其文件传输功能不起作用,使用WinSCP却可以,看上去是ESXi不支持SFTP但支持SCP。如果需要在ESXi服务器之间传送文件,可以使用内嵌的scp命令。
注:此方法也适用于ESXi 3.5版本。对于ESXi 4.1或更高版本,配置页面中有”Troubleshooting Mode Options” ,直接启用”Remote Tech Support (SSH)”。
发表在 计算机与 Internet | 留下评论

ESX on ESX

“VMware WorkStation 6.5中安装ESX 3.5”一文中介绍了用VMware的工作站版本安装ESX 3.5,这样即使在一台普通的笔记本上也可以体验ESX的部分基本功能,如果想尝试类似vMotion,DRS和HA等高级功能,起码需要两台ESX服务器,一台VC服务器以及两台或以上在ESX中运行的虚拟机,单单用一台笔记本来搭建所有环境估计会比较困难。所以我一直想找一台功能强大一点内存充裕的物理服务器,裸机安装ESX,并在其之上再安装虚拟ESX和VC等实验环境,这样不仅不需要很多的硬件设备,还能方便地通过诸如抓包等工具研究其内在机理,帮助更好的诊断问题。虽然采用类似VMware的工作站版本的方式可以在ESX 3.5上安装ESX 3.5,但在虚拟ESX 3.5中无法运行另外的虚拟机,会出现如下错误,即使加上“monitor_control.restrict_backdoor = ’true‘”虚拟机也无法启动。
 
 
 
现在ESX 4.0 (vsphere4)出来很长一段时间了,找了个时间尝试一下,结果表明上面的愿望成为了现实。不过需要注意以下几点:
 
1. 为了能够在虚拟机中正常使用网络(ESX的高级特性如vMotione,DRS等都建立在网络基础上),需要把虚拟ESX所在的虚拟交换机设置成混杂模式,如下图:
 
 
2. 由于VMware官方并不支持在ESX中安装ESX,所以还是需要开后门,不过这次不需要手动修改文本文件,可以通过VI客户端界面设置,登陆到物理ESX,选择对应虚拟ESX的虚拟机的编辑设置中的配置参数按钮,加入“monitor_control.restrict_backdoor = ’true‘”,如下图:
 
 
3. 对于ESX的高级功能,还需要共享存储(SAN或NAS),如果没有这种硬件也可以在物理ESX的一台虚拟机中安装一些免费软件来实现,比如OpenFiler就很不错。
 
4. 安装虚拟ESX 4时,必须至少分配2G内存,否则无法安装成功。但安装完成后,可以通过修改ESX系统中/etc/vmware/init/init.d/00.vmnix 文件的RequiredMemory值来调整。
 
注:也尝试过在ESXi 4中安装Hyper-V,虽然64bit的Windows 2008安装没有问题,但不能添加Hyper-V角色,提示硬件不支持需要的虚拟化功能。
 
发表在 计算机与 Internet | 留下评论