Comment 188 for bug 1734147

Revision history for this message
David Lindsay (asmqb7) wrote : Re: Ubuntu 17.10 corrupting BIOS - many LENOVO laptops models

To Paul (sabret00the), #158: FWIW, if you want everyone to be able to see your askubuntu post you'll need to post a screenshot of it (just attach it - not going to hurt anything...). The question was deleted so it only loads for you. As for the deletion/closure, that sort of thing happens a _lot_ on stackexchange sites; don't take it personally.

As for everyone else: I've just reread through this entire thread and thought I'd reiterate some of the highlights:

In comment #141 Anthony Wong explained that the SPI Flash is somehow being write-protected.

In comments #164, #169 and #173 Paul Sladen (sladen) copied some potentially interesting thoughts from Mika Westerberg regarding the Flash chip vendors/models.

It would be very interesting if someone could post how to dig the Flash chip vendor info out of a running system - perhaps via dmidecode? Those with "kickstart-able" machines could then provide this info. (Not sure if this isn't perhaps already happening via email.)

The question at this point is whether the write-protect bit is a fuse that can't be unset. If it can be unset, and some convoluted process can be executed to get bricked machines to somehow boot, well, that'll be very interesting. :)

One last thing for developers/anybody who might need to coach someone through PXE booting: I found http://brokestream.com/netboot.c some time ago while looking for a tiny PXE server. This one handles DHCP+TFTP (make sure you have no DHCP server or relay running!), happily boots PXELINUX, runs great on Linux and probably other UNIX-likes, and is very simple to use. Presuming 10.42.x.x isn't in use,

- ifconfig <eth> up 10.42.0.1

- (find broadcast address (not netmask :D) via ifconfig)

- ./netboot <broadcast IP> 10.42.0.1 10.42.0.2 -

The last dash translates to a fully ambiguous MAC address, ie so you don't have to specify that too. And 10.42.0.2 is of course the IP the PXE-ing machine will get.

Installing syslinux will provide a copy of pxelinux.0 (mine was in /usr/share/syslinux). In any random dir (I used ~), if you create the directory "pxelinux.cfg" and then create the file "pxelinux.cfg/default" with the contents "default vmlinuz initrd=initrd.img" and then copy vmlinuz and initrd.img to the same root dir (~ in my case), everything should work.

This PXE info may prove to be irrelevant, but I thought I'd include it just in case it turns out to be useful to have in the thread. It's also good to know that PXE is not hard to do. (It isn't, but most PXE servers presume large-scale enterprise scenarios...)

As for where to get a kernel and initrd, https://help.ubuntu.com/community/Installation/MinimalCD provides an ISO file you can mount and copy the "linux" and "initrd.gz" files out of. CTRL+ALT+F2 gives you a console on this ISO. Note that this one contains _no utilities_ but is a workable start to test with.