I think that there is no correlation between INT0-1 and bootloader. Whenever bootloader finished it jumps to zero address and MCU starts executing your program code. Since this moment bootloader has nothing with. It is up to you to program interrupt vectors and routines correctly.
You haven't stated what the interrupt source is, but you may require pull up or pull down resistors. To set the internal pull up on pin 2 PORTD with 0b00000100
(Datasheet Page 67) When the BOOTRST Fuse is unprogrammed, the Boot section size set to 2K bytes and the IVSEL bit in the MCUCR Register is set before any interrupts are enabled, the most typical and general program setup for the Reset and Interrupt Vector Addresses in ATmega328P is: Address Labels Code Comments 0x0000 RESET: ldi r16,high(RAMEND); Main program start 0x0001 out SPH,r16 ; Set Stack Pointer to top of RAM 0x0002 ldi r16,low(RAMEND) 0x0003 out SPL,r16 0x0004 sei ; Enable interrupts 0x0005 xxx ; .org 0x3C02 0x3C02 jmp EXT_INT0 ; IRQ0 Handler 0x3C04 jmp EXT_INT1 ; IRQ1 Handler ... ... ... ; 0x3C32 jmp SPM_RDY ; Store Program Memory Ready Handler
But, the problem it is not here, it is located in my code ...... I will find it !