GDT ist initialisiert (muss sein, da man sonst ja nicht den Speicher über die selektoren ansprechen kann), aber die IDT nicht. Wie soll grub auch widden, wo deine Interrupt_handler sind.
Aber das du den Grub auch verwendest finde ich super! Dann bin ich nicht der einzigste!