Скачать virtualbox — установка множество ос на компьютер
Содержание:
Workaround
In my case I couldn’t use the mouse and most of the keyboard was disabled but I found a workaround that probably works for everyone.
Basically the idea is to prevent the logitech drivers from running without using the guest keyboard/mouse.
I did it by using the utility VBoxManage guestcontrol to execute any command on the guest system.
Microsoft has a command line utility that is an alternative to the device manager. It can be found here: http://support.microsoft.com/kb/311272
Extract the exe file and put the devcon.exe somewhere the guest system can access (I used a network share, p:\).
Then I listed all drivers in the system with:
VBoxManage guestcontrol execute "VM name goes here" "c:\winnt\system32\cmd.exe" --arguments "/c p:\devcon driverfiles *" --username Administrator --password 1234 --wait-for stdout > driverfiles2.txt
Inside the listing I found:
ACPI\PNP0F03\4&1D401FB5&0 Name: Logitech-compatible Mouse PS/2 Driver installed from c:\winnt\inf\oem4.inf . 6 file(s) used by driver: C:\WINNT\system32\DRIVERS\i8042prt.sys C:\WINNT\system32\DRIVERS\mouclass.sys C:\WINNT\system32\DRIVERS\L8042pr2.sys C:\WINNT\system32\DRIVERS\lmouflt2.sys C:\WINNT\system32\DRIVERS\lkbdflt2.sys C:\WINNT\system32\lcoinst.dll
I tried to remove ACPI\PNP0F03\4&1D401FB5&0 from the system but it didn’t work as it got automatically reinstalled after the required reboot.
So I deleted c:\winnt\inf\oem4.inf so windows wouldn’t find the information how to reinstall the Logitec drivers.
I did it like this:
VBoxManage guestcontrol execute "VM name goes here" "c:\winnt\system32\cmd.exe" --arguments "/c del c:\winnt\inf\oem4.inf" --username Administrator --password 1234 --wait-for stdout
The windows installation on the guest was located at c:\winnt but that could be different on others. If you don’t know you can check it with the %SYSTEMROOT% variable.
Like this:
VBoxManage guestcontrol execute "VM name goes here" "c:\winnt\system32\cmd.exe" --arguments "/c echo %SYSTEMROOT%" --username Administrator --password 1234 --wait-for stdout
Collecting information from the host
As always when it comes to diagnosing problems with VirtualBox the appropriate VBox.log is useful to have. To gather more verbose information about the actual drag an drop operation, please do the following:
- Shut down all VM instances and VirtualBox programs, including VBoxSVC.
- Run VirtualBox from the command line with the environment variable
VBOX_RELEASE_LOG=guest_dnd.e.l.l2.l3.f
set (see the description of the logging facility for more background). On Windows you
can usesetx VBOX_RELEASE_LOG "guest_dnd.e.l.l2.l3.f" /M
on an Administrator command prompt to set this on a system-wide level (required). On POSIX-enabled systems like Linux, Unix or OS X you can add the following to file /etc/profile:
export VBOX_RELEASE_LOG=guest_dnd.e.l.l2.l3.f
- Reboot the host.
- Start the VirtualBox Manager and start the VM you want to diagnose drag and drop for.
- Perform and reproduce the faulty drag and drop operation (from host to guest or guest to host).
The resulting VBox.log of the VM you reproduced the drag and drop issue should now contain a lot more logging statements beginning with
DnD: <More logging comes here>
This is all what it takes to gather drag and drop debug information from the host. Sometimes, however, the error does not occur on the host but on the running guest itself. For that to diagnose please read the next section.
Preventive measures
I just wanted to add that cleaning up the drivers before installing the guest additions is another option.
This is one way to do it:
1) Remove unused software like Logitech Mouseware under the windows control panel > add/remove programs.
2) Remove unused drivers with the Device Manager. You need to add an environment variable before starting to be able to see unused devices in the system.
From a command window:
set devmgr_show_nonpresent_devices=1
or add devmgr_show_nonpresent_devices under properties for «My Computer»>System Properties>Adavnced>Environment Variables. Set value to 1.
Then start the Device Manager and select View > Show Hidden Devices.
Unused devices will be greyish.
Uninstall those not present in the system.
When converting a physical machine to a virtual there will be a bunch on unused drivers in the system.
Collecting information from the guest
Collecting drag and drop debug information on the guest is similar to collecting it on the host. For that also system-wide environment variables need to be set on the guest (not on the host!).
For Linux, BSD or Solaris guests, do the following:
- Make sure you at least have the VirtualBox Guest Additions 5.0 or higher installed.
- As root, open the file /usr/bin/VBoxClient-all and change the line
/usr/bin/VBoxClient --draganddrop
to
VBOX_RELEASE_LOG_DEST="file=/tmp/VBoxClient.log" VBOX_RELEASE_LOG_FLAGS="time tid thread" VBOX_RELEASE_LOG="all.e.l.l2.l3.f" /usr/bin/VBoxClient --draganddrop
- Save the file /usr/bin/VBoxClient-all
- Do the same editing as above with the file /etc/X11/Xsession.d/98vboxadd-xclient
- Save the file /etc/X11/Xsession.d/98vboxadd-xclient
- Reboot the guest.
- Perform and reproduce the faulty drag and drop operation (from host to guest or guest to host).
The resulting logfile in «/tmp/VBoxClient.log» on the guest drop issue should now contain a lot more logging statements beginning with
DnD: <More logging comes here>
For Windows guests, do the following:
- Make sure you at least have the VirtualBox Guest Additions 5.0 or higher installed.
- Create the directory «C:\Temp» on the guest if it does not exist yet.
- Open an command line prompt as Administrator and execute:
setx VBOXTRAY_RELEASE_LOG_FLAGS "time tid thread" /M setx VBOXTRAY_RELEASE_LOG "guest_dnd.e.l.l2.l3.f" /M setx VBOXTRAY_RELEASE_LOG_DEST "file=C:\Temp\VBoxTray.log" /M
- Reboot the guest.
- Perform and reproduce the faulty drag and drop operation (from host to guest or guest to host).
The resulting logfile in «C:\Temp\VBoxTray.log» on the guest drop issue should now contain a lot more logging statements beginning with
DnD: <More logging comes here>
Troubleshooting
Question | Answer |
---|---|
The command setx does not work on my Windows guest or host. What to do? | Older Windows operating systems (such as Windows XP) don’t have the command setx available. You have to install the «Windows XP Support Tools» first: Download |