* fix initrd file offset bug
diff --git a/bootstub.c b/bootstub.c
index cb984a0..37a328e 100644
--- a/bootstub.c
+++ b/bootstub.c
@@ -74,10 +74,10 @@
 	memcpy(&bp->hdr, sh, sizeof (struct setup_header));
 	bp->hdr.cmd_line_ptr = CMDLINE_OFFSET;
 	bp->hdr.cmdline_size = strnlen((const char *)CMDLINE_OFFSET,256);
+	bp->hdr.type_of_loader = 0xff; //bootstub is unknown bootloader for kernel :)
 	bp->hdr.ramdisk_size = *(u32 *)INITRD_SIZE_OFFSET;
-	bp->hdr.ramdisk_image = (bp->alt_mem_k*1024 - bp->hdr.ramdisk_size) & ~(0x0fff);
-	memcpy((u8*)bp->hdr.ramdisk_image, (u8 *)BZIMAGE_OFFSET + *(u32 *)BZIMAGE_SIZE_OFFSET + *(u32 *)INITRD_SIZE_OFFSET,
-		bp->hdr.ramdisk_size);
+	bp->hdr.ramdisk_image = (bp->alt_mem_k*1024 - bp->hdr.ramdisk_size) & 0xFFFFF000;
+	memcpy((u8*)bp->hdr.ramdisk_image, (u8 *)BZIMAGE_OFFSET + *(u32 *)BZIMAGE_SIZE_OFFSET, bp->hdr.ramdisk_size);
 }
 
 static int get_32bit_entry(unsigned char *ptr)