You are not logged in.
I'm trying to speed boot by manually specifying all of the modules in mkinitcpio.conf and getting rid of udev. It's a custom kernel that I compiled based on zenmm. However, when booting it says 'root device /dev/sda4 doesn't exist, attempting to create it'. It then fails to creat it and drops me to a $ramfs prompt. When I use an initrd with udev, everything is fine. Here are the two configuration files:
#
# /etc/rc.conf - Main Configuration for Arch Linux
#
# -----------------------------------------------------------------------
# LOCALIZATION
# -----------------------------------------------------------------------
#
# LOCALE: available languages can be listed with the 'locale -a' command
# HARDWARECLOCK: set to "UTC" or "localtime"
# USEDIRECTISA: use direct I/O requests instead of /dev/rtc for hwclock
# TIMEZONE: timezones are found in /usr/share/zoneinfo
# KEYMAP: keymaps are found in /usr/share/kbd/keymaps
# CONSOLEFONT: found in /usr/share/kbd/consolefonts (only needed for non-US)
# CONSOLEMAP: found in /usr/share/kbd/consoletrans
# USECOLOR: use ANSI color sequences in startup messages
#
LOCALE="en_US.utf8"
HARDWARECLOCK="UTC"
USEDIRECTISA="no"
TIMEZONE="America/New_York"
KEYMAP="dvorak"
CONSOLEFONT=
CONSOLEMAP=
USECOLOR="yes"
# -----------------------------------------------------------------------
# HARDWARE
# -----------------------------------------------------------------------
#
# MOD_AUTOLOAD: Allow autoloading of modules at boot and when needed
# MOD_BLACKLIST: Prevent udev from loading these modules
# MODULES: Modules to load at boot-up. Prefix with a ! to blacklist.
#
# NOTE: Use of 'MOD_BLACKLIST' is deprecated. Please use ! in the MODULES array.
#
MOD_AUTOLOAD="no"
#MOD_BLACKLIST=() #deprecated
MODULES=(ext3 video dcdbas fan thermal button battery ac b43 mac80211 cfg80211 cpufreq_powersave powernow_k8 freq_table processor thermal_sys jbd mbcache cdrom ahci libata psmouse)
# Scan for LVM volume groups at startup, required if you use LVM
USELVM="no"
# -----------------------------------------------------------------------
# NETWORKING
# -----------------------------------------------------------------------
#
# HOSTNAME: Hostname of machine. Should also be put in /etc/hosts
#
HOSTNAME="gallienus"
# Use 'ifconfig -a' or 'ls /sys/class/net/' to see all available interfaces.
#
# Interfaces to start at boot-up (in this order)
# Declare each interface then list in INTERFACES
# - prefix an entry in INTERFACES with a ! to disable it
# - no hyphens in your interface names - Bash doesn't like it
#
# DHCP: Set your interface to "dhcp" (eth0="dhcp")
# Wireless: See network profiles below
#
#wlan0="dhcp"
#wlan_wlan0="wlan0 essid Easley-home key E651E7EA5D5576C910EB2B0962"
#INTERFACES=(wlan0)
# Routes to start at boot-up (in this order)
# Declare each route then list in ROUTES
# - prefix an entry in ROUTES with a ! to disable it
#
gateway="default gw 192.168.0.1"
ROUTES=(!gateway)
# Enable these network profiles at boot-up. These are only useful
# if you happen to need multiple network configurations (ie, laptop users)
# - set to 'menu' to present a menu during boot-up (dialog package required)
# - prefix an entry with a ! to disable it
#
# Network profiles are found in /etc/network.d
#
# This now requires the netcfg package
#
#NETWORKS=(main)
# -----------------------------------------------------------------------
# DAEMONS
# -----------------------------------------------------------------------
#
# Daemons to start at boot-up (in this order)
# - prefix a daemon with a ! to disable it
# - prefix a daemon with a @ to start it up in the background
#
DAEMONS=(@portmap @nfslock @sshd @syslog-ng @laptop-mode @cpufreq @netfs @crond)
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES="piix ide_disk reiserfs"
MODULES="ext3 video dcdbas fan thermal button battery ac b43 mac80211 cfg80211 cpufreq_powersave powernow_k8 freq_table processor thermal_sys jbd mbcache cdrom ahci libata psmouse"
# BINARIES
# This setting includes, into the CPIO image, and additional
# binaries a given user may wish. This is run first, so may
# be used to override the actual binaries used in a given hook.
# (Existing files are NOT overwritten is already added)
# BINARIES are dependancy parsed, so you may safely ignore libraries
BINARIES=""
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in anyway. This is useful for config files.
# Some users may wish to include modprobe.conf for custom module options,
# like so:
# FILES="/etc/modprobe.conf"
FILES=""
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'modload' may be used in place of 'udev', but is not recommended
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
# This setup specifies all modules in the MODULES setting above.
# No raid, lvm2, or encrypted root is needed.
# HOOKS="base"
#
# This setup will autodetect all modules for your system and should
# work as a sane default
# HOOKS="base udev autodetect pata scsi sata filesystems"
#
# This is identical to the above, except the old ide subsystem is
# used for IDE devices instead of the new pata subsystem.
# HOOKS="base udev autodetect ide scsi sata filesystems"
#
# This setup will generate a 'full' image which supports most systems.
# No autodetection is done.
# HOOKS="base udev pata scsi sata usb filesystems"
#
# This setup assembles an pata raid array with an encrypted root FS.
# Note: See 'mkinitcpio -H raid' for more information on raid devices.
# HOOKS="base udev pata raid encrypt filesystems"
#
# This setup loads an lvm2 volume group on a usb device.
# HOOKS="base udev usb lvm2 filesystems"
HOOKS="base sata" # pata scsi filesystems
Any ideas?
Last edited by intrados (2008-08-08 03:47:48)
Offline
I don't see a disk controller module anywhere - if it's not built into your custom kernel, that's your problem.
More generally, bear in mind that your init image has one purpose only, and that is to boot your system. You should only include in it the modules that are required for that purpose. Everything else can be added to the rc.conf MODULES array.
Offline
I thought you needed udev regardless -- something has to make some files in /dev
Removing autodetect is what will speed the boot.
Offline
Thanks tomk. That was it. I just needed to add in ata_piix. Now I'm booting in around seven seconds.
I know that the only purpose of the init image is to boot the system. I was just leaving all those modules in mkinitcpio.conf to make the point that the modules were the exact same in both arrays. I still don't understand though why I don't need that disk controller module in the rc.conf array.
Offline
7 seconds is amazing. What machine are you on? And are you measuring grub to textmode, grub to login manager or even grub to desktop?
Zl.
Offline
I'm on a dell vostro 1000. I'm measuring from grub to qingy (an fb login manager). I had to do some pretty extreme tweaking. I custom compiled a kernel and got rid of initrd and autoloading. I don't have any modules in my rc.conf. Since I'll mostly be roaming, I don't load wireless modules till I scan for networks. I don't load my mouse module until I start X. Basically a bunch of stuff like that. My kernel is 1.6M and I stripped down my rc.sysinit quite a bit.
Offline