I had to go look up a lot of old logs and find some old files to remember what all I had done for all this, as it's been a while
When I was running on x86 laptops, I used Grub (Grub4Dos?) as the boot loader, and had the following in its conf to load truecrypt and other linux ISOs from the usb key:
timeout 10
title Load Truecrypt - HD Mode RAW
map --memdisk-raw=1
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
map --mem (hd1,0)/boot/Truecrypt.iso (0xFF)
map --hook
chainloader (0xFF)
boot
title Load Truecrypt - HD Mode
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
map --mem (hd1,0)/boot/Truecrypt.iso (0xFF)
map --a20-keep-on=1
map --hook
chainloader (0xFF)
boot
title Ultimate Boot CD v4.11
find --set-root /boot/ubcd411.iso
map /boot/ubcd411.iso (0xff) || map --mem /boot/ubcd411.iso (0xff)
map --hook
chainloader (0xff)
title Ubuntu 9.10
find --set-root /boot/ubuntu-9.10-desktop-i386.iso
map /boot/ubuntu-9.10-desktop-i386.iso (0xff)
map --hook
root (0xff)
kernel /casper/vmlinuz boot=casper iso-scan/filename=/boot/ubuntu-9.10-desktop-i386.iso quiet splash locale=am.UTF-8 --
initrd /casper/initrd.lz
boot
title CentOS 5.5 Install
find --set-root /CentOSInstall.iso
map /CentOSInstall.iso (0xff)
map --hook
root (0xff)
kernel /isolinux/vmlinuz
initrd /isolinux/initrd.img
boot
Grub is really useful in that it can allow you to choose from multiple ISOs on your usb drive to boot your computer from.
The problem with booting windows+truecrypt from a usb is that windows always expects itself to be booted from drive #0. So part of this grub boot loading process is to swap the usb drive (currently drive #0) and your windows drive (currently drive #1) in the bios before loading truecrypt.Unfortunately, I believe Grub2 might have broken a lot of the key words, or they have changed, so this won't work out-of-box without some modification.
Another problem is computers with EFI (instead of BIOS). Most new computers nowadays (especially x64), I believe, come with UEFI, which Grub is not compatible with by default, kind of. On my macbook I had a lot of compatibility trouble with grub on my usb key, so I ended up using
Universal USB Installer to install a copy of ubuntu on the cd to get grub on it. From there, I deleted all the folders but:
- /.disk
- /boot/grub
- /EFI/BOOT
And then modified /boot/grub/grub.cfg as follows to load some different ISOs
if loadfont /boot/grub/font.pf2 ; then
set gfxmode=auto
insmod efi_gop
insmod efi_uga
insmod gfxterm
terminal_output gfxterm
fi
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
menuentry "Ubuntu 12.10 x64" {
set gfxpayload=keep
set isofile="/ISOs/ubuntu-12.10-desktop-amd64.iso"
loopback loop (hd1,msdos1)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd.lz
}
menuentry "Ubuntu 12.10 x86" {
set gfxpayload=keep
set isofile="/ISOs/ubuntu-12.10-desktop-i386.iso"
loopback loop (hd1,msdos1)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd.lz
}
So with the right options you should be able to load truecrypt through this grub setup. If you get it working, I'd love for you to post them here, as I have not spent the time to do it on my Macbook.
Also note that on x64 machines you shouldn't be able to load x86 ISOs, and vice versa.