Okay, this gets a little 'fun'.
The 328 has different signature bytes than the 328P.
328 0x1E 0x95 0x14
328P 0x1E 0x95 0x0F
The real way around this (doing this from memory, bear with me).
Download a copy of notepad++ so you have a good editorhttp://notepad-plus-plus.org/
Find avrdude.conf. Open it & find 'm328p'
Copy that whole section, call it 'm328' and change the signature bytes per above.
Change anything that ATMega328P to ATMega328. (no P at the end)
Find a section that says something like "traditional NG bootloader. "
The NG boards used '168s and internal crystal.
"The initial design of the Arduino LilyPad had a 10-pin ICSP header and used the internal clock on the ATmega168 rather than an external oscillator. The bootloader on the initial design is the traditional NG bootloader. "
So you want to set up like that.
Copy that section, put in your new new board name, and put in the '328 signature bytes and memory limits.
Burn the bootloader so the fuses are set for the internal crystal, and you should be able to load sketches after that.
I've not tried this personally for anything but '1284s witt crystals, but it should get you pretty close.
Come back and ask questions if you get stuck.
Okay, after some experiment, I understand what you want to do now. You are actually creating a new board file so that I do not need to always change the signature of the arduino UNO bootloader signature from 0F to 14 right ? You straight creating a new board name arduino UNO for atmega 328 where when I want to burn the bootloader, I choose this board and with the signature of 14 instead of 0F. Okay. But then once I upload the bootloader, I cant upload the code through USB though. The error shown as like below :