Installing drivers to another windows - windows

I have one drive (C:\) with Windows 2008. Is that possible to install drivers to this Windows while booting from WinPE (another OS)? I couldn't find any software to do this.
So what I'm trying to do is install drivers to one Windows while booting from another Windows on separate disks.

It's not impossible, but not easy either. Installing a driver is basically a matter of copying the files and editing the registry, both of which can be done remotely.
However, the problem comes from knowing which registry entries to create, with which values. This depends on the driver, the OS, hardware and a bunch of other factors. The best approach would be to install the driver normally, and take a diff of the before/after registry, if you can. If not, you could set up another Win2008 system, do the diff there, and start from that.
If you are just updating an already installed driver, copying the newer version files will likely work.
This seems like an XY problem, though - what exactly are you trying to accomplish? There may be a better approach.

Related

How to create a redistributable self contained binary distribution of a VM with VirtualBox?

Is it possible to create a self contained binary distribution of a VM with VirtualBox or some other tool?
My requirements:
no VirtualBox install
self contained binary/-ies to start and stop VM (with all VirtualBox environment support on it)
possibly no administrator rights to start and stop the VM
at least windows, but better if cross platform
In theory it is possible to create a giant blob that bundles some kind of hypervisor which will first extract install along with the VM (disk, config. etc.) and then run itself and the extracted VM.
However, that is only theory. In practice, hypervisors are very complex pieces of software and require some sort of ring-0 access (kernel level) to talk directly with the CPU and other hardware and VirtualBox is no exception. So installing them, on any operating system that cares even a little bit about security, will require admin/root/supervisor access as you cannot install drivers and other kernel components otherwise.
If performance is of no concern, it may be possible to use an emulator like Qemu/Bochs which can work without ring-0 access. However, I'm not currently aware of any projects that have such self-extracting and runnable emulators for pre-baked VM images (even more so on Windows).
As Tekn0 writes, it is required a low level access to the host OS layer.
I found the project Portable VirtualBox which setups the host machine on the fly.
I tested it and it is not enough satisfactory. From the site:
Note
VirtualBox needs several kernel drivers installed and needs to start
several services: if the drivers and services are not already
installed you’ll need administrator rights to run Portable-VirtualBox.
When Portable-VirtualBox starts, it checks to see if the drivers are
installed. If they are not it will install them before running
VirtualBox and will remove them afterward. Similarly,
Portable-VirtualBox checks to see if the services are running. If not,
it will start them and then stop them when it exits.
The result is a product not always running and with strange kernel errors.
There is another project (starting from Tekn0 observations) Kquemu Portable
and finally Bochs.

How do you programmatically detect dual booting (particularly Linux) from within Windows?

My dad is looking for ways to automate checking the settings of a Windows server for giving it a standards compliance grade. He needs to know if more than one OS is installed, but wants to avoid taking down the server at all costs. Is there any technique within Windows (XP and newer) for programmatically ascertaining whether a machine has multiple OSs installed?
It depends on what you consider "an installed OS".
At the very least you'd have to scan all partitions (including the ones Windows's limited filesystem support can't recognize) for filesystems and then see if they "look" like another OS. If you need to know if the alternate OS is bootable as well, you'll have to scan for boot loaders and their configuration as well.
By the way, what difference does it make if there's another OS installed on the computer?
Not entirely reliably. You could attempt to access the MBR and the partition table and sniff for evidence of the competition if you can persuade Windows to let you open the other partitions as raw devices. It would be a heap of work.
How about doing a checksum of the bootloader and comparing it against a known-good list of Windows OS bootloaders on the HDs?

Doing coding in Linux through a virtual machine on Windows VS partitioning

