From owner-linux-raid-outgoing@vger.rutgers.edu Mon Mar 6 16:47:46 2000 Return-Path: Received: from nic.funet.fi (nic.funet.fi [193.166.0.145]) by planet.fef.com (8.9.3/8.9.3) with ESMTP id QAA14896 for ; Mon, 6 Mar 2000 16:47:46 -0800 Received: from vger.rutgers.edu ([128.6.190.2]:20540 "EHLO vger.rutgers.edu" ident: "NO-IDENT-SERVICE[2]" smtp-auth: TLS-CIPHER: ) by nic.funet.fi with ESMTP id ; Tue, 7 Mar 2000 02:48:11 +0200 Received: by vger.rutgers.edu via listexpand id ; Mon, 6 Mar 2000 15:41:05 -0500 Received: by vger.rutgers.edu id ; Mon, 6 Mar 2000 14:03:41 -0500 Received: from [207.20.188.130] ([207.20.188.130]:4400 "EHLO ns3.bizsystems.net") by vger.rutgers.edu with ESMTP id ; Mon, 6 Mar 2000 13:29:53 -0500 Received: from bzs.org (root@pandora.is.bizsystems.com [192.168.20.190]) by ns3.bizsystems.net (8.9.3/8.9.3) with ESMTP id OAA30069 for ; Mon, 6 Mar 2000 14:29:54 -0800 Received: from gomer.is.bizsystems.com (gomer.is.bizsystems.com [192.168.1.166]) by bzs.org (8.8.5/8.8.5) with SMTP id OAA25521 for ; Mon, 6 Mar 2000 14:29:53 -0800 Message-Id: <200003062229.OAA25521@bzs.org> From: "Michael" To: linux-raid@vger.rutgers.edu Date: Mon, 6 Mar 2000 14:30:03 -0800 Subject: Re: Can LILO boot from raid ? Reply-to: michael@bizsystems.com In-reply-to: <38C3EBF1.45C1ECBA@mondoz.com.br> Sender: owner-linux-raid@vger.rutgers.edu Precedence: bulk X-Loop: majordomo@vger.rutgers.edu X-Orcpt: rfc822;linux-raid-outgoing Status: RO > Everything has been done, we got a slackware7 installed straight > into a software raid 1 disk set but still cannot boot from there, > LILO says "Sorry don t know to handle device 0X900" We got lilo > 021-10 from Red Hat but even with the patches it still behaves the > same way .. Is there any building option for the > lilo-0.21-10.src.rpm pack or LILO just cannot do it ? > > "there are some days when you ride the bike for two hours and 110 Km > are gone, and there are some when 12 hours are not enough to deal > with a 10km uphill /:(" this is how I do it on Slackware 7.0 I do not use the red-hat patched LILO, but rather use the stock version. This info was posted many moons ago by hnh@bukharin.hiof.no (many thanks). I have added some comments to it to make the process easier (hopefully) to understand. assume that you have two disks that make up the raid 1 you wish to boot from and that this raid set is designated /dev/md0, that this raid set is in fact the directory "/boot" and is mounted on the root at /boot. The root directory in turn is made of another raid set /dev/md2 ... this is not important, the root could easily be a single disk partition such as /dev/hdc1 the lilo config file would look like this ### LILO # RAID 1 BOOT MINI HOWTO #Start LILO GLOBAL # begin with a marker for the disk where the /boot directory is # mounted. This is where LILO will look for the image of the kernel # and other files it needs to properly setup and complete the boot #process. disk = /dev/md2 # add a pointer for boot that defines the bios address of the boot # disk. If your bios is capable of automagically determining that # the first disk has died and can switch to the second, this entry # will be 0x81 for the lilo.confg.disk2 file bios - 0x80 # tell the boot process the geometry of the drive. This parameter can # be found on the drive (usually) or ... for example - ide drive hda # cat /proc/ide/ide0/hda/geometry # for a 20 gig ibm drive model IBM-DPTA-372050 sectors = 63 heads = 16 cylinders 43800 # the next entry is a dummy which makes LILO "happy" with the 0x900 # md device -- any /dev/mdx can be used here except the one used for # disk = above partition = /dev/md0 # tell lilo where the 1st raid 1 sector is located. NOTE: I've tried # this where the raid 1 boot sector is not the first partition on the # drive and it does NOT work... at least not for me. Recommend that # the boot RAID 1 be the first partition. If someone works out how to # do this easily without a problem, I'd like to know. # The first sector of the partition can be gotten from the command # fdisk -u -l /dev/hda start = 63 # tell lilo where to write the Master Boot Record # for the second drive, assuming /dev/hdb, this would be /dev/hdb # even if you intend to move the drive to hda if their is a failure. # This is where LILO will write the boot image, not where to boot # will occur from after POST. boot = /dev/hda # other miscellaneous LILO stuff you might want to have prompt timeout = 50 vga = normal # End LILO GLOBAL # One or more boot images image = /boot/vmlinuz # if you use raid 1 or 5 striped over raid 0; then initrd = /boot/initrd.gz label = LinuxR1overR0 root = /dev/md2 read-only image /boot/bzImage label = LinuxRaid root = /dev/md2 read-only #End Lilo In the above examples, for LinuxRaid, both /dev/md0 and /dev/md2 are conventional Raid's, md2 could be any kind of raid made up of disk partitions. All would be marked as partition type "fd" For the LinuxR1overR0 example, /dev/md0 must be made of real disks and could be marked as "fd" or started by the initrd - linuxrc script. The disadvantage of using partition type 83 is that if a member of the /dev/md0 raid set is moved, the array will fail to start manually but will autostart if marked as type 'fd'. The same is true of an underlying raid0 raid set -- it is easier to mark it as 'fd' and allow the kernel to auto start it, then have initrd - linuxrc start the overlying raid 1's, 5's ... whatever manually with 'raidstart'. Just to fool around, I have a created a full raid 1 consisting of a single disk partition and a raid 0 pair. This works fine in the above scenario. The "little" /boot raid 1 is mounted in the larger raid 1 and can be either manually started or autostarted by the kernel. The initrd - linuxrc then starts the large raid 1 and switches the root. Works throught more types of failures if the kernel autostarts as much as possible. Michael Michael@bizsystems.com