I'm dual booting Windows 7 and Ubuntu on my laptop. The laptop's CPU does not support hardware virtualization. I'm using VMWare Player to allow use of my Linux partition (the same one that also runs on bare metal) from within Windows. Without hardware virtualization support, this only works with 32-bit guests, so I have 32-bit Ubuntu installed.
Occasionally, I need to run a 64-bit process under Linux and am willing to reboot to do so. I'd like to avoid having to maintain 3 separate partitions (64-bit Linux for bare metal, 32-bit Linux for virtualization, Windows 7). However, most of the time 32-bit Linux is fine for me.
Is there any reasonably simple way to install both a 64-bit and 32-bit kernel for the same Linux installation, have both kernels appear in Grub, keep most of the userland 32-bit (except for libraries and development tools, in which case I'd keep both versions installed) and allow 64-bit processes to run if I boot the 64-bit kernel on the bare metal? Ideally, I'd like to keep the default package repositories and any other relevant default settings 32-bit even when running the 64-bit kernel.
If this is not feasible, is there any other solution that wouldn't require me to either maintain two Linux partitions or upgrade my hardware?
Edit: I tried installing a 64-bit kernel on top of 32-bit Ubuntu and that works surprisingly well. However, I'd like some sane/simple way of installing 64-bit development tools and dynamic libraries, given that Apt still seems to be in 32-bit mode.