Difference between pages "Welcome" and "Windows 7 Virtualization with KVM"

From Funtoo
(Difference between pages)
Jump to: navigation, search
m (Reverted edits by Daniel Robbins (talk) to last revision by 74.92.207.14)
 
(QEMU script)
 
Line 1: Line 1:
<div style="float:right; width: 35%">
+
This page describes how to set up Funtoo Linux to run Windows 7 Professional 32-bit within a KVM virtual machine. KVM is suitable for running Windows 7 for general desktop application use. It does not provide 3D support, but offers a nice, high-performance virtualization solution for day-to-day productivity applications. It is also very easy to set up.
{{#Widget:MonthlyDonate}}
+
blarg
+
<div class="boxy">
+
== Get on the UserMap! ==
+
{{#compound_query:[[Category:People]] [[Role type::Staff]];?Geoloc;icon=Purplemarker.png;limit=9999
+
    |[[Category:People]][[Role type::Contributor]];?Geoloc;icon=Orangemarker.png;limit=9999
+
    |[[Category:People]][[Role type::User]];?Geoloc;icon=Greenmarker.png;limit=9999
+
    |format=googlemaps3|height=275|zoom=1|type=hybrid|markercluster=yes}}
+
See our full-size [[Usermap]] and find out how to become part of the Funtoo Universe!
+
</div>
+
<div class="boxy">
+
== Join the User Community ==
+
  
Funtoo Linux is focused on the needs of our users. Here's how to get involved:
+
== Introduction ==
;wiki: Help us maintain content on this wiki. Add yourself to the Funtoo [[Usermap]].
+
;bugs: Our [http://bugs.funtoo.org bug tracker] is used to track all ongoing development work in Funtoo Linux. If you find a bug in Funtoo Linux, report it here. Also used for enhancement requests.
+
;IRC: Join us in the <tt>#funtoo</tt> IRC channel on <tt>irc.freenode.net</tt>.
+
;mailing list: The [https://groups.google.com/forum/#!forum/funtoo-dev funtoo-dev mailing list] is used for development discussion.
+
;forums: [http://forums.funtoo.org Funtoo Forums] are available for forum-style Funtoo discussion.
+
;blogs: [http://larrythecow.org LarryTheCow.org] is a blog aggregation service for Gentoo ecosystem developers and users.
+
;rss/atom: [[Funtoo RSS and Atom Feeds]] displays the latest posts on the Forums and Planet Larry.
+
</div>
+
</div>
+
  
= Welcome to the Funtoo Wiki! =
+
KVM is a hardware-accelerated full-machine hypervisor and virtualization solution included as part of kernel 2.6.20 and later. It allows you to create and start hardware-accelerated virtual machines under Linux using the QEMU tools.
  
[[Funtoo Linux]] is a Linux-based operating system created by [[user:Drobbins|Daniel Robbins]], the creator and former Chief Architect of Gentoo Linux. Funtoo Linux is a Free software, or "Open Source" operating system. All distribution source code is freely available, and it can be used and distributed free of charge.
+
[[File:Windows7virt.png|400px|Windows 7 Professional 32-bit running within qemu-kvm]]
  
Who develops and improves Funtoo Linux? '''You do.''' We are a completely open meta-distribution that is run by our users and a small group of support staff. Our development centers around the needs of our users. Any user can contribute code and help improve Funtoo Linux functionality on our [http://bugs.funtoo.org bug tracker].
+
== Kernel Setup ==
  
== Featured Video ==
+
If you are using an automatically-built kernel, it is likely that KVM is already available.
  
In this video, Jonathan Vasquez ([[User:Fearedbliss|fearedbliss]]) walks you through the process of installing Funtoo Linux with ZFS. See the [[ZFS Install Guide]] for detailed instructions.
+
If you are compiling your own kernel, the following kernel config parameters should be enabled (this is based on a 3.x kernel):
  
{{#widget:YouTube|id=kxEdSXwU0ZI|width=640|height=360}}
+
Under <tt>Processor type and features</tt>, enable <tt>Paravirtualized Guest Support</tt>. Under the <tt>Paravirtualized Guest Support</tt> menu, enable any options related to KVM, such as <tt>KVM paravirtualized clock</tt> and in particular <tt>KVM Guest Support</tt>.
  
== Meta-Distribution, Optimized ==
+
Under the <tt>Virtualization</tt> category from the main kernel config menu, enable <tt>Kernel-based Virtual Machine (KVM) support</tt>, and enable at least one type of KVM, either for Intel or AMD processors. It is also recommended to enable <tt>Host kernel acceleration for virtio net</tt>.
  
Funtoo Linux is also a ''meta''-distribution, which means that it is built automatically from source code and is customized with the functionality that ''you'' want it to have, and ''without'' the unnecessary features and "bloat" that you want to avoid.  
+
You can use modules or build these parts directly into the kernel. Build your new kernel and modules, and reboot.
  
In addition, a Funtoo Linux system is [[Download|optimized for your CPU]], and we offer optimized versions for ''Intel Core i7'', ''Intel Atom'', ''AMD Opteron'', and other processors and architectures.
+
== Emerge Qemu ==
  
These combination of factors work together to create an extremely high-performance and flexible computing platform -- a platform where ''you'' are in control, and your system performs optimally. We believe that Funtoo Linux is the most ideal expression of how operating system technology "should" work, and we continually strive to make it better.
+
First, add the following USE flags to <tt>/etc/portage/make.conf</tt>
  
== The Gentoo Ecosystem ==
+
<pre>
 +
USE="sdl usbredir"
 +
</pre>
  
We are committed to maintaining high-levels of compatibility and collaboration with the Gentoo Linux project, and challenge ourselves to innovate while providing new approaches that can be easily leveraged by the Gentoo Community. We appreciate the support we receive from members of the Gentoo Community and strive to contribute back to the larger [[Gentoo Ecosystem]].
+
Now, emerge qemu:
  
== Ultimate Flexibility for Developers ==
+
<console>
 +
# ##i##emerge -av qemu
 +
</console>
  
Does your Linux distribution allow multiple versions of <tt>php</tt>, <tt>[[python]]</tt> or <tt>ruby</tt> installed happily alongside each other? Funtoo Linux does. Are you tired of hand-building key packages from source to configure them exactly the way you want? Funtoo Linux allows you to tweak the build-time features of packages using handy things called USE variables. Other distributions are forced to either leave stuff out that you want, or include stuff you don't want.
+
After <tt>qemu</tt> and its dependencies have been installed, you are now ready to start setting up your Windows 7 environment.
  
== Virtualization ==
+
== Windows 7 ISO Images ==
  
We support the [[OpenVZ]] project and build up-to-date Funtoo Linux OpenVZ containers that you can [[Download|download]]. Also see [[VagrantUp]] for a nice way to deploy VirtualBox-based Funtoo Linux systems. [[Metro]], our automated distro build tool, is capable of building OpenVZ, Linux VServer and [[Linux Containers]] (LXC) images. Funtoo Linux also makes an excellent virtualization host system for [[Xen]].
+
In this tutorial, we are going to install Windows 7 Professional, 32-bit Edition. Microsoft provides a free download of the ISO DVD image, but this does require a valid license key for installation. You can download Windows 7 Professional, 32 bit at the following location:
  
== Features ==
+
http://msft-dnl.digitalrivercontent.net/msvista/pub/X15-65804/X15-65804.iso
  
[[Funtoo Linux]] features native [[wikipedia:UTF-8|UTF-8]] support enabled by default, a [[wikipedia:Git (software)|git]]-based, [[Portage Tree|distributed Portage Tree]] and funtoo overlay, an enhanced [[Portage]] with more compact mini-manifest tree, automated imports of new [http://www.gentoo.org Gentoo] changes every 12 hours, [[GUID Booting Guide|GPT/GUID boot support]] and [[Boot-Update|streamlined boot configuration]], [[Funtoo Linux Networking|enhanced network configuration]], up-to-date [http://ftp.osuosl.org/pub/funtoo/funtoo-stable/ stable] and [http://ftp.osuosl.org/pub/funtoo/funtoo-current/ current] Funtoo [[Stage Tarball|stages]], all built using Funtoo's [[Metro]] build tool. We also offer Ubuntu Server, Debian, RHEL and Fedora-based [[Funtoo Linux Kernels|kernels]].
+
In addition, it's highly recommended that you download "VirtIO" drivers produced by Red Hat. These drivers are installed under Windows and significantly improve Windows 7 network and disk performance. You want to download the ISO file (not the ZIP file) at the following location:
  
Funtoo is currently supported on the following processor families :
+
http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/
* PC-compatible, both 32 and 64-bit (''x86-32bit'', ''x86-64bit'')
+
  
== Resources ==
+
== Create Raw Disk ==
  
* Learn more about [[Funtoo Linux]].
+
In this tutorial, we are going to create a 30GB raw disk image for Windows 7. Raw disk images offer better performance than the commonly-used QCOW2 format. Do this as a regular user:
* Why you should [[Choose Funtoo]]: ...and how it is different from other distros.
+
* Visit [[:Category:Projects|Funtoo Linux Projects]] and also look at the stuff online for [[Metro]].
+
* Learn [[:Category:Linux Core Concepts| Core Linux concepts]] from articles originally written by Daniel Robbins.
+
* [[Funtoo Linux Installation|Install Funtoo Linux]]
+
  
 +
<console>
 +
$ ##i##cd
 +
$ ##i##qemu-img create -f raw win7.img 30G
 +
</console>
  
__NOTOC__
+
We now have an empty virtual disk image called <tt>win7.img</tt> in our home directory.
__NOTITLE__
+
__NOEDITSECTION__
+
  
[[Category:Funtoo|*]]
+
== QEMU script ==
 +
 
 +
Now, we'll create the following script to start our virtual machine and begin Windows 7 installation. Note that this script assumes that the two ISO files downloaded earlier were placed in the user's <tt>Downloads</tt> directory. Adjust paths as necessary if that is not the case. Also be sure to adjust the following parts of the script:
 +
 
 +
* Adjust the name of <tt>VIRTIMG</tt> to match the exact name of the VirtIO ISO image you downloaded earlier
 +
* Adjust the <tt>smp</tt> option to use the number of CPU cores and threads (if your system has hyperthreading) of your Linux system's CPU.
 +
 
 +
Use your favorite text editor to create the following script. Name it something like <tt>vm.sh</tt>:
 +
 
 +
<syntaxhighlight lang="bash">
 +
#!/bin/sh
 +
export QEMU_AUDIO_DRV=alsa DISKIMG=~/win7.img
 +
WIN7IMG=~/Downloads/X15-65804.iso
 +
VIRTIMG=~/Downloads/virtio-win-0.1-74.iso
 +
qemu-kvm --enable-kvm -drive file=${DISKIMG},if=virtio -m 2048 \
 +
-net nic,model=virtio -net user -cdrom ${WIN7IMG} \
 +
-drive file=${VIRTIMG},index=3,media=cdrom \
 +
-rtc base=localtime,clock=host -smp cores=2,threads=4 \
 +
-usbdevice tablet -soundhw ac97 -cpu host -vga vmware
 +
</syntaxhighlight>
 +
 
 +
Now, make the script executable:
 +
 
 +
<console>
 +
$ ##i##chmod +x vm.sh
 +
</console>
 +
 
 +
Here is a brief summary of what the script does. It starts the <tt>qemu-kvm</tt> program and instructs it to use KVM to accelerate virtualization. The system disk is the 30GB raw image you created, and we tell QEMU to use "virtio" mode for this disk, as well as "virtio" for network access. This will require that we install special drivers during installation to access the disk and enable networking, but will give us better performance.
 +
 
 +
To assist us in installing the VirtIO drivers, we have configured the system with two DVD drives -- the first holds the Windows 7 installation media, and the second contains the VirtIO driver ISO that we will need to access during Windows 7 installation.
 +
 
 +
The <tt>-usbdevice tablet</tt> option will cause our mouse and keyboard interaction with our virtual environment to be intuitive and easy to use.
 +
 
 +
== Starting Windows 7 Installation ==
 +
 
 +
Now, it's time to start Windows 7 installation. Run <tt>vm.sh</tt> as follows:
 +
 
 +
<console>
 +
$ ##i##./vm.sh
 +
</console>
 +
 
 +
Windows 7 installation will begin. During the installation process, you will need to enter a valid license key, and also load ''both'' VirtIO drivers from Red Hat when prompted (Browse to the second DVD, then win7 directory, then x86).
 +
 
 +
After some time, Windows 7 installation will complete. You will be able to perform Windows Update, as by default, you will have network access if your host Linux system has network access.
 +
 
 +
Enjoy your virtualized Windows 7 system!
 +
 
 +
[[Category:Tutorial]]
 +
[[Category:First Steps]]

Revision as of 23:25, 23 November 2013

This page describes how to set up Funtoo Linux to run Windows 7 Professional 32-bit within a KVM virtual machine. KVM is suitable for running Windows 7 for general desktop application use. It does not provide 3D support, but offers a nice, high-performance virtualization solution for day-to-day productivity applications. It is also very easy to set up.

Contents

Introduction

KVM is a hardware-accelerated full-machine hypervisor and virtualization solution included as part of kernel 2.6.20 and later. It allows you to create and start hardware-accelerated virtual machines under Linux using the QEMU tools.

Windows 7 Professional 32-bit running within qemu-kvm

Kernel Setup

If you are using an automatically-built kernel, it is likely that KVM is already available.

If you are compiling your own kernel, the following kernel config parameters should be enabled (this is based on a 3.x kernel):

Under Processor type and features, enable Paravirtualized Guest Support. Under the Paravirtualized Guest Support menu, enable any options related to KVM, such as KVM paravirtualized clock and in particular KVM Guest Support.

Under the Virtualization category from the main kernel config menu, enable Kernel-based Virtual Machine (KVM) support, and enable at least one type of KVM, either for Intel or AMD processors. It is also recommended to enable Host kernel acceleration for virtio net.

You can use modules or build these parts directly into the kernel. Build your new kernel and modules, and reboot.

Emerge Qemu

First, add the following USE flags to /etc/portage/make.conf

USE="sdl usbredir"

Now, emerge qemu:

# emerge -av qemu

After qemu and its dependencies have been installed, you are now ready to start setting up your Windows 7 environment.

Windows 7 ISO Images

In this tutorial, we are going to install Windows 7 Professional, 32-bit Edition. Microsoft provides a free download of the ISO DVD image, but this does require a valid license key for installation. You can download Windows 7 Professional, 32 bit at the following location:

http://msft-dnl.digitalrivercontent.net/msvista/pub/X15-65804/X15-65804.iso

In addition, it's highly recommended that you download "VirtIO" drivers produced by Red Hat. These drivers are installed under Windows and significantly improve Windows 7 network and disk performance. You want to download the ISO file (not the ZIP file) at the following location:

http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/

Create Raw Disk

In this tutorial, we are going to create a 30GB raw disk image for Windows 7. Raw disk images offer better performance than the commonly-used QCOW2 format. Do this as a regular user:

$ cd
$ qemu-img create -f raw win7.img 30G

We now have an empty virtual disk image called win7.img in our home directory.

QEMU script

Now, we'll create the following script to start our virtual machine and begin Windows 7 installation. Note that this script assumes that the two ISO files downloaded earlier were placed in the user's Downloads directory. Adjust paths as necessary if that is not the case. Also be sure to adjust the following parts of the script:

  • Adjust the name of VIRTIMG to match the exact name of the VirtIO ISO image you downloaded earlier
  • Adjust the smp option to use the number of CPU cores and threads (if your system has hyperthreading) of your Linux system's CPU.

Use your favorite text editor to create the following script. Name it something like vm.sh:

#!/bin/sh
export QEMU_AUDIO_DRV=alsa DISKIMG=~/win7.img
WIN7IMG=~/Downloads/X15-65804.iso
VIRTIMG=~/Downloads/virtio-win-0.1-74.iso
qemu-kvm --enable-kvm -drive file=${DISKIMG},if=virtio -m 2048 \
-net nic,model=virtio -net user -cdrom ${WIN7IMG} \
-drive file=${VIRTIMG},index=3,media=cdrom \
-rtc base=localtime,clock=host -smp cores=2,threads=4 \
-usbdevice tablet -soundhw ac97 -cpu host -vga vmware

Now, make the script executable:

$ chmod +x vm.sh

Here is a brief summary of what the script does. It starts the qemu-kvm program and instructs it to use KVM to accelerate virtualization. The system disk is the 30GB raw image you created, and we tell QEMU to use "virtio" mode for this disk, as well as "virtio" for network access. This will require that we install special drivers during installation to access the disk and enable networking, but will give us better performance.

To assist us in installing the VirtIO drivers, we have configured the system with two DVD drives -- the first holds the Windows 7 installation media, and the second contains the VirtIO driver ISO that we will need to access during Windows 7 installation.

The -usbdevice tablet option will cause our mouse and keyboard interaction with our virtual environment to be intuitive and easy to use.

Starting Windows 7 Installation

Now, it's time to start Windows 7 installation. Run vm.sh as follows:

$ ./vm.sh

Windows 7 installation will begin. During the installation process, you will need to enter a valid license key, and also load both VirtIO drivers from Red Hat when prompted (Browse to the second DVD, then win7 directory, then x86).

After some time, Windows 7 installation will complete. You will be able to perform Windows Update, as by default, you will have network access if your host Linux system has network access.

Enjoy your virtualized Windows 7 system!