Monday, November 21, 2011

5.0 amd64 K43U: Dual booting OpenBSD 5.0 AMD64 with Windows 7 x64.

Hi,

Ok. Now's the time some of us has been waiting for. I'll write up the experiences in configuring dual-boot environment of OpenBSD 5.0 AMD64 and Windows 7 x64 on my Asus K43U AMD Vision's laptop. I might write this in parts, or even put it all in this 1 posting.

Previously I wrote a bit about my K43U laptop and a bit about the specification. I have a large hard disk, 500Gb so I made my mind to dual boot this laptop with OpenBSD 5.0 AMD64 and Windows 7 x64. OpenBSD will be my work environment, and Windows 7 will be for gaming stuff. Now on to the experience.

1) Preparations
Ok first of all, install Windows first. On my K34U, I have 3 partition on my 500Gb drive. The first partition is Windows's reserved for something that I don't know of, whatever to make the OS happy. Then the 2nd partition is for Windows 7. The 3rd partition is for OpenBSD 5.0 AMD64. Make sure the important files in Windows 7 is properly backed up, as I've learned on the hardest way possible. More on this in a moment. Here's how I divide the hard disk.

None = System Reserved = 100Mb
C: = Windows 7 = 270Gb
None = OpenBSD 5.0 AMD64 = 195Gb

After hours of installation and updating Windows 7's driver to make it workable, my Windows 7 environment is installed. I used MS's Computer Management > Disk Management to create the free space for the would be OpenBSD into a raw partition without any filesystem format inside.

With the OpenBSD's CD inside, I rebooted the machine and for K43U, I need to press [ESC] key during the ASUS logo to choose the boot device. Then I choose my DVD drive to boot the OpenBSD CD. Then the lovely OpenBSD boot screen appears.

OpenBSD then asked me to choose either to (R)epair, (I)nstall or (U)pgrade, I choose [I] for installation.

After that the setups for root user/pass, configuring re0 for network and adding another user for the system. It's all the easy parts.

Then OpenBSD asked me to either "use the (W)hole disk or (E)dit the partition". It's the fdisk *gasp*. I just remembered and my last dual-boot exercise is on FreeBSD which is a long time ago! Ah. People says that curiosity kills the cat and mine killed my Windows 7 partition as I thought pressing [W] will give me a preview and there will be a confirmation afterwards asking me to confirm to use the whole hard disk. Well remember this well people. IT DOES NOT!. Once you hit the [W] key, OpenBSD will proceed with rewriting the MBR and it will be nearly impossible to recover your Windows installation. Well some said it's nearly impossible, but me, I never managed to get it back! I had to reinstall Windows 7 and start again. So do keep this in mind.

So I carefully hit the [E] key (remember next to the [E] key is... the [W]!!) so I can edit the partition manually. Here's a bit of it. Bold text is my input:

fdisk:1> e 2
fdisk:1> A6
fdisk:*1> q

So basically I told fdisk to use the 3rd slice (partition) of the hard disk (remember in *nix numbers starts with 0, not 1) and it's labeled as 2. OpenBSD needs A6 as the filesystem type so I set it. Then I just press [Q] to save changes and exit fdisk. Some pointer on the net stating that pressing [W] to write the changes in MBR is needed but I didn't do that. I might make you happier but currently this minimum steps are working fine for me.

After that, my partitions look like this:



Take note that the "*" sign on partition 0 means that I didn't make the new OpenBSD partition as active partition and retain Windows 7 partition as bootable. Well, this is because I'll be using Windows 7's own boot manager for dual booting. No need to install other boot manager software.

Now to partition the OpenBSD slice (Partition? Slices?). As usual, I starts with auto to see roughly how OpenBSD will partition my OpenBSD. And then I revert back to zero and do it manually. So I come up with this:

/ = 1Gb
swap = 2Gb
/var = 7Gb
/tmp = 4Gb
/usr = 18Gb
/home = the rest


Yours might be different so adjust it accordingly. I still think my swap is too big but as I have a bigger hard disk now, it doesn't matter much. Then proceed with OpenBSD installation. It took a while but no problem on the installation. Great.


2) Dual-boot preparation.

So the OpenBSD 5.0 amd64 has been installed. Before I reboot the machine, it's best to refer to http://www.openbsd.org/faq/faq4.html#Multibooting.

I proceed with creating the OpenBSD Partition Boot Record using the OpenBSD page for reference.

# dd if=/dev/rsd0a of=openbsd.pbr bs=512 count=1

After that I put my fat32 usb thumbdrive and copy the file "openbsd.pbr" into it.

Before rebooting, I changed the timezone so that the time in OpenBSD don't go off by 8 hours (Malaysian time). Text in bold is mine.

$ sudo config -ef /bsd
OpenBSD 5.0 (GENERIC.MP) #63: Wed Aug 17 10:14:30 MDT 2011
$nbsp;$nbsp;$nbsp;$nbsp;deraadt@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
Enter 'help' for information
ukc> timezone -480
timezone = -480, dst = 0
ukc> quit
Saving modified kernel.


How did I get the "-480"? Because Malaysian time is +8 to UTC. So why was it -480? 8 x 60 mins = 480 mins. Because we're 8 hours in advance from UTC, we need to deduct the timezone about 480 minutes. Yours might be different so do make sure of it. dst is Daylight Saving Time which we don't use so it's 0. Oh yeah, make sure visudo is done appropriately so that we can sudo.


3) Configuring Windows 7 x64 to dual-boot.

Ok remember when I didn't change the active partition on fdisk back then? It's because we're going to reboot and let Windows 7 as the default boot (not for long though). I'll be using W7's own boot manager to dual boot OpenBSD amd64 and Windows 7 x64. As before, it's best to refer to OpenBSD's page on multibooting because I do.

Inside Windows 7, I moved the openbsd.pbr from my thumbdrive to C:\. Then I opened cmd (MS command prompt) as Administrator. Inside it, I typed the following. Bold text is mine and TAKE NOTE! I copied this from OpenBSD's page because there are details I didn't save.

C:\Windows\system32> bcdedit /create /d "OpenBSD/i386" /application bootsector
The entry {0154a872-3d41-11de-bd67-a7060316bbb1} was successfully created.

C:\Windows\system32> bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} device boot
The operation completed successfully.

C:\Windows\system32> bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} path \openbsd.pbr
The operation completed successfully.

C:\Windows\system32> bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} device partition=c:
The operation completed successfully.

C:\Windows\system32> bcdedit /displayorder {0154a872-3d41-11de-bd67-7060316bbb1} /addlast
The operation completed successfully.

C:\Windows\system32>



See the text in underline? That thing depends on your system. I didn't save what's mine so I copied from OpenBSD's page. Yours will be different so do take note of that. Now the machine has been configured to dual-boot between OpenBSD 5.0 amd64 and Windows 7 x64. The Windows 7 boot manager can be tweak.

That's all. I might be updating this post to reflect any other things I forgot to mention etc. Enjoy and later!

No comments: