Syslinux from Linux

Recently I was locked out of a customer-provided laptop with their development environment, and access to their source code repository via vpn. I suspect their domain controller propagated an update last time I was on the vpn which has locked me out.

They're overseas and about 12 hours flight time away, so with their permission I used ntpasswd to reset the Administrator password. The boot CD (downloadable as an iso) uses syslinux, which is fine, except that instead of wasting CD-Rs I like to use USB keys.

I copied the contents to a blank FAT32-formatted usb key, but it has no boot sector yet. I installed grub and tried to make a grub menu file from the syslinux.cfg with these tips for converting a syslinux .cfg file to a grub .conf file. I failed because the syslinux.cfg has the line:
append rw vga=1 initrd=initrd.cgz,scsi.cgz

And I don't know how to append the two cgz's into one grub initrd line. Normally grub uses an initrd like this:
initrd /initrd.cgz

So I decided to install syslinux from linux. The man page makes it look easy:
syslinux [-sfr] [-d directory] [-o offset] device
When I ran "syslinux /dev/sdd1" and booted the laptop with this usb key, it just gave me a blank cursor blink. This is because the laptop is looking in the MBR of the usb key and finding nothing. The syslinux man page shows some hints:
Booting from a FAT partition on a hard disk
SYSLINUX can boot from a FAT filesystem partition on a hard disk
(including FAT32). The installation procedure is identical to the pro-
cedure for installing it on a floppy, and should work under either DOS
or Linux. To boot from a partition, SYSLINUX needs to be launched from
a Master Boot Record or another boot loader, just like DOS itself
would. A sample master boot sector (mbr.bin) is included with SYSLINUX.
Well, that's nice to know, but how do I put that on my usb key? Follow these steps:

1. Start with a FAT32 formatted usb key (it can have other data on it) and some syslinux-based boot image. I'm using the latest ntpasswd iso cd080802. Unpack the contents to the root of the usb key.

2. Copy a boot sector to the code image of the MBR of your to-be-booted usb key:
dd if=/usr/share/syslinux/mbr.bin of=/dev/sdd bs=440 count=1
/dev/sdd is my usb key
 Look at Wikipedia for an explanation of the MBR layout
your mbr.bin might be in a different location. It should come installed with syslinux 

3. Run syslinux to make the partition bootable:
sudo syslinux /dev/sdd1

4. Mark the partition as bootable (may not be necessary)
fdisk /dev/sdd
Select a, 1, w to make the first partition bootable. CHECK THESE OPTIONS FIRST!

5. Insert USB key to your PC / laptop and boot (so long as your BIOS is setup and capable!)


Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl


Kiruthiprabha said...

Thank you for allowing me to read it, welcome to the next in a recent article. And thanks for sharing the nice article, keep posting or updating news article.
Data Science Online Training
Learn Data Science Course

Post a Comment

Popular Posts