2007-03-30

Yay! MacOS in 1680x1050 at last!

As I mentioned earlier, I am using an MSI 7950 GT with 512 MB on my new rig, and 512 MB have been well known to be incompatible with Titan/Natit and others.
That is, until gotoh figured out that the issue was in the nVidia BIOS itself.
A simple mod/reflash is all that's needed now to get a 512 MB GeForce card to be detected successfully in JasOS. Well, actually, that's was the easy part. The rest, if you're not that familiar with OS-X might be a bit confusing (and threads of more than 25 pages sure do not help!).
Here's how I did proceed to get Natit installed and my card recognised (on an existing installation of Jas OS 10.4.8):
  1. Flashed my Graphics Card following these steps
  2. Downloaded the Natit_Dual_v0.2 package from this page (which got automatically extracted by Stuffit on the Desktop)
  3. Copied over the content to /System/Library/Extensions with the command:
    sudo cp -R Desktop/Natit.kext /System/Library/Extensions
  4. Fired up "System Profiler" in "Utilities" (which you can access with Finder) and found that the Device ID for my Graphics Card was 0x0295
  5. Edited Natit.kext/Contents/Info.plist and change the IOPCIMatch section string to 0x029510de...
  6. in /System/Library/Extensions:
    sudo chown -R root:wheel Natit*
  7. in /System/Library
    sudo rm -rf Extensions.mkext Extensions.kextcache
  8. Rebooted and that was it!

2007-03-28

UltraEdit 32 Explorer Integration in Vista

Looks like Vista broke the integration of UltraEdit in the shell (even with latest version 13.00), without whom life is not worth living. Seriously, not being able to Edit/HexEdit ANY file with a right click really makes life unbearable.

Thankfully, other people have figured out how to do it, and it's really simple:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\UltraEdit 32]
@="UltraEdit"

