I originally used NOOBS to create this card and it had Wheezie + Arch Linux. I had some issues with the wheezie installation so I:
-downloaded and unziped the Jessie image onto my Arch partition,
-mounted the image partitions read only onto loop devices,
-dd from loop0 to the Wheezy boot partition ensuring the block count matched the image's block count,
-dd from loop1 to the Wheezy partition also paying attention to the block count,
-emptied the boot folder from the newly Jessified partition,
-mounted the Jessie partition and the boot partition inside it,
-made sure the cmdline.txt file referenced the Jessie partition instead of the default mmcblk0p2,
Then rebooted.
I selected Raspbian and it began to boot, but when it got to the fsck portion of boot it went nuts. It repeats messages like this:
[ 2629.015643] systemd-fsck[251]: /os/<unintelligible ASCII characters here>
Bad short file name (<more ASCII garbage>
Auto-renaming it.
Renamed to FSCK0003.863
It started at FSCK0000.001, so yeah, it has hit some 4000 "files" and keeps going. Also, the bad file names seem to have a similar effect to catting binaries to stdout, scrambling garbage characters into the output for a page or two. I interrupted it by unplugging it and rebooting to Arch.
I can still mount the partitions and even chroot into it (adjusting $PATH to compensate for the /usr/bin /bin difference between the distros). The Jessie file system seems fine and fsck's fine. The lost+found is empty.
What could be wrong and what step did I miss at what time to cause this?
edit: If it sounds like I did everything right but something broke that shouldn't have, that's a valid answer, too. I'll do it again if it should just work this way.