Accepted initramfs-tools 0.40ubuntu1 (source)

Karl Hegbloom hegbloom at
Wed Nov 30 21:27:11 GMT 2005

On Wed, 2005-11-30 at 19:00 +0000, Scott James Remnant wrote:

>    * Use tmpfs for /dev, instead of ramfs; as tmpfs is swappable.

Why was it ever using anything but a tmpfs?  It should use the same file
system type that regular udev does, and the /dev/ should never be
umounted, but instead move-mounted over to the real location.  That's
how I had it when I was done with the part of it I worked on.  (I am not
employed by canonical and am a busy college student, so cannot keep up
with it.)

>    * Move /proc and /sys to the real filesystem, rather than unmounting them;
>      slightly reduces workload.

Right.  Move /dev also.  That way anything that has a device open can
keep it open.  If those programs chdir to the newly mounted file system
or to /dev before they start, they'll have a reasonably sane CWD also.

>    * Replace /root with ${rootmnt} in final usage of /dev/console
>    * Copy across modprobe blacklist as well as aliases
>  .
>    * Change the panic/breaknow thing *again*.  There's now a break= option
>      which can be any of top, modules, premount, mount, bottom, init and
>      causes the initramfs to break at that point.  panic/breaknow is now
>      break=top, without an argument is equivalent to break=premount.

Nice.  What about the dependency loop problem?  When there's a
dependency loop in the scripts, it bails and you're locked out.  Instead
it should break the loop somehow or let you into a shell.  A failsafe
boot to a ram-disk based (casper as in live-CD?) rescue system would be
amazing.  How hard can it be?  It does not need to be a full GUI system
by any means, but should contain the basic tools necessary for file
system repair, forensics, restoring backups, etc.

>    * Run depmod at the top of the init script, so init-top scripts can use
>      modprobe.
>  .
>    * Remove udev-specific code:
>      - depend on the version of udev that includes all of these things itself
>      - remove udevstart from init
>      - remove code to move /dev to the real filesystem from init


>      - remove /sys-based module loading from load_modules
>      - remove boot_events functions from load_modules
>      - remove udev copy from mkinitramfs
>      - remove udev hook script

I'm lost now.  What happened to udev?

Karl Hegbloom <hegbloom at>

More information about the ubuntu-devel mailing list