Age | Commit message (Collapse) | Author | Files | Lines |
|
before switch_root
|
|
the real root
|
|
Devices will never "magically" appear when udevd is not running. Thus,
poll_device now exits instantly when a device when udevd is not running.
The return value is unchanged, just the delay is removed.
Assuming that the drive is available just after loading the module is
unsafe. However, "fast" devices like most (all?) pata/sata seem to
work this way for many people. On "slow" devices like USB, we still
have to wait - those will not work without udev.
|
|
|
|
mount point
The old check couldn't distinguish different tmpfs mounts and failed to work with aufs (archiso).
This check is actually the same one that busybox/switch_root uses to determine where
to stop deleting files. If this check fails and we still launch switch_root it may start
deleting data.
|
|
|
|
mount handler (default_mount_handler)
|
|
Instead of having special NFS code in /init, make it possible for a hook to register a mount handler
When a hook sets the mount_handler environment variable, the normal mount code will be skipped and
the handler will be called with the path to mount point as the first and only argument.
|
|
terminate before continuing
|
|
exist on it, bail out instead of panicing
In these cases, we will exec /bin/sh, such that manual recovery is still possible as sh has PID 1
An expert might be able to mount and switch_root manually. In any case, this is less scary than a panic and a useless trace.
|
|
Slow devices like USB devices will be detected after we kill udev, thus booting will fail.
Kill udev as the last step, directly before we umount /proc and /sys and run switch_root.
|
|
stupid me
|
|
|
|
is specified
|
|
typing reboot is ineffective
|
|
|
|
otherwise will access to /sys/block//sys/block/sda/sda1/dev (for example)
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
|
|
There is no nss library or user/group database in initramfs, so tell udev to not try to resolve any names
|
|
This fixes FS#18213.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
use busybox/switch_root for the final step. TODO: NFS
|
|
CONFIG_BUSYBOX_EXEC_PATH="/bin/busybox" in busybox
|
|
Remove klibc-isms from base and init (except kinit, which will be done in a later commit)
Install busybox to the initramfs and change /init so it can be used with busybox
|
|
|
|
|
|
|
|
and make it more reliable
The old implementation failed on bash and failed on both if rootdelay was not a number.
The logic is now as follows:
If "$rootdelay"="", then [ -z "${rootdelay}" ] is true
If not, then the part after the || is executed - if ${rootdelay} is not a number, or is <0, then [ ${rootdelay} -ge 0 ] fails,
and the test will return true due to the !. The previous implementation failed here, because [ ! ${rootdelay} -ge 0 ] returns false
on error, while ! [ ${rootdelay} -ge 0 ] returns true on error.
|
|
See `man dash`
Signed-off-by: Loui Chang <louipc.ist@gmail.com>
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
|
|
|
|
|
|
If we have a symlink, we don't check further if it points to a block device, partially due to klibc's readlink being broken.
|
|
|
|
- Set rootdelay to 10 by default
- Skip the whole detection stage if we use root on nfs
- Use the new poll_device function to wait for at most $rootdelay seconds
- Always pass rootdelay=0 to kinit, as we ensure the existence of the root device
- Don't reboot after the fallback. This allows a user to fix a problem and continue booting
- Rely on kinit to detect the root filesystem type. The rootfstype= option can still be used to override
Our old method would have failed as well, as the code for filesystem detection is the same
|
|
and the hooks
|
|
udev forks some processes, and sometimes minips returns multiple
PIDs. The error messages are annoying, so we'll simply remove them
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
|
|
|
|
|
|
Using an explicit set of params passed to kinit is annoying, because we
forget things like this.
Add init=??? syntax again, for i.e. init=/bin/bash to recover a root
password
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
|
|
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
git-svn-id: http://projects.archlinux.org/svn/initramfs/mkinitcpio@209 880c04e9-e011-0410-abf7-b926e227c9cd
|
|
- added compatibility symlink /bin/modprobe
- 0.5.14 release
git-svn-id: http://projects.archlinux.org/svn/initramfs/mkinitcpio@206 880c04e9-e011-0410-abf7-b926e227c9cd
|
|
git-svn-id: http://projects.archlinux.org/svn/initramfs/mkinitcpio@205 880c04e9-e011-0410-abf7-b926e227c9cd
|
|
- fix some bugs introduced by phrakture (could you be more careful?)
git-svn-id: http://projects.archlinux.org/svn/initramfs/mkinitcpio@204 880c04e9-e011-0410-abf7-b926e227c9cd
|
|
This one exports $rootdelay to $kinit_params to avoid having to wait for
$rootdelay 2 times when one specifies rootdelay=x on the kernel cmdline (one in
init, one for kinit)...
git-svn-id: http://projects.archlinux.org/svn/initramfs/mkinitcpio@201 880c04e9-e011-0410-abf7-b926e227c9cd
|
|
The attached patch places the $root check before killing udev. The point is
this: It gives udev a chance to create the device. It also prints a message
saying "if you see the device being created here, try passing rootdelay=8 or
higher to the kernel"
also some minor edits:
- Use echo instead of message when dropping into the shell when $root isn't
found. People will always want to see those message i guess...
- fixed a little typo : "use d echo * " is now "use echo * "
mkinitcpio-rev199-place-rootcheck-before-killing-udev.patch
git-svn-id: http://projects.archlinux.org/svn/initramfs/mkinitcpio@200 880c04e9-e011-0410-abf7-b926e227c9cd
|
|
* Check for root device, drop down to recovery prompt and allow for reboot
* Handle rootdelay in init (before udev is killed), to properly populate devices
git-svn-id: http://projects.archlinux.org/svn/initramfs/mkinitcpio@199 880c04e9-e011-0410-abf7-b926e227c9cd
|