引入:

    鉴于机房中学生操作的不确定性,客户系统的设计中满足教学需求是重要的,但确保客户系统的在日常使用中保持足够的强壮是很必要的。这也就是本篇中所要讨论的主题。

客户系统数据保护:

1、虚拟主机配置文件*.vmx的保护

修改后最终的配置文件“Windows XP Professional.vmx”的内容:

  1. #!/usr/bin/vmware 
  2. .encoding = "UTF-8" 
  3. config.version = "8" 
  4. virtualHW.version = "7" 
  5. scsi0.present = "TRUE" 
  6. memsize = "1200" 
  7. scsi0:0.present = "TRUE" 
  8. scsi0:0.fileName = "Windows XP Professional.vmdk" 
  9. ide1:0.present = "TRUE" 
  10. ide1:0.deviceType = "cdrom-raw" 
  11. ethernet0.present = "TRUE" 
  12. ethernet0.connectionType = "nat" 
  13. ethernet0.wakeOnPcktRcv = "FALSE" 
  14. ethernet0.addressType = "generated" 
  15. sound.present = "TRUE" 
  16. sound.startConnected = "FALSE" 
  17. sound.fileName = "-1" 
  18. sound.autodetect = "TRUE" 
  19. mks.enable3d = "FALSE" 
  20. serial0.present = "TRUE" 
  21. serial0.fileType = "thinprint" 
  22. pciBridge0.present = "TRUE" 
  23. pciBridge4.present = "TRUE" 
  24. pciBridge4.virtualDev = "pcieRootPort" 
  25. pciBridge4.functions = "8" 
  26. pciBridge5.present = "TRUE" 
  27. pciBridge5.virtualDev = "pcieRootPort" 
  28. pciBridge5.functions = "8" 
  29. pciBridge6.present = "TRUE" 
  30. pciBridge6.virtualDev = "pcieRootPort" 
  31. pciBridge6.functions = "8" 
  32. pciBridge7.present = "TRUE" 
  33. pciBridge7.virtualDev = "pcieRootPort" 
  34. pciBridge7.functions = "8" 
  35. vmci0.present = "TRUE" 
  36. roamingVM.exitBehavior = "go" 
  37. displayName = "Windows XP Professional" 
  38. guestOS = "winxppro" 
  39. nvram = "Windows XP Professional.nvram" 
  40. virtualHW.productCompatibility = "hosted" 
  41. printers.enabled = "TRUE" 
  42. extendedConfigFile = "Windows XP Professional.vmxf" 
  43. ide1:0.autodetect = "TRUE" 
  44. ethernet0.generatedAddress = "00:0C:29:BF:4A:A2" 
  45. tools.syncTime = "FALSE" 
  46. uuid.location = "56 4d 42 01 62 45 91 a0-8f 1e 61 ed cf bf 4a a2" 
  47. uuid.bios = "56 4d 42 01 62 45 91 a0-8f 1e 61 ed cf bf 4a a2" 
  48. cleanShutdown = "FALSE" 
  49. replay.supported = "FALSE" 
  50. unity.wasCapable = "TRUE" 
  51. replay.filename = "" 
  52. scsi0:0.redo = "" 
  53. pciBridge0.pciSlotNumber = "17" 
  54. pciBridge4.pciSlotNumber = "21" 
  55. pciBridge5.pciSlotNumber = "22" 
  56. pciBridge6.pciSlotNumber = "23" 
  57. pciBridge7.pciSlotNumber = "24" 
  58. scsi0.pciSlotNumber = "16" 
  59. ethernet0.pciSlotNumber = "33" 
  60. sound.pciSlotNumber = "34" 
  61. vmci0.pciSlotNumber = "36" 
  62. vmotion.checkpointFBSize = "33554432" 
  63. usb:1.present = "TRUE" 
  64. ethernet0.generatedAddressOffset = "0" 
  65. vmci0.id = "-809547102" 
  66. usb:1.deviceType = "hub" 
  67. scsi0:0.mode = "persistent" 
  68. ide1:0.startConnected = "FALSE" 
  69. gui.fullScreenAtPowerOn = "TRUE" 
  70. usb.present = "FALSE" 
  71. bios.forceSetupOnce = "FALSE" 
  72. checkpoint.vmState = "Windows XP Professional-5b09eec1.vmss" 
  73. ethernet0.startConnected = "TRUE" 
  74. usb.pciSlotNumber = "-1" 
  75. usb:1.speed = "2" 
  76. usb:0.present = "TRUE" 
  77. usb:0.deviceType = "mouse" 
  78. usb:0.port = "0" 
  79. usb:0.parent = "-1" 
  80. ehci.present = "FALSE" 
  81. floppy0.present = "FALSE" 
  82. gui.lastPoweredViewMode = "fullscreen" 
  83. gui.viewModeAtPowerOn = "fullscreen" 
  84. tools.remindInstall = "FALSE" 

删除磁盘后内容:

  1. #!/usr/bin/vmware 
  2. .encoding = "UTF-8" 
  3. config.version = "8" 
  4. virtualHW.version = "7" 
  5. scsi0.present = "TRUE" 
  6. memsize = "1200" 
  7. scsi0:0.present = "FALSE" 
  8. scsi0:0.fileName = "Windows XP Professional.vmdk" 
  9. 略……

      比较磁盘被删除前后,文件内容的异同,便会轻易发现,仅仅是“scsi0:0.present"由原来的“TRUE”变为了“FALSE”而已。

删除网卡后的内容:

   同上述操作,本人发现网卡删除会导致多行改动(配置文件会少几行内容),且ethernet0.present = "TRUE"行也会有所变化。读者可自行体会。

2.VMware软件属性设置

   现在本人的做法是,先行在图形界面下设置,如果有有好的GUI界面的话,然后找到对应的配置文件,因在GUI界面的设置指向相关配置文件。故可以将修改后的配置文件做好备份,以期每次启动系统之时恢复之用。

VMware属性设置[见下图]:

    通过上述设置可以在全屏状态下,当虚拟机获得焦点时,自动隐藏VM的控制菜单,且只有通过键盘才可再次将菜单激活,减少了学生对于VM的干扰。

与设置相对应的脚本文件:

  1. shenzhi@sz0850:~$ cat .vmware/preferences 
  2. .encoding = "UTF-8" 
  3. pref.eula.0.appName = "VMware Workstation" 
  4. pref.eula.0.buildNumber = "591240" 
  5. pref.trayicon.enabled = "true" 
  6. pref.usbDev.maxDevs = "0" 
  7. pref.keyboardAndMouse.maxProfiles = "0" 
  8. hint.pciSound.alsaDLOpenFailed = "FALSE" 
  9. hint.vmui.reset = "FALSE" 
  10. pref.commandBar.toolbarEnabled = "FALSE" 
  11. hint.vnet.promiscNotAllowed = "FALSE" 
  12. pref.ws.session.window.count = "1" 
  13. pref.ws.session.window0.tab.count = "0" 
  14. pref.ws.session.window0.sidebar = "FALSE" 
  15. pref.ws.session.window0.sidebar.width = "200" 
  16. pref.ws.session.window0.statusBar = "FALSE" 
  17. pref.ws.session.window0.tabs = "FALSE" 
  18. pref.ws.session.window0.thumbnailBar = "FALSE" 
  19. pref.ws.session.window0.thumbnailBar.size = "125" 
  20. pref.ws.session.window0.thumbnailBar.view = "same-folder" 
  21. pref.ws.session.window0.placement.left = "282" 
  22. pref.ws.session.window0.placement.top = "22" 
  23. pref.ws.session.window0.placement.right = "926" 
  24. pref.ws.session.window0.placement.bottom = "531" 
  25. pref.ws.session.window0.maximized = "FALSE" 
  26. pref.autoFit = "TRUE" 
  27. pref.autoFitFullScreen = "fitGuestToHost" 
  28. prefvmx.defaultVMPath = "/home/shenzhi/vmware" 
  29. pref.grabOnMouseClick = "TRUE" 
  30. pref.grabOnKeyPress = "TRUE" 
  31. pref.motionGrab = "TRUE" 
  32. pref.motionUngrab = "TRUE" 
  33. pref.fullscreen.autohide = "TRUE" 
  34. pref.fullscreen.toolbarPixels = "0" 
  35. pref.autoSoftwareUpdatePermission.epoch = "" 
  36. pref.autoSoftwareUpdatePermission = "deny" 
  37. pref.componentDownloadPermission.epoch = "" 
  38. pref.componentDownloadPermission = "deny" 
  39. pref.dataCollectionEnabled.epoch = "" 
  40. pref.dataCollectionEnabled = "FALSE" 

   由此以来,关于VM客户机及VM软件的配置所指的文件,以及配置后对应文件内容的更改,在本文中浅浅提及,希望可以起到抛砖引玉的作用。

【完成于网络实训室, 16:25 2012/4/19 】