Talk:BIOS update without optical disk

From ThinkWiki
Revision as of 16:48, 16 May 2009 by Newhren (Talk | contribs)
Jump to: navigation, search

Freeze when booting from USB drive

I attempted a BIOS upgrade on a ThinkPad X200s using the steps described on this page. Since no Linux is installed on the ThinkPad (only Vista 64-bit), I used a USB drive I prepared on another computer. The drive was formatted as plain FAT and contains nothing but GRUB, the memdisk executable and the image extracted with isobar. The laptop boots fine from the USB drive, GRUB loads and runs memdisk, which takes over and prints some debug information about memory addresses, disk layout and interrupts. Finally the following lines appear:

Loading boot sector... booting...
Lenovo Group Limited

Starting PC DOS...

Unfortunately, nothing happens after that. I attempted this with BIOS 3.01 (6duj30uc.iso) and BIOS 2.06 (6duj08uc.iso, the exact one used in the instructions). GRUB and syslinux are both up to date, obtained from the repositories of the recently released Ubuntu 9.04. I also tried the isobar32.exe from the OMIBAR32 package on the SHSUCD website, again to no avail (however, the resulting images had a different checksum). Any ideas? --Nor 21:26, 15 May 2009 (UTC)

I also had no luck booting memdisk from a USB stick (may be because of the way memdisk works: it hijacks the HD-access interrupt in BIOS. But no-emulation boot of syslinux from a USB stick works OK). As for the different checksums for isobar32.exe and isobar-for-linux -- the images also have different sizes. I found and fixed a bug in the original isobar32.exe that might potentially corrupt the image (instead of "offset"+"size of the first partition" it dumps only "size of the first partition", so if there is a useful info in the last 32 sectors or so -- isobar32.exe will loose it). For now, I would suggest you

  • boot from a linux live-CD, e.g sysresccd (of course, the whole point is that you dont have an optical drive, but you can easily make a bootable USB stick out of it. Since it uses no-emulation syslinux, it will boot OK).
  • backup (with dd if=/dev/sda) the first 100Mb of your internal harddisk to an external disk (e.g. to the USB stick you are booting from)
  • copy the BIOS image you've got with isobar to your internal harrdisk (dd if=bios.img of=/dev/sda)
  • reboot and update the BIOS
  • reboot from a linux live-CD and restore your first 100Mb (with dd of=/dev/sda)

--newhren 14:22, 16 May 2009 (UTC)