[HKEY_CLASSES_ROOT\*\shell\UltraEdit 32\command
@="\"C:\\Program Files\\IDM Computer Solutions\\UltraEdit-32\\uedit32.exe\" \"%1\""


(NB:If you create these keys manually, @ is the "(Default)" key in Regedit, and both keys are String values. Of course, quotes don't need to be escaped then)

2007-03-22

The horror! The horror! (Hiding Vista partitions from one another)

I'll cut to the chase. As you know, Vista's new bootloader is complate PITA, because it aims at taking control of all bootloading activities without asking (how rude!), and in typical Microsoft arrogance style, it thinks it can do a better job than you (how inconsiderate!).

Therefore, if you have any combination of XP, Vista, etc... that can be detected, you're pretty much screwed because Vista will insist on unifying the booting of all Windowses for you, which you might think is nice... until the day you remove the OS on which the bootloader is installed, and you realize that you can NO LONGER BOOT THE OTHERS. Don't believe me? Try that little experiment:
Install Vista. Then install another Vista on a different partition. The boot block for the second Vista will be written on the first partition. Now format the first Vista and do your darnedest to boot the second Vista. No way Jose: There's no boot block on that second partition and it will never boot. Well, if you don't mind me saying, that's a really gay way of operating a system.

So there's no way I'm gonna let that happen when I want to have a SINGLE bootloader under my COMPLETE CONTROL!

And it is a little know secret that, despite insisting on being ZE bootloader, Vista will happily receive the boot from another botoloader, as long as it has been installed on a machine where it thinks it is the only Windows OS, which is why it's a good advice to install Vista first, or unplug disks where you might have other Windowses installed. Unfortunately, that method of hiding Vista from Vista (I deem it likely that Vista is horrified from looking at itself in the mirror, hence the title) will not work in our case, where we want to have both Vista32 and Vista64 installed on the same disk. Oh, and you can try to change the partition type of the first Vista you installed, that won't work either. Windows is apparently able to detect itself regardless of the partition type We'll need much more powerful Ma├čnahmen gegen die Gewalt this time round.

Our solution then: Change the partition type AND fill the Windows partition bootblock with zeros. This is where we open our Swiss Army Knife of anything advanced: Linux.
Whatever you do, you should always install Linux before doing anything else (and be able to boot into it from a CD, floppy, whatever, even if the MBR is erased). Please chant with me now my brothers and sisters: "There is no salvation in the computing world but in Linux".

In my case, Linux is installed on HDD1 and the Vistas go to partition 1 & 2 of the RAID0 ICH8R array (HDD 2&3). You will need to have dmraid setup in Linux to access the ICH8R RAID partitions, but I'll post on that later. So the course of operations is:
  1. Unplug HDD1 and install Vista32 on the first partition of the RAID0 unit. I even let Vista do my partitioning on this drive. Probably not the best idea (cfdisk seems to have problems with how Vista partitioned the drive, but fdisk is fine and see nice primary partitions there). I tend to use the Vista partitioner when I don't really care because in Vista, Megabytes are Megabytes, and not these lousy 1000^2 Megabites cfdisk and others insist on using. Thus, when I enter 45056 MB for the size, I do get a 44 GB partition exactly
    While I'm at it, one piece of free advice. Don't reset your machine on Vista's first boot because you want to reinstall your bootloader or something. If Vista's first boot is interrupted, it will not be able to resume, so make sure that you can actually logon to Vista before you switch to doing something else.
  2. Re-plug HDD1 and boot Linux. Fire up dmraid (dmraid -ay) to gain access to your RAID partitions.
  3. Create a BACKUP of the Vista bootblock on RAID partition 1:
    dd if=/dev/mapper/isw_fhbagdjeh_Twix1 of=/backup/vista32 count=16
    Note 1: The reason I use 16 blocks (16 x 512 bytes) is because the BOOTSECT.BAK backup copy of the original drive bootblock done by Vista on installation is 8 KB big. If it's good enough for Vista, it's good enough for me
    Note 2: The reason my RAID0 array is called Twix has everything to do with the French rebranding of the famous caramel bar from "Raider" to "Twix" a few years ago
    Needless to say, if you ever lose that backup copy of your bootblock, you're screwed
  4. Now we'll ERASE the backed up bootblock with:
    dd if=/dev/zero of=/dev/mapper/isw_fhbagdjeh_Twix1 count=16
    This makes sure that sneaky Windows will not be able to recognize this partition as one of its siblings
  5. fire up fdisk (fdisk /dev/mapper/isw_fhbagdjeh_Twix) and unactivate the first partition, change its type to 'af' (how ironic, this is a MacOS partition type!) and activate the second partition (if the partition on which you plan to install Vista is not set as active/bootable, Vista will refuse to install!)
  6. Unplug HDD1 and install Vista64. Vista will see the first partition alright, but not recognize it, so it will install a second bootloader on the second partition, which is what you want
  7. Re-plug HDD1, boot Linux, issue the dmraid command, and restore the Vista32 boot record:
    dd if=/backup/vista32 of=/dev/mapper/isw_fhbagdjeh_Twix1 count=16
    Fire up fdisk again, and restore the first partition type to '7' (NTFS) and activate it (so that the 2 first partitions are marqued as bootable/active
  8. Use the bootloader of your choice to boot these 2 Vistas independently from one another and be freed from Microsoft's Vista bootloader tie in. One more step into our "One bootloader to rule them all" brainwa^H^H^H^H^H^H^H program...

2007-03-21

One bootloader to rule them all, part 1

So, I bought myself an ASUS P5B Deluxe the other day, with all the good stuff that goes with it (Core 2 Duo E6400, 2 GB CAS 4 RAM, MSI GeForce 7950GX2 512 MB with passive cooling, etc.) and I also added 2 more of these relatively cheap Seagate 7200.10 ST3320620AS SATA II 298.1 GB drives (Hell will freeze over before I recognize that 1 GB is anything else but 1024^3 bytes!) to my existing one which brought my total to 3 of these units.

By the way, my tip to all Seagate 7200.10 drives owners: REMOVE THE HDD JUMPER IF YOU HAVE A SATA II MOTHERBOARD! With the jumper on, transfers are limited to SATA 1 speeds, which will effectively max the drive out to 1.5 Gbps. Without the jumper, you can reach the theoretical SATA II speed of 3.0 Gbps, so that's probably a wise thing to do... even if I doubt any hardware out there, and especially these disks, are able to max out SATA 1 speeds.


The Goal

Have OS-X (Jas OS 10.4.8 or later) plus Windows XP SP2 plus Vista 32 bit plus Vista 64 bit plus Linux (Slackware 11.0) as well as a hefty faaaaast partition installed in a mixed RAID (ICH8R Software RAID) configuration.

A lot of people will tell you that using the RAID0 ICHXR solution is stupid, that you will gain almost no performance, that it's too risky, and so on and so forth. Don't believe a word of it. I've been running a RAID0 array for my main OS and hefty 400 GB partition for the last 2 years, and I have been satisfied enough by this experience that I want to carry it over on my new machine. Preliminary tests show that I can effectively do a non RAID to RAID0 disk to disk copy at close to 70 MB/s (effective mean speed) on my new machine, while the earlier tests I remember with a non RAID0 destination were closer to 35 MB/s, so anybody who tells you that RAID0 doesn't bring anything is a fool.

How is this going to work in practice? Well, first of all, OSX will probably not be too happy on a RAID drive (won't know how to boot) and Linux is not that happy either. Sure, you can make it boot with dmraid and all, but as soon as your MBR is erased (and it WILL be erased), you won't have dmraid support on your boot CD so it's going to be a pain to reinstall. Yeah, I know you can use a bootdisk, and I even created my own custom Slackware boot/install CDs with custom kernel (that's how bender.rpc1.org was installed by the way), but I have become much lazier over the years, and I want to use the default Slackware boot CDs because it's convenient.

Therefeore, we're gonna keep on disk in AHCI (or so was the plan) to have OS-X, Linux, XP and other stuff for which we dont' care too much about perf, while we install the Vista's on the 2 other disks in RAID0 array.


"Good news, everyone!"

Now, here comes the pleasant surprise: Contrary to what was the case in the past, and which was one of the major reasons of my being pissed at these lousy software RAID implementations that could come close to Linux's md, it is NOW possible (at least with ICH8R on an ASUS P5B Deluxe) to create a mixed RAID configurations on the same disk array.
For instance, you can create BOTH a RAID0 unit for speed as well as a RAID1 unit for security with only 2 Disks. This really solves one of the major gripes I had with ICHR, because I want speed for most of my data (which is expandable), but I also want security for the limited set of my data which is not. In the past ICHR iterations, apart from buying 4 disks, you really didn't have a choice. With the latest one, you can have the cake and eat it too.

Now there is a limit to all good things (expect on Linux), and you can only create two raid units on the same array. But as long as I can have a big RAID0 drive and a small RAID1 drive on the same disks, I'm fine with that, so not a problem.

Here's how my current partitioning is done then:
o Disk 0 (non RAID, P5B SATA controller 0): 4 primaries, with OS-X as part 1 (40 GB), WinXP as part 2 (40 GB) and Linux as the last partition (~8 GB). The 3rd partition is used for data
o Disk 1 & 2 (on P5B SATA controllers 1 & 4): One 588 GB RAID0 unit/disk and one 4.1 GB RAID1 unit/disk. The RAID0 unit is partitioned as follows: 44 GB primary for Vista 32, 44 GB primary for Vista 64 and 500 GB for "Strider", my hefty faaaaast data drive (I would of course have preferred 512 GB for the latter, for binary beauty, but I don't think I want to go under 40 GB for a Vista installation.)

Booting all of these OSes will be the tricky part though, which I will detail in the upcoming "Farewell to LILO" post as well as probably part 2 of this post.


"Bad news, nobody..."

And now for the unpleasant surprise (can't have it all). I already had Linux, OS-X and XP installed on the first non RAID HDD (in AHCI mode), and even though I am now in RAID mode instead of AHCI in the P5B Deluxe BIOS, the HDD is in non RAID mode and should still be seen as AHCI (there are 3 modes on the P5B: IDE, RAID or AHCI). Except that intel, in their great wisdom, seem to have decided that, when in RAID mode, non RAID disks should be set as IDE or something, instead of AHCI, which means that WinXP won't boot (nothing that a good driver/reinstall won't fix) but more worrying, that OS-X is now unable to see its own drive as well...

Well, this is bad news because there is no patch for JaS OS 10.4.8 to be compatible with whatever mode ICH8R defines the drives as (and using JMicron as primary SATA controller is not really an option, regardless of whether it is compatible with JaS or not).

So I currently have to switch back from RAID to AHCI in the BIOS to be able to boot OS-X. Darn! The goal is to have "one bootloader to rule them all", not "one bootloader plus manual BIOS conf to rule them all"...


Sidenote

For those who might wonder why I didn't go for what would be considered as the more "sensible" approach of installing Vista(s) on a RAID1 partition, the answer, apart from the obvious hit in performance, is very simple: I tried just that, and then, after installing some updates, Windows refused to shut down for some reason, so I had to it reset. Once I rebooted, the RAID bios detected that my RAID1 array was out of sync and that it needed to be rebuilt. But when I did that in Windows, using the Intel Matrix Storage tools, I realized that this would take forever (about 1% per 30 secs or so on a 44 GB drive). Considering how stable Vista is on shutdown/reboot operations (I'm not even talking of sleep, which, as everybody knows, is simply dreadful and does not work), and how often I am likely to hit the reset button to show that OS who is the master, I'm not going to waste my life in degraded performance mode, having to wait for my array to be rebuilt. This is only the reason why I went for a small RAID1 partition by all standards. I can afford a couple minutes to rebuild a 4 GB drive, but 1 hour for a 40+ one, no way!

2007-03-03

You might remember me...

Hi, I'm hacker >NIL: ("redirect 'slash' nil").

You might remember me for such hacks as "Pioneer DVR-108 v1.18 RPC-1 + 12xRip + nx4all" or "The Matshita UJDA autopatcher", and events such as "Why the hell is rpc1.org down again?!?"...

On this not-so-regularly updated blog, I purport to present you with the unglamorous vicissitudes of managing to make computers, and all things computer related, achieve what you want.

And so, without further ado ...