I already have experience with setting up virtual machines, running them and other minor tasks. Im a gamer, so I wont get rid of windows (for now at least...) but I do want to be a great programmer and to be involved with the Open-Source community.
Id like to know if its a good idea to do my programming in linux through a virtual machine, vs giving it a partitioned section of the HDD. Id like to know about performance pros and cons and functionality.
All responses are appreciated, thanks in advance.
The type of programming I intend to dive into :
Android Dev, Web Dev, Desktop Dev...More Android and Web right now though.
So im looking at C#,C,C++,Java,PHP,HTML,MySQL...Off the top of the dome.
I do web designing as well, so dreamweaver is added as an "essential". But im sure I can do dreamweaver files and upload them to the server after programming in Linux...Right?
And any info on IDE's in Linux for the above mentioned are appreciated, but i would prefer going the coding route and understanding the essence of whats happening "under the covers"
Thanks to all for reading, I appreciate it.
Hope this isnt confusing :S
There is an easier solution..
I still have to use Windows for Symbian programming so I use a Wubi and Ubuntu to provide my double bout into Linux..you deploy Wubi uses a large file and thus no need to worry or mess with creating a partition..
I have used it for 18 months with no data loss and no worries..
There is also another tool called andlinux:
http://www.andlinux.org/
It uses colinux to run Linux as a program inside windows..
A couple things:
If you're using an IDE, there's no point to coding on Linux. Linux is nice for programming because the command line tools are awesome. Netbeans and Eclipse both work fine on Windows. All you'd be missing is makefiles (which IDEs don't use anyway).
Using a virtual machine would be annoying (working with the window and stuff) and slow. Try AndLinux if you want to have Linux running in Windows. It sets up X and Pulseaudio for you, so all of your programs will appear to be native. It's basically a way to run Ubuntu as a Windows service (all Ubuntu packages for your architecture are installable).
If you just want the fun of Linux command line programs without access to all of Ubuntu, cygwin is smaller and might be faster.
If by "Dreamweaver files", you mean HTML/PHP/CSS, then yes, you can just upload them to the server. As far as I know, the only ASP or ASP.net compatible server is Microsoft's, but why use that anyway?
EDIT: SO didn't give me enough space in the comments to answer your question..
AndLinux and Cygwin are basically just better ways to do your "virtual machine" idea.
Cygwin adds a posix layer to Windows (basically everything you need to compile Unix/Linux/BSD programs). This means that you can generally take a Linux program and just compile it on Windows and have it work. They also have repositories, but in my experience, the cygwin installer is slow and hard to use.
AndLinux runs the Linux kernel as a Windows service, giving you a similar experience as running it in VirtualBox/other virtualization programs. However, it also sets up X (the graphics layer for Linux) and PulseAudio (a sound system that lets you run sound over a network), so that when you run Linux programs they act and sound like native programs. I also like AndLinux better because you have access to all of Ubuntu's programs, and apt-get is easier to use than cygwin's installer. Also, if you use AndLinux and later to decide to go 100% Linux, you're basically already using it that way.
What I'm getting at is: If you want to run Linux in a virtual machine, don't. Just install AndLinux. It will be faster and it's much easier to work with (since everything is just a normal window).
Here's an example of the difference:
Screenshot of AndLinux: The program in the bottom right corner is running in AndLinux. Notice how it just looks like a badly themed Windows program? Compare that to something like this, where you have another desktop in a Window.
And still.. there's no reason to virtualize Netbeans. It's a native Windows program and you can gain nothing and lose a lot of speed.
If you're interested in Android development and you want to use Linux, then I would recommend you do your development in Eclipse. Eclipse is available for Linux and if you get Ubuntu then Eclipse is amazingly easy to install. I used VirtualBox + Ubuntu + Eclipse for several projects I worked on. If you decide that Linux is not for you and your project was in Eclipse then you will have no problem switching back to Windows since Eclipse is available for both operating systems.
The ONLY problem I had was the screen size on the virtual machine... if you have a big screen and you use a virtual machine then you might get limited to a fraction of your actual screen resolution. It's very easy to install Linux on a second partition, so I would just recommend you go with a second partition if you want to fully utilize the size of your monitor.
My setup is sort of the opposite: I run Linux as my main OS, both at work an at home, and I have Windows in a virtual machine. On a modern computer with adequate memory the performance of development tools is not a problem. I work with Visual Studio in the virtual machine, and I have seen few performance issues. (But note that this is on a fast computer, and that you may need more memory than otherwise, since you are running two OS:es at the same time. On an old computer with less memory it can become unbearable.)
Dual-boot, where you have to restart the computer to switch OS, doesn't work well for me. It takes way too much time to switch, and really need to switch back and forth. Having Windows in a window works much better for me, and you can maximize that "Windows window", so it looks like you're just running Windows.
One thing you may want to look at is to have Linux running in a VM, then configuring Samba to allow the host to network-mount pieces of the Linux filesystem so that you can operate using Windows tools, and have Linux running the server processes (e.g., httpd). Alternatively, I'm sure that there are shell extensions for using FTP, NFS, or SSH/SFTP servers from within Explorer, but I've not looked at any for a long time.
If you should happen to need to use graphical Linux tools then you can use the X server found in cygwin for that.
The downside of this plan is that Samba can be a bit tricky to configure, but you get to use the Windows tools you're already familiar with.
I had no issues running Ubuntu via VMWare. You can easily switch to full screen mode anytime. Strongly recommended. One shortcoming is that Linux will not be exposed to the full potential of your hardware. Compbiz Fusion failed to work as a result.
Given that you're a gamer, I'm thinking your machine should be fast enough to run Linux in a VM. Best to try out the VM before messing with disk partitions.
I use physically separate machines to run Linux and Windows (and MacOS X). This means that I don't have to reboot to do something different, and each system gets the full power of the hardware.
Disadvantages: more desk space used, more time and money spent maintaining hardware (though if you do a rolling upgrade, this is mitigated - Linux runs most happily on not-quite-new machines). Doesn't work so well if you like carrying laptops around.
Be aware that VMs universally don't give you full graphics acceleration. This can be a non-issue (many programs must cope with Intel GMA anyway), or it can be a showstopper. Your choice.

Quick creation of fresh OS install for software testing

What do you recommend for quickly creating images for testing a software product (that needs hardware access - full USB port access)? Does virtualization cover this? I need to be able to quickly re-image the system to test from scratch again, and need good options for Windows and Mac OS.
Virtualization may work for you as long as it is only USB access.
VirtualBox is available with USB support either for "private use or evaluation" or commercially and works on Win, Mac and Linux. USB support on Linux and Mac is somewhat sporadical though and does not work with all devices. VBox supports snapshots.
VMWare has one free product called VMWare Server for Win and Linux but I'm not sure how far USB support is included in their server products. For Mac there is VMWare Fusion but that's not available for free. Fusion should work with most USB devices. Workstation products for Windows are more expensive. I think there is a trial version for all of them. All do snapshots.
I don't know how far Parallels (Mac) supports USB devices or snapshots.
You don't need snapshot functionality if you can afford some short downtime between re-imaging. You can shut down the VM and then just copy the disk image (which is nothing else but one or multiple regular files) and start the VM again. Snapshots can be reverted to a lot faster (without rebooting).
If virtual machines will work for you, you can choose between Virtual PC, VMWare and VirtualBox.
Virtual PC supports Win host and Win/linux guests. Although there are some caveats with regards to the X resolution support.
VMWare supports Win, OS X and Linux host. It supports Win and Linux guests.
VirtualBox supports same hosts and guests as VMWare.
None of the three supports OS X as guest officially. The reason is that OS X is licensed only for Apple machines. However, there are some hacks that allow installing OS X under VMWare. It might be also possible to install it under VirtualBox or Virtual PC, although I have not seen specific instructions.
If virtualization is not good enough for you, you can use precreated installation images or a disk imaging program.
For precreated installation images for Windows, you can use the sysprep tool (search for sysprep or system preparation tool). I don't know if there are equivalent tools for OS X from Apple.
For disk imaging programs, I know quite a lot people swear by Symantec Ghost. I personally have not used it, so can't give you much info about it. There's also a list of disk imaging programs on Wikipedia, so you evaluate these as well.
Hope that helps.
If virtualization is right for you depends on how much access direct access you actually need.
But if virtualization works then vmware offers products for Windows and Mac that support a Snapshot feature.
Or there's also VirtualBox which works on Linux, Windows and Mac, also supports snapshots and is free.
I use VMWare Player for this sort of stuff. I've not tested it with the sort of access you discuss (since I mostly do apps rather than driver-level stuff) but the advantages are many, specifically being able to copy the VM when it's shut down for later restore to a specific point (sort of a poor man's snapshot) and being able to have lots of configurations without blowing the hardware budget.
It certainly provides USB virtualization and I would say it's the best bet for providing the full device access. I would suggest testing it since, if it provides the hardware support you need, it's a very good solution for the other reasons given. The only other (non-VM) suggestion I can think of which would match it would be hard disk image backups which can be restored at will.
I've used Virtual PC heavily for this kind of thing in Windows, without ever hitting any issues. It's free, which is always a bonus ;o)
Edit: Just re-read the question - not sure that it has USB support. Should tick all the other boxes though
CloneZilla is a great, free way to reimage machines.
Once I worked for some company where we needed to test our software for various combinations of versions of OS, SPs and some other libraries which our application was dependent on. For each separate identified combination we had a separate partition image created with the help of Norton Ghost (DOS version). All images were put to a server. Whenever a tester got the next version of the system core to test, they would just methodically restore from all applicable images, install the application, test it and report it.
This approach though a straightforward one would allow full access to the hardware and will provide you with 100% native installation.
Nowadays, I still use this approach for my private PC. I'm sure you can try the latest achievements like Hyper-V. We use it nowadays where I work. When we tried to install Team Foundation Server (the process is far from being easy) we also had to drop the process at some point and just restore a virtual machine from an image because we realized we made a few mistakes during installation. Conceptually the same approach that saves a great deal of time. I'm not really sure though how compatible a virtual PC is in the sense of hardware access.
You can try both approaches.
P.S. Today there are two Ghost products, Symantec Ghost (good old one) for corporate use and Norton Ghost for home use (bloatware in my opinion). If you decide to try this option, I would recommend the Symantec Ghost (part of Ghost Solution Suite).
If you can't just use a virtual machine and take snapshots of the fresh install then do a fresh install onto real hardware and use a disk imaging tool (Ghost comes to mind).
If cost is a factor then there's a few Linux live CDs that will do what you want. This comes to mind. Put a second disk in the machine and image from the second disk unless you have fast networks and network storage; it's way to slow to go to and from the network regularly. If you're using a Linux live CD then you can actually set the second disk to EXT3 so Windows won't detect it and assign a drive letter too.
If you have a dedicated workstation for testing then I would highly recommend Symantec Ghost. Simply get the workstation to the clean state, reboot to ghost and 'take a snapshot' of the HD or partition. You can then replace the HD or partition from the image say from CD or multicasted over a network connection from another PC.
I have used it for years now, even to the point of automating the build of 60 test workstations (at the same time).

How should I install Linux on Windows Vista PC? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 7 years ago.
Improve this question
I am doing .net programming in addition to c and c++ development and want more flexibility on my home machine. I want to be able to have both Linux (probably Ubuntu) and Windows Vista on my home computer. Is there a way I can install both and on boot be prompted for which one to start? Is there a way to set Windows to default?
I have seen this before in CS labs in undergrad.
Also, I assume there would be no problem if I were to use Windows 32-bit along with Ubuntu 64-bit. Any advise?
The latest versions of Ubuntu include an installer called Wubi, which installs Ubuntu as a windows application (ie: it can be uninstalled from Add/Remove programs) and sets up the dual boot for you! It's great for those who want to give Linux a try without a system overhaul!
You can dual boot, but I would recommend using a Virtual Machine for what you want to do.
Look at VMWare and Virtual PC.
For more information on Virtual PC: http://en.wikipedia.org/wiki/Microsoft_Virtual_PC
For more information on VMWare: http://en.wikipedia.org/wiki/VMware_Workstation
You should note that dual booting Windows and Linux can be a little risky and is a bit permanent. Running in a Virtual Machine means that you can run the Linux install in a window and not worry about it affecting your development machine at all. The software will not know the difference, so your testing is not affected.
Consider that the Virtual Machine is like a sandbox, where you can try new and different things out, without fear of consequences.
Virtual machines do run with a bit of overhead, and therefore you should not expect to be playing games or anything through them. I would say it is very much like logging into a machine through Remote Desktop (good LAN connection) as far as performance goes.
EDIT: There is also VirtualBox that you could check out. Thanks for the helpers in my comments for that one.
I, too, recommend using a virtual machine for this purpose.
I've had problems with Virtual PC on some Linux distros (Fedora Core comes to mind), but no problems with VMWare or Virtual Box.
Think very hard before installing another operating system even as dual boot. It is rarely simple, even with installers like Ubuntu's that don't require you to mess around on a command line. There is a good risk you'll spend days trying to get your usual OS back to normal especially if you're using Vista.
VMWare and Virtual PC are both good options. Do a test install on one of these and use the OS for a while before making the decision to install.
One other great thing about using a virtual machine is that you only have to worry about getting your network settings sorted on your main OS, because VMWare (etc) will borrow those.
Also, try using the operating system on Live CD or DVD to start with if at all possible. You may also find that you can run an OS from a USB stick. This is obviously good for portability - but note that you can also carry your virtual machines on a removable USB drive.
All you have to do is go to http://www.ubuntu.com/getubuntu/download and follow the directions. I downloaded Ubuntu, burned it to CD, and rebooted with the CD in the drive. I did not have to get a second hard drive or worry about it messing with my Vista Home Premium installation.
With Ubuntu (as with most distros with a Live CD install) all you need to do is pop in a disc, boot, and click through the menus. The dual boot is set up perfectly by default, you don't even have to think about it. I've done this with Ubuntu, Debian, PC Linux OS, Freespire, and Xandros on my Vista Home Premium machine and they all worked that way.
If you are paranoid, then you should back up your PC. As cheap as hard drives (USB or internal) are these days, there really is no excuse to not have a full back up of your system. It's too easy. I use Acronis True Image, but I've heard good things about Norton Ghost as well.
Regadless, you don't need Wubi or VMWare, or any virtual anything, a straight install with a dual boot set up is the default on a typical Live CD Linux install and it works even with Vista.
I've done it different ways over the years, and I'd say using a virtual machine is the one that I like best. I've tried both VMWare and VirtualBox, both free, and I like VirtualBox a little better because you can use it with the .iso straight. You don't need somebody to have created a virtual machine image for you.
Another option is to actually run Linux as an application on Windows so you get Linux running at almost full speed but also the ability to run Windows applications along side it. Check it out at http://www.colinux.org/.
I haven't had a chance to play with it yet, but an option that looks promising for me is a tool in Ubuntu to create a bootable USB drive with Ubuntu on it. It has the benefit of a live cd (no effect on your system), better performance than a live CD and the ability to persist your data from session to session. I've used Wubi before, but I can't remember why I uninstalled it.
Have a look at "cygwin".
This istalls a "linux like" windowing application within your windows
environment. It has good support for gcc and most of the standard
gnu/linux development tools.
You dont have to mess with dual boot. Its especially good for testing
windows to/from unix communictions as you can get everything up and
running in one box.
What you're looking for is called 'Dual booting'. it allows one to choose which operating system to boot at the start. It's well supported in Linux, especially Ubuntu. Just install Ubuntu and it will set up dual booting by default.
You could go either way, a dual-boot or use a VM. I think it depends on whether you'll want to use any Windows apps while developing in the Linux environment. If so, I'd go with a VM, otherwise, here's a tutorial for setting up a dual-boot computer. It has a part on installing both OSes, and a part on if you already have Windows installed.
Wubi is a great (Ubuntu specific) solution.. The only problem I've found was installing Wubi on a FAT formatted Windows partition - I had serious problems then. Also, it might run slightly slower, as there is another layer when doing disk acccess, but I can't say I've noticed.
I dual boot Vista Ultimate 32-bit and Ubuntu 8.10 beta 64-bit with no problems. The key thing, in my opinion, is to have a completely separate hard drive to install Ubuntu on. That removes a lot of the risk since you don't have to fuss around partitioning your primary HDD and makes removing Ubuntu very straightforward as well if you decide you don't want it.
Just be careful and pay attention on which drive you select when you do the install. It's easy for me to tell them apart since my Linux drive is a different size than my main Vista and data storage drives.
If you'd rather go the VM route, VMware Player works well, and I've heard good things about VirtualBox.
try a live cd install of ubuntu :D
creating a bootable flash disk is easy - unetbootin from sourceforge.net
I have dual booted Ubuntu and Xp many times with absolutely no problems. I doubt you could do the virtual thing with one OS 32 bit and the other 64. This would not be a problem with a dual boot.
I have had problems using wubi and my boot into windows7 is now unstable at best, so given the choice would favour a VM solution in hindsight. However on other machines I have run Ubuntu Live on USB (installed using pendrivelinux.com) by picking the try ubuntu option at boot and that has worked well and was quite quick to get going.

Resources