[Nook Color General] leapinlar:
Several users have complained that they get blank screens and cannot flash new roms to their Nook Color. And sometimes they end up in a recovery bootloop where it will do nothing but boot to recovery no matter what they choose in the boot menu. Sometimes this is due to corrupted partitions on internal memory.

DizzyDen has prepared some .img files that can be burned to emmc to repair some of these issues, and they work well. But some of the files are very large and it takes a little knowledge of adb commands on the part of the users. And some users cannot get adb working on their machines. So I started investigating other solutions, and I have made some tools that work that I hope are user friendly.

Dean Gibson has a thread that describes how to repartition emmc to set the partition sizes for data and media to the user's preference. He repartitions partitions p6 (data), p7 (cache) and p8 (media). In studying his zip, I figured out how to make his tool repair partitions p4 (extended), p5 (system), p6 (data), p7 (cache), and p8 (media). And I was able to add additional commands to also repair partition p1 (boot). I asked Dean's permission to post his tools as modified by me and he agreed. Thanks Dean!

So that takes care of partitions 1, 4, 5, 6, 7, and 8.

Partitions 2 and 3 are very special and one must be very careful with them. Partition 2 is 'rom', which holds information that is specific to the user's device (serial number, etc.), and it is used by the system to set flags for deciding whether to boot to recovery or not and set the boot count that is used to decide whether to do a reset to factory conditions (8 failed boots). Partition 3 is 'factory' and holds the factory.zip file used by the 8 failed boot reset (if you want to learn more about the 8 failed boot reset, go to my tips thread linked in my signature). It also holds a backup of the device information in partition 2. So it is possible to repair partition 2 if partition 3 is still intact.

A few users have somehow managed to flash Nook Tablet ROMs to their Nook Colors and really messed up partition 4. (Edit: and now I know how it happened, some idiot recommended that they remove the first line of the updater script. NEVER do that! That line is a safety check to make sure you are flashing to the right device. You can also defeat the safety check by using an old CWM that has the toggle, 'disable asserts'. Never do that either.) And since partition 4 is the extended partition that holds partitions 5, 6, 7, and 8, they get messed up too. To repair those partitions along with partition 1, use CWM recovery to flash the two zips attached below. Be warned that everything in emmc media (p8) will be wiped out, so you may want to back that up first if you still can. The first zip to flash is 'NookColor-emmc-repair-partitions-1-4-5-6-7-8.zip'. It will recreate those partitions on emmc. As soon as you have sucessfully flashed that zip, you must reboot the Nook Color back to CWM so that the updated partition table is read by CWM. Then you need to flash 'NookColor-emmc-format-partitions-5-6-7-8.zip' (partitions 1 and 4 do not need formatting). It will format the newly created partitions to the correct structure. Now you can use CWM to restore an earlier nandroid backup or flash your favorite ROM (including stock, get version 1.4.3 that I have modified to be flashable with CWM here, or DizzyDen has posted some excellent 1.4.1 stock ROMs here). If you are going to flash a stock ROM, you must be sure to use the format zip or the stock ROM will not boot properly.

If you are in a recovery bootloop, the first thing I recommend trying is to use my CWM version 5.5.0.4 bootable SD that is discussed in my tips thread linked in my signature and has been modified to help get out of some kinds of recovery flag bootloops. If you are in a recovery bootloop that just hangs, it may get you out of it after exiting my CWM with the 'reboot' command in the menu. But if you are still in the loop after doing that, it may be because your device info is missing or corrupted in partition 2. It will not boot to a ROM without this info. (Specifically, it needs a file in /rom/devconf named DeviceID. It is a text file with your 16 digit serial number in it followed by a line feed, 17 bytes.) Try flashing with CWM my 'NookColor-emmc-repair-partition-2.zip' attached to this post to recreate that info. But I recommend this as a last resort, since messing with that partition is risky. That zip will recreate the partition, reset the flags and copy your device specific information from partition 3. But your partition 3 must be intact for this to work. If it is not, the zip will abort and do nothing.

Additionally, for those that do not want to use CWM, I have made a bootable SD that has an older version of TWRP here. Newer versions of TWRP will return an error message when trying to flash these zips. It also has been modified to get you out of some kinds of bootloops.

Two points of information. First, I have included a temporary copy of CWM 5.5.0.4 on the boot partition of my repair so that if tries to reboot to emmc before you put a ROM on it, it goes to CWM. It will be removed as soon as you restore a backup or flash a ROM. Second, the new partition scheme created with my zip is for the original Nook Color's 1GB data and 5GB media. If you want one of the other schemes (5GB data/1GB media or 2GB data/4GB media) go to Dean Gibson's thread and flash his zips after you have repaired your system with mine. See his thread here.

I'm adding a little extra information about emmc partition structure for those interested. With any MBR disk there can be a maximum of four primary partitions. So to have more than four partitions the last primary partition is created as an extended partition so multiple logical partitions can be made inside it. The emmc structure is: p1 (boot, fat, primary), p2 (rom, fat, primary), p3 (factory, ext3, primary), p4 (extended, going from end of p3 to end of the disk), p5 (system, ext2, logical, inside the extended), p6 (data, ext3, logical, inside the extended), p7 (cache, ext3, logical, inside the extended) and p8 (media, fat, logical, inside the extended).