Skip to main content

Triple boot Linux, Windows 7 and Windows 8 RTM

I wanted to have a triple boot computer - why? don't ask me why! Oh, ok, I'll tell you - I needed Windows 7 for some current work and didn't want to mess up the install. I wanted to install Windows 8 so I could play with the metro style app development that I've seen floating around and of course, I like my Linux system for my ruby web development.

So - here's the rough steps without a specific walk through of each one, except for reinstalling grub, which is really the crucial step to getting everything to hum and purr along nicely. The caveat is that this worked for me, on my system, it might not work on yours - so take precautions, backup, verify backup, store a backup off-site - you know the drill, I shouldn't need to tell you.:

1) Install Windows 7 Easy enough, follow the prompts and pop Windows 7 on your machine.

2) Install Linux Choose your flavour - I've got Mint up and running, but go for Ubuntu if you prefer. Actually, go for pretty much whatever you want. Ubuntu and Mint will give you a nice trouble-free install of Grub to dual boot your system. It should work out of the box.

3) Create a VHD in Windows 7 and use that space to install Windows 8. Check out Scott Hanselman's great blog posts on this because it takes you through in detail what you need to do. Pay attention, because it's subtle (How to guide to installing and booting windows 8 consumer preview off a VHD and Guide to booting windows 8 developer preview of a VHD)

4) Boot up into Windows 8. Crap your pants a little as you notice the Windows 8 boot loader has made your Linux install disappear.

5) Boot to Linux with a live CD and re-install Grub manually. This is fairly simple - once booted, bring up a terminal and do the following (obviously, you need to know your partition number that you've got your linux install on - mine's sda6 - I have sda1 and sda2 as system recovery and windows recovery, sda3 as my Windows install, sda4 is a logical partition, sda5 is swap, sda6 is my actual Linux mint):
sudo mount /dev/sda6 /mnt
sudo grub-install -root-directory=/mnt/ /dev/sda
Note that the second line has the number left off the "sda" on purpose. PAY ATTENTION!

6) Re-boot - you should have options for Linux and Windows 7 again. On my system, selecting Windows 7 takes me to the Windows 8 bootloader from whence I can choose either Windows 7 or Windows 8 for boot.

Now this isn't perfect, because I have 2 boot menus, but you know what? It will do for now.

Comments

Popular posts from this blog

Getting started with Ruby on Rails 3.2 and MiniTest - a Tutorial

For fun, I thought I would start a new Ruby on Rails project and use MiniTest instead of Test::Unit. Why? Well MiniTest is Ruby 1.9s testing framework dejour, and I suspect we will see more and more new projects adopt it. It has a built in mocking framework and RSpec like contextual syntax. You can probably get away with fewer gems in your Gemfile because of that.Getting started is always the hardest part - let's jump in with a new rails project rails new tddforme --skip-test-unit Standard stuff. MiniTest sits nicely next to Test::Unit, so you can leave it in if you prefer. I've left it out just to keep things neat and tidy for now. Now we update the old Gemfile: group :development, :test do gem "minitest" end and of course, bundle it all up.....from the command line: $ bundle Note that if you start experiencing strange errors when we get in to the generators later on, make sure you read about rails not finding a JavaScript runtime. Fire up your rails server…

Add css class to your label form helpers

Say, for example, you are using Twitter Bootstrap to style up a quick rails app and you want to throw in a label tag with the class set to "control-label" just like the bootstrap guys do.....how do you do it? And more importantly, since you don't want to specify the text of the label, how do you accomplish that? Fear not intrepid young but soon to be rails guru, behold the truth:

Overriding equality and Test Driven Development

Ruby has, at its root, an Object. Methods available in Object are available to every class because every class in Ruby inherits from Object somewhere in its own class hierarchy. Of course, you can override methods in subclasses, changing the functionality of a root method.You might stumble on to this idea if you work through Test Driven Development By Example by Kent Beck, translating the Java code into Ruby as you go. At some point pretty early on, he overrides the equality method on the Currency class to better test if two instances are equal. I'm going to do the same here, working with Instruments instead of Currency.EqualityEquality in Ruby can be expressed using any of the following three methods object == other equal?(other) eql?(other) These methods are defined on the base Object. The default implementation of equality will only return true if both objects are exactly the same. The interesting thing is that although these three methods start out functioning the same, the do…