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

Re: 2.34 Kernel Won't Boot



On Sun, 22 Aug 2010 06:39:15 -0400 (EDT), David Baron wrote:
> Googling found the second alternative. The new sda names are for ALL hard 
> disks, SATA, IDE, SCSI, no matter.
> 
> So there seems to be no way to keep the two variations, i.e. kernels using the 
> deprecated and the new PATA around. fstab must use the /dev/sda names and so 
> does the lilo (or grub) conf. Problem is that I cannot even try it.
> 
> Not so pleasant. A kernel build option fixing this name business might be in 
> order.

That is not true.  I am composing this e-mail on a system that has a
traditional IDE hard disk (PATA).  I have two stock Debian kernels
installed.  One, linux-image-2.6.32-3-686, uses the traditional /dev/hdx
naming convention for PATA drives.  The other, linux-image-2.6.32-5-686,
uses the /dev/sdx naming convention for PATA drives.  So my hard disk is
called /dev/hda by the 2.6.32-3-686 kernel and /dev/sda by the
2.6.32-5-686 kernel.  And I use lilo.  And I can boot back and forth
between the two kernels with no problem.  I just have to be careful to
use the "right stuff" in the appropriate system configuration files,
such as /etc/fstab, /etc/lilo.conf, and /etc/initramfs-tools/conf.d/resume.

As an example, here is a copy of the above configuration files that
I use.  (Only entries pertaining to hard disks or their partitions
are listed.):

/etc/fstab:

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# /dev/sda2       /               ext3    errors=remount-ro 0       1
UUID=055d446a-977d-4aa6-877d-62c716f5e85a / ext3 errors=remount-ro 0 1
# /dev/sda3       /home           ext3    defaults        0       2
UUID=0c32b94e-186a-46a4-86a2-d72ccb6e2b56 /home ext3 defaults 0 2
# /dev/sda1       none            swap    sw              0       0
UUID=a6948969-2d88-4ec0-93a1-6d2d803ff8b3 none swap sw 0 0

/etc/lilo.conf:

# boot=/dev/sda2
boot=/dev/disk/by-uuid/055d446a-977d-4aa6-877d-62c716f5e85a
# root=/dev/sda2
root="UUID=055d446a-977d-4aa6-877d-62c716f5e85a"

/etc/initramfs-tools/conf.d/resume:

RESUME=UUID=a6948969-2d88-4ec0-93a1-6d2d803ff8b3

In this case, I have lilo installed in a partition boot sector
(/dev/hda2 or /dev/sda2, depending on the naming convention);
so I can use UUIDs.  If you have lilo installed in the
master boot record, you can use something like

boot=/dev/disk/by-id/ata-ST340014A_5JXDX364

to tell lilo where to write the boot block.  A udev-created alias
of this form exists under both kernels.  Also, older versions of
the Debian installer use a version of mkswap that does not assign
a UUID when formatting.  You may need to get your swap partition
offline and reformat it using the standard version of mkswap to
get a UUID assigned to it.  Also, please note that using a
udev-created alias for "boot" in /etc/lilo.conf works fine, but
using such an alias for "root" does not work.  When using such
an alias, lilo converts it to a four-digit hexadecimal number
(a two-digit kernel major number concatenated with a two-digit
kernel minor number) and passes that to the kernel at boot time.
Since the traditional driver uses major number 03 and the newer
libata driver uses major number 08, this does not work.  You must
use the

   root="UUID=xxx..."

form in /etc/lilo.conf.  Quotation marks are required here in
/etc/lilo.conf.  I think I have most of the "gotchas" covered.

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


Reply to: