IDEA: Shortening boot-time
Bill Nottingham
notting at redhat.com
Fri Jul 23 16:23:20 UTC 2004
Hans de Goede (j.w.r.degoede at hhs.nl) said:
> -remove starting of prefdm from inittab and make it a service
Doesn't work correctly without console tricks (if *dm starts
before *getty, it will take one of the terminals allocated
for the getty.) But that probably can be worked around.
> -move starting some of slow things from rc.sysinit to a service, detect
> if they really needed early in rc.sysinit and then call/source the
> service script.
Which particular things do you have in mind that are slow?
fsck isn't quick, but it's sort of required.
> -Introduce a desktop config flag somewhere in /etc/sysconfig, which:
> makes sysinitrc skip lotts of enterprise setup stuff
Such as?
> -Introduce a desktop kernel as a counterwheight to the enterprise
> kernels which leaves out more advanced server stuff such as raid,
> devicemapper, advanced routing, etc.
Advanced routing stuff doesn't gain you any time. And I've seen
quite a few desktops with RAID.
> Delay USB-init:
> -usb (including the sleep call, GRRR) is moved from rc.sysinit to a
> service, which starts before networking, but after prefdm-early.
> -in rc.sysinit, at the place where usb used to be, take for each
> line /etc/fstab which is not a comment, empty and doesnot contain
> noauto, if it begins with LABEL=, see if we have a partition with such
> a delay. if it begins with /dev/, see if we can open the device
> -check if we can open /dev/input/mous0 and /dev/input/keyboard0
> -now if one of the LABELs or devices can't be openened, we
> probably have an USB attached disk, or HID device we need, so start USB
> now
> -on a normal desktop, all these checks should work without USB, so usb
> will be started later as part of the runlevel, again the subsyslock
> should avoid double starting.
> -ofcourse there needs to be a way to tell rc.sysinit to always load USB
> early
>
> Delay loading scsi modules and the long scsi chain scan:
> -on some systems, people have a scsi-card for say a scanner, or
> because the bought a cdrecorder in the days atapi was unreliable,
> so they have scsi but they don't have any disks attached!
> -make mkinitrd try to rmmod sd_mod, if this succeeds scsi is clearly
> not needed for disks, so don't put the scsi modules in the initrd
> -add a scsi-service which loads the modules when initrd hasn't done so
> already.
> -of course there needs to be a way to tell mkinitrd to always load the
> scsi modules.
You *really* want all the hardware stuff done early. In fact, it's
probably better to do it all earlier than it is now. Something like:
init
- initialize all hardware
- fsck
- mount *everything*
... continue on a more normal path ...
> Well I'm sure this idea is full of holes, so shoot. But please this is
> not meant as an invitation to start a flamewar about how FC / linux
> startup time sucks, if you want to talk about that talk to the wall,
> ceiling or floor.
How much does your proposal improve startup time? :)
Bill
More information about the fedora-devel-list
mailing list