[Optimus V Android Development] bigsupersquid:
I've tested this and it works. I only have a class 2 SDcard, so my testing shows it's really slow, a faster card would probably help.

With just this class 2 SD card, the boot-from-sd process is really only useful to see if the ROM being tested will straight-up brick your device or not.

Edit!

A class 6 card works fabulous! I'm posting from a tweaked version of mmarz's port of ath3nos' port of cm7 running from my brand-new class 6 card right now.

This process is hacked together from multiple other devices' howtos here on xda, sorry I don't know who to credit for the bits and parts. All of it is pretty generic, actually, and might well be applicable to other devices when tried as a whole.

For the moment, I'm only posting a brief skeleton how-to without specific walkthroughs for the steps, and I don't really want to upload many files until more of the bugs are swatted.

The following info should be enough for you, the savvy dev, to put the ROM of your choice on your SD card and boot it (or watch it fail to boot) without risk of bricking your device!

noobs, don't you dare, bricking is always a risk if you don't know your way around fastboot and adb!

Of course, savvy dev or not, a fresh nandroid backup is MANDATORY before hacking at your phone like this.

Standard disclaimer:

There is always a possibility of bricking your phone when messing with adb and fastboot.

If you're not willing to take that risk, don't try this at home (or at work, or school....)

Here goes:

The basic plan I followed was:

1) make and format 3 extra ext2 partitions after the default fat32 on the SD card, in this order: data (at least 180Mb) , system (170Mb to match stock), and cache (102Mb stock).

2) split up the boot.img from your chosen ROM so you can mod the ramdisk.

edit: turns out this next step in the quote is not required, there is an easier way.

A nifty command called devwait for init.rc

3) change your init.rc from the ramdisk as follows:

replace the "mount yaffs2 mtd@system /system" , cache, and data lines with

devwait /dev/block/mmcblk0p3
mount ext2 /dev/block/mmcblk0p3 /system nodev noatime nodiratime
mount ext2 /dev/block/mmcblk0p3 /system nodev noatime nodiratime ro
devwait /dev/block/mmcblk0p2
mount ext2 /dev/block/mmcblk0p2 /data nodev nosuid noatime nodiratime
devwait /dev/block/mmcblk0p4
mount ext2 /dev/block/mmcblk0p4 /cache nodev nosuid noatime nodiratime

be sure to comment out any other mounts which go to /system anywhere, like the "mount squashfs loop@/system/blahblah/blah.sqf /blah/blah" lines in the aospCmod init.rc

4) repack your boot.img, with the correct cmdline ("mem=477M console=ttyMSM2,115200n8 androidboot.hardware=thunderc" works,) etc.

5) prepare the ext2 /system partition with your target ROM /system files.

How to load the ROM:

6) back on your PC, still connected to phone with cable in recovery;

adb reboot bootloader
fastboot boot /path/to/boot.img

Step 6 is important!

this will boot from your modified boot.img without actually flashing it into the phone's NAND, so a reboot (or restart after battery pull in case of issues) just goes to your regular installed ROM in the phone.

That's about it for now. It's pretty much a hack as yet, but it's cool in a geeky way to be able to do this.