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

Bug#359922: marked as done (initramfs-tools: ata drive via usb 'scsi' /dev/sda stops boot, gets busybox)



Your message dated Sat, 29 Apr 2006 15:32:41 +0200
with message-id <20060429133241.GB29434@nancy>
and subject line Bug#359922: initramfs-tools: ata drive via usb 'scsi' /dev/sda stops boot, gets busybox
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: initramfs-tools
Version: 0.55b
Severity: important
Tags: patch

Every boot aborts to a busybox with a failure to mount the root, /dev/sda1, which is an ordinary drive in a portable 
enclosure connected via USB, in this case to an Athlon 64 system. After the busybox prompt appears, the usb hotplug system 
finds the drive, printing the correct id messages, whereafter /dev/sda1 appears.  Just typing 'exit' at the busybox then 
proceeds to boot normally.

I suspect this problem occurs in all cases where the bios 'boot' device is not the eventual final root device and
the root device discovery / setup process takes some time to settle (usb storage setups, raid setups, etc.)

I suggest the proper fix is to have a script in init-premount that doesn't exit until the root device is present
(probing once per second) or a timeout after 30 seconds occurs.  I created the following file, than ran

update-initramfs -u

which corrected the problem in my hard-drive-via-usb case.  file:  

/usr/share/initramfs-tools/scripts/init-premount/usbscsiroot

Content:

#!/bin/sh 

PREREQS="udev"

prereqs() { echo "$PREREQS"; }

case "$1" in
    prereqs)
    prereqs
    exit 0
    ;;
esac

# The time we wait for udev to work things out
udevd_timeout=30

if [ "$ROOT" = "/dev/sda1" ]; then
  echo "waiting on sda1"
  while [ ! -b "/dev/sda1" ]; do
    sleep 1
    udevd_timeout=$(($udevd_timeout - 1))
    if [ $udevd_timeout -eq 0 ]; then
	break
    fi
  done
fi

Hope this helps.  I searched the net prior to see that others had this problem, but I didn't see a published answer.

Sincerely,

Harry Coin
Bettendorf, Iowa
 

-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15diskless-a64
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages initramfs-tools depends on:
ii  busybox                       1:1.01-4   Tiny utilities for small and embed
ii  cpio                          2.6-11     GNU cpio -- a program to manage ar
ii  klibc-utils                   1.2.4-1    small statically-linked utilities 
ii  udev                          0.087-2    /dev/ and hotplug management daemo

initramfs-tools recommends no packages.

-- no debconf information


--- End Message ---
--- Begin Message ---
Version: 0.59b

On Mon, 24 Apr 2006, Harry Coin wrote:

> At 11:36 AM 4/16/2006 +0200, maximilian attems wrote:
> >
> >does latest initramfs-tools work?
> 
> Just now downloaded latest testing/etch version (april 24, 06, 3pm CDT).
> 
> initramfs-tools version 0.59b
> 
> This works, it doesn't require my usbspecific fix.

ok, thanks for your feedback.
closing your bugreport.
 
-- 
maks

--- End Message ---

Reply to: