So after spending hours trying to find the appropriate driver that would work with the CD/DVD device in my Lenovo Y710A I bumped into a post on the lenovo forums that said that acpi=off fixes the problem, or to replace grub with lilo.
This kind of surprised me. A lot. I mean, after all, what the heck would the boot loader do that would prevent the operating system from recognizing the CD/DVD device?!? Anyway, after booting with acpi=off to confirm that this fixes it (and of course, as is true to laptop tradition – if stuff breaks boot without acpi to fix it, it did). I then proceeded to merge lilo and to clobber grub with it … and behove and behold – it actually works.
Now I’m slightly rattled, and lilo takes much longer to load the kernel from disk, but at least I’ve got a working DVD writer.
What is even funnier is that apparently (And I have no way of confirming this) if grub is used to bootstrap windows it too becomes unable to access the DVD device. Well done.
Now … the question really becomes, is this a bug in the BIOS, GRUB or does both Windows and Linux have the same (ACPI related?) bug? My bets is on the proprietary BIOS…
In the meantime, I’ve been reading some of the bootstrap assembly for grub stage 1 … some of the stuff that is being done to bootstrap computers, and the type of bugs (and “easy” workarounds) are crazy. Respect to the grub and lilo hackers out there. I don’t even want to think about how you go about trouble shooting a boot problem like “some buggy BIOSes jumps to 0780:0000 instead of 0000:7800” (Fix is to make an explicit far jump to 0:offest where offset is the physical address of the instruction directly after the jump), or “some BIOSes clobbers the %dl value during int 13h, ah=41h” (since dx gets saved earlier on a simple pop %dx/push %dx fixes this one). Keep in mind that the MBR is only so big, and every single byte in here counts.