[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Lilo: fatal: raid_setup: stat("/dev/hda")



On Fri, 03 Sep 2010 14:15:23 -0400 (EDT), Thomas H. George wrote:
> On Fri, Sep 03, 2010 at 12:24:08PM -0400, Stephen Powell wrote:
>> On Fri, 03 Sep 2010 12:06:29 -0400 (EDT), Thomas H. George wrote:
>>> 
>>> After latest upgrade installation of lilo fails.
>>> 
>>> I am not using raid and have the entry boot=/dev/hda in lilo.conf as
>>> specified in the man page.  The installation fails with error code 01
>>> which according to the lilo man page means invalid disk command.
>>> 
>>> Does it now want a UUID? If so, where do I find the correct UUID.
>>> Values for the partitions are listed in /etc/fstab but not for the MBR.
>>> I have checked several posibilities in /proc without success.  In
>>> particular in /proc/bus there are now only three subdirectories, Input,
>>> pci and usb.
>>> 
>>> Since this a new problem I checked the archives for August and September
>>> but found nothing about lilo.
>> 
>> Your post is lacking important information to diagnose the problem.
>> For example,
>> 
>> (1) Are you running Lenny or Squeeze? (or something else)
> Squeeze
>> (2) What architecture? (i386 or amd64)
> amd64
>> (3) What kernel are you running?  Is it stock or custom?  If it is
>>     custom, exactly how did you build it?
> Stock kernel 2.6.32-5-amd64
>> (4) What additional backup kernels (if any) do you have installed?
> /boot/vmlinuz-2.6.24-1-amd64.sav
> /boot/vmlinuz-2.6.26-1-amd64
> /boot/vmlinuz-2.6.26-2-amd64
> /boot/vmlinuz-2.6.30-1-amd64
> /boot/vmlinuz-2.6.30-2-amd64
> /boot/vmlinuz-2.6.32-3-amd64
> /boot/vmlinuz-2.6.32-5-amd64
>> (5) What files, if any, are present in the following directories:
>>     /etc/kernel/postinst.d
> initramfs-tools
> pm-utils
> zz-lilo
> zz-update-grub
>>     /etc/kernel/postrm.d
> initramfs-tools
> zz-lilo
> zz-update-grub
>>     /etc/initramfs/post-update.d
> lilo
>> (6) I'd like to see the contents of the following files:
>>     /etc/kernel-img.conf
> # Kernel image management overrides
> # See kernel-img.conf(5) for details
> do_symlinks = yes
> relative_links = yes
> do_bootloader = yes
> do_bootfloppy = no
> do_initrd = yes
> link_in_boot = no
>>     /etc/fstab
> # /etc/fstab: static file system information.
> #
> # <file system>	<mount point>	<type>	<options>		<dump>	<pass>
> proc		/proc		proc	defaults		0	0
> # /dev/sdb1	/		ext3	errors=remount-ro	0	1
> UUID=bfcd3316-153a-4279-ab86-286906857b98	/		ext3	errors=remount-ro	0	1
> # /dev/sdb5	none		swap	sw			0	0	
> UUID=4b1523d0-bec9-4565-b085-0a151469b8db	none		swap	sw			0	0	
> 
> # formerly named /dev/sda1 is now:
> UUID=507caf8f-f9cd-4ed2-91cc-3e46ae942e9d	/bkups		ext3	rw,user,noauto		0	2
> # /dev/sda5	/ubuntu		ext3	defaults		0	2
> UUID=28a4eb99-6213-4b82-96a2-42b45097e256	/ubuntu		ext3	defaults		0	2
> # /dev/sda6	/data		ext3	defaults		0	2
> UUID=36cb29b0-2694-4dee-9ae4-10351963b979	/data		ext3	defaults		0	2
> 
> /dev/fd0	/media/floppy0	auto	rw,user,noauto		0	0
> 
> 
> # /dev/hda1	/temp		ext2	rw,user,auto		0	2
> UUID=4a2915d8-60cf-498e-a15c-f0bc6ebdb25e	/temp		ext2	rw,user,auto		0	2
> # /dev/hda5	/storage	ext2	defaults		0	2
> UUID=408287f4-8b15-42d1-b6d3-bfeaefde3002	/storage	ext2	defaults		0	2
> 
> # /etc/fstab: static file system information.
> #
> # <file system>	<mount point>	<type>	<options>		<dump>	<pass>
> 
> /dev/cdrom	/cdrom		iso9660	ro,user,noauto		0	0
> 
> /dev/scd0	/media/cdrom0	udf,iso9660	user,noauto	0	0
> /dev/scd0	/media/cddata	auto		ro,user,noauto	0	0
> /dev/scd1	/media/cdrom1	udf,iso9660	user,noauto	0	0
> 
> /dev/sdc1	/usbkey		auto	rw,user,noauto		0	0
> /dev/sdc5	/media/bkup	ext3	rw,user,noauto		0	0
> /dev/sdc	/media/fuze	vfat	rw,user,noauto		0	0
> 
> /dev/sr0	/media/cdrw	iso9660	rw,user,noauto		0	0
> /dev/sr1	/dvdrw		iso9660 rw,user,noauto		0	0
> /dev/sg0	/sony		iso9660 rw,user,noauto		0	0
> /dev/sg1	/usbdrive	vfat 	rw,user,noauto		0	0
> 
> /dev/sdd1	/usbmem		vfat	rw,user,noauto		0	0
>>     /etc/initramfs-tools/conf.d/resume
> # RESUME=/dev/sdb5
> RESUME='UUID=4b1523d0-bec9-4565-b085-0a151469b8db'
>>     /etc/initramfs-tools/conf.d/driver-policy
> No such file
>>     /etc/lilo.conf
> # Automatically added by lilo postinst script
> large-memory
> 
> # /etc/lilo.conf - See: `lilo(8)' and `lilo.conf(5)',
> # ---------------       `install-mbr(8)', `/usr/share/doc/lilo/',
> #                       and `/usr/share/doc/mbr/'.
> 
> # +---------------------------------------------------------------+
> # |                        !! Reminder !!                         |
> # |                                                               |
> # | Don't forget to run `lilo' after you make changes to this     |
> # | conffile, `/boot/bootmess.txt' (if you have created it), or   |
> # | install a new kernel.  The computer will most likely fail to  |
> # | boot if a kernel-image post-install script or you don't       |
> # | remember to run `lilo'.                                       |
> # |                                                               |
> # +---------------------------------------------------------------+
> 
> # Specifies the boot device.  This is where Lilo installs its boot
> # block.  It can be either a partition, or the raw device, in which
> # case it installs in the MBR, and will overwrite the current MBR.
> #
> boot=/dev/hda
>
> # Specifies the device that should be mounted as root. (`/')
> #
> 
> # root = /dev/sdb1
> root = "UUID=bfcd3316-153a-4279-ab86-286906857b98"
> 
> 
> # This option may be needed for some software RAID installs.
> #
> # raid-extra-boot=mbr-only
> 
> # Enable map compaction:
> # Tries to merge read requests for adjacent sectors into a single
> # read request. This drastically reduces load time and keeps the
> # map smaller.  Using `compact' is especially recommended when
> # booting from a floppy disk.  It is disabled here by default
> # because it doesn't always work.
> #
> # compact
> 
> # Installs the specified file as the new boot sector
> # You have the choice between: text, bmp, and menu
> # Look in lilo.conf(5) manpage for details
> #
> #install=menu
> 
> # Specifies the location of the map file
> #
> map=/boot/map
> 
> # You can set a password here, and uncomment the `restricted' lines
> # in the image definitions below to make it so that a password must
> # be typed to boot anything but a default configuration.  If a
> # command line is given, other than one specified by an `append'
> # statement in `lilo.conf', the password will be required, but a
> # standard default boot will not require one.
> #
> # This will, for instance, prevent anyone with access to the
> # console from booting with something like `Linux init=/bin/sh',
> # and thus becoming `root' without proper authorization.
> #
> # Note that if you really need this type of security, you will
> # likely also want to use `install-mbr' to reconfigure the MBR
> # program, as well as set up your BIOS to disallow booting from
> # removable disk or CD-ROM, then put a password on getting into the
> # BIOS configuration as well.  Please RTFM `install-mbr(8)'.
> #
> # password=tatercounter2000
> 
> # Specifies the number of deciseconds (0.1 seconds) LILO should
> # wait before booting the first image.
> #
> delay=20
> 
> # You can put a customized boot message up if you like.  If you use
> # `prompt', and this computer may need to reboot unattended, you
> # must specify a `timeout', or it will sit there forever waiting
> # for a keypress.  `single-key' goes with the `alias' lines in the
> # `image' configurations below.  eg: You can press `1' to boot
> # `Linux', `2' to boot `LinuxOLD', if you uncomment the `alias'.
> #
> message=/boot/bootmess.txt
> 	prompt
> #	delay=100
> #	timeout=100
> 
> # Specifies the VGA text mode at boot time. (normal, extended, ask, <mode>)
> #
> # vga=ask
> # vga=9
> #
> 
> 
> # Kernel command line options that apply to all installed images go
> # here.  See: The `boot-prompt-HOWTO' and `kernel-parameters.txt' in
> # the Linux kernel `Documentation' directory.
> #
> # append=""
>  
> # If you used a serial console to install Debian, this option should be
> # enabled by default.
> # serial=
> 
> #
> # Boot up Linux by default.
> #
> default=Linux
> 
> image=/vmlinuz
> 	label=Linux
> 	read-only
> #	restricted
> #	alias=1
>     append="quiet"
> 	initrd=/initrd.img
> 
> image=/vmlinuz.old
> 	label=LinuxOLD
> 	read-only
> 	optional
> #	restricted
> #	alias=2
>     append="quiet"
> 	initrd=/initrd.img.old
> 
> image=/boot/vmlinuz-2.6.24-1-amd64.sav
> 	label=LinuxSaved
> 	read-only
> 	append="quiet"
> 	initrd=/boot/initrd.img-2.6.24-1-amd64.sav
> 
> # If you have another OS on this machine to boot, you can uncomment the
> # following lines, changing the device name on the `other' line to
> # where your other OS' partition is.
> #
> # other=/dev/hda4
> #	label=HURD
> #	restricted
> #	alias=3
>> (7) I'd like to see the output of the following commands:
>>     ls -Ald /dev/disk/by-uuid/ output using ls -Al
> total 0
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 17E9-242F -> ../../sdd1
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 28a4eb99-6213-4b82-96a2-42b45097e256 -> ../../sda5
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 36cb29b0-2694-4dee-9ae4-10351963b979 -> ../../sda6
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 408287f4-8b15-42d1-b6d3-bfeaefde3002 -> ../../sdb5
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 4a2915d8-60cf-498e-a15c-f0bc6ebdb25e -> ../../sdb1
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 4b1523d0-bec9-4565-b085-0a151469b8db -> ../../sdc5
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 507caf8f-f9cd-4ed2-91cc-3e46ae942e9d -> ../../sda1
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 bfcd3316-153a-4279-ab86-286906857b98 -> ../../sdc1
>>     ls -Al /dev/disk/by-path/
> total 0
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 pci-0000:00:02.0-usb-0:2:1.0-scsi-0:0:0:0 -> ../../sdd
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 pci-0000:00:02.0-usb-0:2:1.0-scsi-0:0:0:0-part1 -> ../../sdd1
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 pci-0000:00:02.1-usb-0:1:1.0-scsi-0:0:0:0 -> ../../sr1
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 pci-0000:00:04.0-scsi-0:0:0:0 -> ../../sdb
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 pci-0000:00:04.0-scsi-0:0:0:0-part1 -> ../../sdb1
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 pci-0000:00:04.0-scsi-0:0:0:0-part2 -> ../../sdb2
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 pci-0000:00:04.0-scsi-0:0:0:0-part5 -> ../../sdb5
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 pci-0000:00:05.0-scsi-0:0:0:0 -> ../../sda
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 pci-0000:00:05.0-scsi-0:0:0:0-part1 -> ../../sda1
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 pci-0000:00:05.0-scsi-0:0:0:0-part2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 pci-0000:00:05.0-scsi-0:0:0:0-part5 -> ../../sda5
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 pci-0000:00:05.0-scsi-0:0:0:0-part6 -> ../../sda6
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 pci-0000:00:05.0-scsi-1:0:0:0 -> ../../sr0
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 pci-0000:00:05.1-scsi-0:0:0:0 -> ../../sdc
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 pci-0000:00:05.1-scsi-0:0:0:0-part1 -> ../../sdc1
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 pci-0000:00:05.1-scsi-0:0:0:0-part2 -> ../../sdc2
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 pci-0000:00:05.1-scsi-0:0:0:0-part5 -> ../../sdc5
>>     ls -Al /dev/disk/by-id/
> total 0
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 ata-WDC_WD307AA-00BAA0_WD-WMA2F3071727 -> ../../sdb
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 ata-WDC_WD307AA-00BAA0_WD-WMA2F3071727-part1 -> ../../sdb1
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 ata-WDC_WD307AA-00BAA0_WD-WMA2F3071727-part2 -> ../../sdb2
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 ata-WDC_WD307AA-00BAA0_WD-WMA2F3071727-part5 -> ../../sdb5
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 ata-WDC_WD4000ABYS-01TNA0_WD-WCAPY0040763 -> ../../sda
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 ata-WDC_WD4000ABYS-01TNA0_WD-WCAPY0040763-part1 -> ../../sda1
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 ata-WDC_WD4000ABYS-01TNA0_WD-WCAPY0040763-part2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 ata-WDC_WD4000ABYS-01TNA0_WD-WCAPY0040763-part5 -> ../../sda5
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 ata-WDC_WD4000ABYS-01TNA0_WD-WCAPY0040763-part6 -> ../../sda6
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 ata-WDC_WD800JD-60LSA5_WD-WMAM9UU42905 -> ../../sdc
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 ata-WDC_WD800JD-60LSA5_WD-WMAM9UU42905-part1 -> ../../sdc1
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 ata-WDC_WD800JD-60LSA5_WD-WMAM9UU42905-part2 -> ../../sdc2
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 ata-WDC_WD800JD-60LSA5_WD-WMAM9UU42905-part5 -> ../../sdc5
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 scsi-SATA_WDC_WD307AA-00BWD-WMA2F3071727 -> ../../sdb
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 scsi-SATA_WDC_WD307AA-00BWD-WMA2F3071727-part1 -> ../../sdb1
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 scsi-SATA_WDC_WD307AA-00BWD-WMA2F3071727-part2 -> ../../sdb2
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 scsi-SATA_WDC_WD307AA-00BWD-WMA2F3071727-part5 -> ../../sdb5
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 scsi-SATA_WDC_WD4000ABYS-_WD-WCAPY0040763 -> ../../sda
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 scsi-SATA_WDC_WD4000ABYS-_WD-WCAPY0040763-part1 -> ../../sda1
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 scsi-SATA_WDC_WD4000ABYS-_WD-WCAPY0040763-part2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 scsi-SATA_WDC_WD4000ABYS-_WD-WCAPY0040763-part5 -> ../../sda5
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 scsi-SATA_WDC_WD4000ABYS-_WD-WCAPY0040763-part6 -> ../../sda6
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 scsi-SATA_WDC_WD800JD-60L_WD-WMAM9UU42905 -> ../../sdc
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 scsi-SATA_WDC_WD800JD-60L_WD-WMAM9UU42905-part1 -> ../../sdc1
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 scsi-SATA_WDC_WD800JD-60L_WD-WMAM9UU42905-part2 -> ../../sdc2
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 scsi-SATA_WDC_WD800JD-60L_WD-WMAM9UU42905-part5 -> ../../sdc5
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 usb-LEXAR_JUMPDRIVE_E141520206010-0:0 -> ../../sdd
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 usb-LEXAR_JUMPDRIVE_E141520206010-0:0-part1 -> ../../sdd1
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 usb-SONY_DVD_RW_DRU-510A_DRX-510UL_SYQ013324-0:0 -> ../../sr1
> lrwxrwxrwx 1 root root  9 Sep  3 10:16 wwn-0x50014ee200ed8e67 -> ../../sda
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 wwn-0x50014ee200ed8e67-part1 -> ../../sda1
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 wwn-0x50014ee200ed8e67-part2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 wwn-0x50014ee200ed8e67-part5 -> ../../sda5
> lrwxrwxrwx 1 root root 10 Sep  3 10:16 wwn-0x50014ee200ed8e67-part6 -> ../../sda6
> 
> 
> Note: I have grub2 boot loaders in the MBR's of the two sata hard drives
> which I knew as sda and sdb and lilo on the MBR of the ata drive which I
> knew as hda.  The grub2 installation recommended putting the loader in
> all MBR's but problem with linux-base made it impossible to boot with
> grub.  The lilo boot still worked and the linux-base problem was
> resolved when all references to the cdrom and usb drives was removed
> from fstab.  The 2.6.32-5-amd64 kernel is apparently too large for lilo.

First of all, thank you for taking the time to collect and post all of this
information.  I know it must have been a pain; but believe me, there's no way
to solve the problem without this information.  At the risk of telling you
what you already know, allow me to explain what happened.  Prior to kernel
2.6.32-5, the traditional IDE drivers were used for traditional IDE hard
drives (also know as parallel ATA or PATA drives).  The user-space device
names for these drives were called /dev/hda, /dev/hdb, etc.  On the kernel
side, these devices used major number 03.  Serial ATA
(or SATA) drives were treated as SCSI disks and used the SCSI naming
convention.  On the user-space side they were called /dev/sda, /dev/sdb,
etc.  On the kernel side, these devices used major number 08.

Starting with kernel 2.6.32-5, a newer driver was used for PATA drives
which, like the SATA drives, treated them as SCSI disks.  In a typical
PC with only one hard disk, the device name simply changed from
/dev/hda to /dev/sda.  However, in your case, since you already had two
other disks which were already being treated as SCSI disks, you now
have all three disks being treated as SCSI disks.  The question is,
which disk is which?  I.e. is the old /dev/hda now /dev/sda?  Or is
it now /dev/sdb or /dev/sdc?

If I am to believe the comments in /etc/fstab, you used to have a
partition called /dev/hda1, mounted as /temp, which has a UUID of
4a2915d8-60cf-498e-a15c-f0bc6ebdb25e.  According to the output of
"ls -Ald /dev/disk/by-uuid/", this uuid is now associated with
/dev/sdb1.  You also used to have a partition called /dev/hda5,
mounted as /storage, which has a UUID of
408287f4-8b15-42d1-b6d3-bfeaefde3002.  According to the output of
"ls -Ald /dev/disk/by-uuid/", this uuid is now associated with
/dev/sdb5.  Thus, we conclude that what used to be called /dev/hda
is now called /dev/sdb.  The "quick fix" would be to code

   boot=/dev/sdb

in /etc/lilo.conf and re-run lilo.  And that will work, as long as
you are running a kernel which uses the newer libata drivers.
But if you ever run lilo while running a kernel which uses the older
IDE drivers, this will fail.  That's not good.  What you want to
do is to use a udev-created alias what will map to /dev/hda when
running a kernel which uses the old IDE driver and which maps to
/dev/sdb when running a kernel which uses the new libata driver.
And we can do that.  Based on the output of "ls -Ald /dev/disk/by-id/",
what we really want to use is

   boot=/dev/disk/by-id/ata-WDC_WD307AA-00BAA0_WD-WMA2F3071727

This will work with both types of kernels.  linux-base apparently
isn't smart enough to make this substitution.  But that's what you
should do.

However, since I'm up to my ears in your system configuration,
I would like to make some recommendations, if I may.

(1) Avoid having multiple boot loaders installed at the same time,
if possible.  If you can, find one boot loader which can boot
everything and stick with it.

(2) If you ever create a custom kernel, you will have problems
with lilo because a kernel created by the Squeeze version of
"make-kpkg" or by "make deb-pkg" does not maintain the symlinks.
("do_symlinks = yes" only works for custom kernels under Squeeze.)
For a more general treatment of this topic I recommend that you
read http://www.wowway.com/~zlinuxman/Kernel.htm, especially
"Step 10: Customize the Kernel Installation Process".  You will
need to install hook scripts to maintain symlinks in this case,
such as the ones referenced on the web page.

(3) If you are using lilo on an amd64 system, you might want to
try the latest upstream version of lilo.  The Debian package is
available here:

   http://www.joonet.de/lilo/debian/squeeze/lilo_23.0-1_amd64.deb

Although this is in Debian package format, this package is not
supported by Debian at this time; so if you have problems with it,
please do not open a Debian bug report against the lilo package.  But
I do know that the upstream author, Joachim Wiedorn, made a number
of changes to lilo to work better with the amd64 architecture,
and he uses it himself.

There is one known bug in the package, but it is easily fixed.
Change "#!/bin/sh" to "#!/bin/bash" in
/etc/initramfs/post-update.d/lilo.

-- 
  .''`.     Stephen Powell    
 : :'  :
 `. `'`
   `-


Reply to: