Uploading to atmega328 over serial with arduino bootloader running at 2MHz
Unprogram the CKDIV8 fuse and add the following to the sketch instead, near the beginning:

#include &lt;avr/power.h&gt;

void setprescaler(void) __attribute__ ((naked)) \
  __attribute__ ((section(".init1")));

void setprescaler(void)
{
  clock_prescale_set(clock_div_8);
}


This will do essentially the same thing as the fuse, but won't interfere with the bootloader.