15 April 2010
26 April 2009
Normally to install Windows on a Macbook Air through Boot Camp, you require an external SuperDrive. What a pain - I'm not prepared to pay for something I won't use for any other purpose. Of course I could (and have) installed Windows in a VM but it just isn't as speedy; sometimes I need good performance for my Windows apps.
The "normal" way to install apps on a Macbook Air is to use downloaded versions or Remote Disc. Neither will work for your Windows install. However after much experimentation I have come with a solution that will work.
Disclaimer: The solution I am proposing requires you to be both technically literate and careful. You could completely destroy your data if you are not careful so create full backups of everything before you begin. I'm not responsible for anything you do. Additionally, you shouldn't assume that I've done anything the "right" way - this process was created through trial and error, not an expert knowledge of the software or processes in question.
Here's what you need:
- A Macbook Air with plenty of free hard drive space.
- A full, legal copy of Windows Vista or Windows 7 (I haven't tried this with XP).
- Parallels Desktop (A trial version should be enough).
- A USB drive of any size.
- Another computer with a DVD drive and Remote Disc software.
- Your Macbook Air OS X install disc.
If you don't have it already, you should download and install Parallels now. If you already have Parallels, be sure to get the latest Parallels updates. Earlier releases don't work with Windows 7, for example.
Now we need to get our Windows installation files onto the Mac. Use another computer to create an ISO disc image of your Windows DVD (unless your Windows is an ISO already). I like ImgBurn (a Windows app) for these purposes. Copy the ISO to your Mac in your favourite way (network, usb drive etc).
Now it's time to launch the Boot Camp Assistant. Follow the process as normal, right up to the point where it's time to start the Windows installation.
Hint: Check now that your Boot Camp partition has not decided to mount itself, otherwise Parallels sometimes gets upset. You can unmount it from Disk Utility if needed.
Start up Parallels and create a new virtual machine.
Here comes the tough part. If you were to reboot now and try to force your Mac to boot Windows it won't work. A typical PC's hard disk has code right at the beginning of the disk which tells it where to find crucial operating system files - the MBR. Windows has gone ahead and installed the MBR but it's installed in its VM, not to the real hard disk. We have to copy this MBR to the real hard disk and at the same time be careful not to mess up the Mac install.
First we need to find the VM's MBR. To do this, locate your Windows VM on your Mac hard drive. Typically this will be in your Documents/Parallels folder. To get to the MBR, right click your VM and choose Show package contents. Repeat this for your VM hard drive which will share the name of your real hard drive (mine is called SAMSUNG HS082HB.hdd). The PhysicalMbr.hds file is what we need. Copy this to your USB drive.
We'll use Fdisk to view and modify our MBR as necessary. Let's start by running sudo fdisk -e /dev/disk0. Enter your password.
Type print followed by pressing return to view your current MBR information.
It's important now to note this information, just in case. Note specifically the id column - notice how there's an EE? That's for the GUID Partition Table the Mac uses. You might want to read up about GPT. The takeaway point is that the first sector of the drive is reserved for the MBR, even though we've also got a GPT partition. Note that the Boot Camp partition is listed as Fat-32 despite the fact that I used NTFS on my Windows partition. This is because the real MBR has not been updated with the new partition information.
Type exit and return.
Now we're going to write the new MBR. This part is very dangerous if done incorrectly. Additionally, Mac OS does not allow you to write a new MBR from within the OS. If you try, you will find that access is denied (even for the super user). Instead, we need to boot the Mac OS X Installer and write the MBR from there. So reboot your Mac and use Remote Disc to start the Mac OS X Installer
Hint: Sorry, you can't use your wired ethernet here, only wireless. This is because we have to keep our one USB port free for the USB flash drive. A hub might work if you have one though.
When the OS X installer is ready to go, do not proceed with it. Instead, go to the Utilities menu and open Disk Utility. Click each of your hard drive's partition and unmount each.
Now we will open the Terminal. Make sure your USB drive is plugged in.
Hint: In case you don't know, you must press return after every command in the terminal.
Navigate to your flash drive. To do this, first type
Type ls and identify which is your flash drive. Type
The first thing to do is back up your old MBR.
Be very careful entering these commands.
This will back up the MBR to a file called backup.mbr on your USB drive.
Now we replace the physical MBR with the one copied from the VM.
This assumes you didn't rename the VM MBR when you copied it to your USB drive.
Hint: If something bad happens and you need to restore your MBR, type the same command as directly above, but substitute PhysicalMbr.hds for backup.mbr.
Now that we've replace the MBR we need to check it looks ok. Type
Type print to view your MBR. The most important thing to check which Windows may have stuffed up is the id of each partition. Your first partition must have an id of EE, your Mac Partition must have an id of AF. If either of these is wrong you must change them (don't worry, this doesn't modify the data on these partitions). For each that is wrong, type setpid n where n is the number of the partition whose id you are changing. Then, when prompted, type the correct id.
When you are done with fdisk, type write and then exit.
You can quit the Mac OS X Installer now.
As the computer boots, just after you hear the chime, hold down the option key on the keyboard. Windows should now be one of the options in your boot menu, so choose it.
Windows should start and continue with installation.
When Windows restarts, remember that you will have to hold down the option key again and choose Windows.
01 March 2009
Recently I've been using a PC with Windows 7 on it, mainly to try it out. I'm, in general, very happy with the operating system itself but have been having an issue which I only recently identified. Occasionally after the system was booted I would find that the system was reinstalling a whole lot of device drivers.
This caused particular problems with the sound driver as Windows would install the Microsoft driver rather than the Realtek driver, and the Microsoft driver does not provide any output devices. This would mean I would have to reintall the Realtek driver before I was able to use sound again.
I finally noticed under what conditions this occured - after a cold boot. If I powered the machine down fully and then started it up again, the issue was triggered. It's actually quite rare that I do this on any of my computers; normally I would simply send them to sleep.
Some research shows that the issue is a faulty VIA chipset (see this forum thread for details, but basically the chipset appears to randomise device IDs on boot), an issue which motherboard manufacturers can fix through a BIOS update. Almost every manufacturer mentioned in the thread has issued an update with the exception of ASUS. This is annoying because the issue I am having is on an ASUS motherboard.
I've had a number of problems with ASUS in the past. For example, a laptop with a hinge that broke much too quickly and a great deal of difficulty obtaining drivers for their products. Additionally, their drivers and crapware installed on their PCs tend to be, well, crap.
This is the issue that has pushed me over the top. I will never buy another ASUS product.
Interestingly, I had previously had Linux installed on the affected PC and had a similar problem of devices randomly stopping working in similar situations. I had put it down to some eccentricity of the way Linux operates but had been able to fix it using udev (in a nutshell I was able to provide some unique identifiers for my devices and tell it to load certain drivers).
Now I'm going to have to buy a new motherboard I guess...
18 February 2009
If you're seeing this before or on the 23rd of February 2009, you should find that everything has gone black. I'm doing this in support of the Creative Freedom Foundation's Internet Blackout campaign.
The campaign's purpose is to raise awareness about the abomination that is the new Section 92A of New Zealand's Copyright Act. The section requires that ISP's disconnect users who are alleged to have infringed someone else's copyright.
There are a number of large problems with the section:
Fundamentally, the law goes against the freedoms that New Zealanders (and many other world citizens) enjoy; specifically, the right to be innocent until proven guilty. This law does not state that there must be proven copyright infringement on the part of an internet user, rather just an allegation of infringement. Are accused murders handed out their punishment before being found guilty? No! They have the right to a fair trial after which they are found innocent or guilty.
There is no penalty for false accusations. Potentially, a copyright holder (i.e. almost anyone who creates anything) could accuse someone else of copyright infringement with no way to discourage them continuing to make false accusations.
The law itself is very poorly worded without adequate guidance as to when an ISP should disconnect someone, nor what constitutes a "disconnectable" offence. Quoting the act:
What does resonably implement mean? What about appropriate circumstances? Or repeatedly infringes? This is far too general. (Full text here.)
(1) An Internet service provider must adopt and reasonably implement a policy that provides for termination, in appropriate circumstances, of the account with that Internet service provider of a repeat infringer.
(2) In subsection (1), repeat infringer means a person who repeatedly infringes the copyright in a work by using 1 or more of the Internet services of the Internet service provider to do a restricted act without the consent of the copyright owner.
The definition of ISP is very broad and includes almost anyone who provides internet access (such as libraries or universities). Should these institutions really be responsible for policing such usage?
There are plenty of other problems with the law. I would encourage you to visit the Creative Freedom Foundation to learn more. If you are a New Zealander, please sign their petition and learn more about what you can do.
Repeal Section 92A!
17 February 2009
Great! Hopefully this will let them think about compatibility with 64-bit operating systems. There are difficulties around driver signing issues in 64-bit versions, however, so I don't expect anything in the short term. Meanwhile, I don't expect them to be concerned about people using my method of connecting to Hotspot Shield as they still show their advertisements.
19 December 2008
Update 18/03/2009: Sorry everyone, it looks like this is not currently working. The entire Hotspot Shield for iPhone service seems to be down as it's not working on my iPod Touch right now either. Let's hope it's temporary.
Hotspot Shield is software that encrypts your internet traffic between your PC and their servers, purportedly to avoid snooping at open WiFi hotspots (a purpose for which it works great). My main use of it (being outside the US) is to access the multitude of US only sites and services (Hulu, Lala and Pandora to name only a few).
Unfortunately it comes bundled with a TUN/TAP driver that is not 64-bit compatible - it doesn't even fail gracefully during installation, rather you end up with this error:
- Create a new VPN connection (Start > Network > Network and Sharing Center > Set up a connection or network > Connect to a workplace > Use my Internet Connection (VPN)).
- Now visit http://www.hotspotshield.com/clientless/iphone/get_started.php - this is where you will get the required connection information.
- Click the giant Get Account ID button.
- The instructions given are obviously for the iPhone, but there's some important information we need:
Account: abc123 (I'm pretending abc123 is mine - yours will be unique)
Password: abc123 (ditto as above)
- Enter 18.104.22.168 for the Internet Address. For Destination Name, put whatever you want. I put HotspotShield. Be sure that Don't connect now; just set it up so I can connect later is ticked, because we need to change some advanced settings later.
- For username and password, enter what you were given by the Hotspot Shield website. Tick Remember this password. You don't need anything for Domain. Close the window when you finish.
- Now go to Start > Connect To. Right click on the connection you created and choose Properties.
- On the Networking tab, change Type of VPN to L2TP IPsec VPN and then click IPsec Settings.
- Choose the Use preshared key for authentication option and type in password for the Key (this is what the iPhone calls Secret).
That's it! You can now connect to HotSpot Shield through the Connect To option on the Start menu - that's even easier than using the software from my point of view. I guess it would be possible to install a 64-bit TUN/TAP driver but I haven't investigated whether one exists for Vista because this way just seems so clean.
Just remember to disconnect after you're finished!
Some have found their problems resolved by following the instructions carefully or fiddling with their settings.
Thanks also to the anonymous commenter who pointed out that these instructions will help those who run Windows XP 64 bit.
Update 2: Some commenters are worried about a redirect to rss2search.com, some even worried they are infected with malware. First note that there's no way I could infect you with malware - I haven't offered you anything to install and you are only using settings from Hotspot Shied's iPhone page. In case you haven't noticed, Hotspot Shield is funded by advertising and the rss2search.com page is part of this - you would be getting the same thing if you installed the Hotspot Shield software itself on a supported operating system.
P.S. Hi AnchorFree!
24 November 2008
or Why having human readable file formats is a Good Thing.
Recently I was creating a PowerPoint presentation to demonstrate a web site I had been developing. As I've discovered over the years, it's a wise thing to use PowerPoint, or rather screenshots of some sort, because it minimises the chance of something crashing or doing something equally as nasty.
What I wanted PowerPoint to do was to scroll everything up, like scrolling a page on a website. So I selected everything and then added a motion path. What I ended up with is something like this:
This was present a number of times, and seems to be relatively self explanotory. It would make sense that -0.33333 would indicate the path was to go up (negative) by 0.33333 (whatever that represents). So I did a find replace for the path, replacing -0.33333 with -0.5 and re-zipped up the pptx contents. Sure enough, I find that all of my motion paths have grown in length and for me, -0.5 happened to be just right:
path="M 0 0 L 0 -0.33333 E"
Just goes to show, human readable file formats can work wonders. Maybe there was a better way to do it within the UI, I don't know. But really, XML is Fun.