Wednesday, June 28, 2006

 
Bootloaders - Linux Router ROMMON

This entry is meant to give router folks some pointers on using Linux bootloaders.

If you're familiar with ROMMON, the pre-boot environment on Cisco routers, you'll love GRUB and SYSLINUX.

ROMMON (generally accessed by setting the config-register to 0x0) is what Cisco router use when booting to select the running router code. ROMMON is something like a PC's BIOS settings, but it typically offers you more router-specific functions. (selecting and booting new router images, setting console speeds, etc.) Often times, you never need to access ROMMON, as you can change most of it's settings from the running version of IOS. However, it's a critical part of router's bootup procedure.

Most modern Linux distributions (including Vyatta's OFR) use GRUB (http://www.gnu.org/software/grub/) as the default bootloader when booting from a harddisk. (see later information about SYSLINUX) Maybe you older Linux hackers out there remember LILO, but GRUB is the bootloader of preference today. (actually GRUB prefers to consider itself a Multiboot environment which can offer much more functions than just a bootloader.)
GRUB is typically installed in the Master Boot Record (MBR) of your bootable harddisk.

The general function of GRUB is to select a kernel and initrd to boot, and to pass on command line options to the kernel you're booting. For instance, you might want to boot a SMP kernel, or a new test kernel with special drivers built in. Or you might want to pass certain command like options to your kernel to make it behave in special ways. All of the default menu settings for GRUB are typically stored in /boot/grub/grub.conf (take a look at it)


Here are some cool things you may not have known about GRUB.

- You can setup GRUB to work on both the VGA console and serial consoles, simultaneously if you want. So you can select kernels and options during the boot process.

- You can hand-edit the selected GRUB boot parameters. (hit "e" for edit, when you've highlighted a line, make your edits, hit enter, and then hit "b" to boot)

- Got a typo? GRUB can scan your list of available kernels in /boot and will do TAB-completion of kernel filenames to fix your typo.

- GRUB can be beautified with colors and splash screens, like most Desktop distros are setup.
Want to "brand" your boot process? Here's where you can start.

- GRUB is under active development. The newest version has been named GRUB 2. Expect lots of new functionality and capabilites soon as GRUB 2 stablizes this fall.


The current stable GRUB does have one common limitation. It's usually only used when booting on hard disks, it doesn't support the ISO filesystems (CD-ROMs). The GRUB 2 project reportedly fixes this limitation.

For ISO based boots (like LiveCDs), ISOLINUX which is part for H. Peter Anvin's SYSLINUX project is typically used. (http://syslinux.zytor.com/)

ISOLINUX behaves a lot like GRUB, but doesn't allow for command line editing of pre-defined boot parameters. It's also under active development and recently added a rich menuing system.

Here are some cool things you may not have known about SYSLINUX:

- SYSLINUX also includes PXELINUX which is a great bootloader environment which you can PXE boot from. (and then select and download kernels from a TFTP server)

- SYSLINUX has the ability to boot floppy disk images using the MEMDISK function. When combined with PXELINUX, this provides a great way for doing BIOS updates on older systems that still require a Floppy boot in order to upgrade BIOS. (no more running around with floppy disks, just set the PXE boot parameters and sit back.)

- SYSLINUX has a rich comboot API for creating complex interactive extensions for very custom boot environments.


I hope this entry helped a few router geeks get acquainted with the Linux bootloaders, and gives you a feel for what's going on in the active development of these tools. I think you'll find it a much richer experience than what you're used to using ROMMON.

Happy booting.

Tuesday, June 27, 2006

 
Network Administrators and System Administrators are different folks.

The cool thing about products like Vyatta, is that is helps bridge the gap between these two worlds. (more on that later)

As an intro blog, I'd like to highlight some of the differences between these two types of geek.

Common vendors:
Network folks: Cisco, Juniper, Nortel, Force10, Foundry, Extreme, etc.
System folks: RedHat, Dell, HP, IBM, Novell, Sun, Microsoft

Access to devices:
Network folks: Serial console, ssh, telnet, SNMP, command line
System folks: VGA console, ssh, VNC, GUI

Configuration methodology:
Network folks: One global system configuration file per device.
System folks: Various configuration files for different components on a device, usually in /etc.

"Protocols":
Networks folks: RIP, OSPF, BGP, TCP, SNMP, Ethernet, VPN
System folks: HTTP, CGI, TCP, XML, DNS, SQL, Mail, File & Printer

Software Management:
Network folks: Single system images, reboot to upgrade. (changing)
System folks: RPMs, Component Upgrades, restart upgraded services.

Hardware Management:
Network folks: Install and remove interfaces cards without shutdown.
System folks: Full system shutdown to upgrade hardware. (changing)

Reliabilty Expectations:
Network folks: 5 Nines per device (many systems : 1 network)
System folks: Much lower expectations (systems fail without catastrophic effect)

Scalability:
Network folks: Large deployments use hardware acceleration (generally ASICs) to scale.
System folks: Large deployments use clustering and parallelization to scale.


Do you have other views on the differences and similarities between these types of geeks?

Who would win in a fight? :)

This page is powered by Blogger. Isn't yours?