Merge pull request #236 from tomconte/master

Patch udev init script to fix ROOTDELAY boot issue
This commit is contained in:
Anders Ingemann 2015-06-29 14:17:23 +02:00
commit de028c7971
4 changed files with 40 additions and 1 deletions

View file

@ -2,6 +2,7 @@ from bootstrapvz.common import task_groups
import tasks.packages import tasks.packages
import tasks.boot import tasks.boot
import tasks.image import tasks.image
import tasks.udev
from bootstrapvz.common.tasks import loopback from bootstrapvz.common.tasks import loopback
from bootstrapvz.common.tasks import initd from bootstrapvz.common.tasks import initd
from bootstrapvz.common.tasks import ssh from bootstrapvz.common.tasks import ssh
@ -15,7 +16,6 @@ def validate_manifest(data, validator, error):
def resolve_tasks(taskset, manifest): def resolve_tasks(taskset, manifest):
taskset.update(task_groups.get_standard_groups(manifest)) taskset.update(task_groups.get_standard_groups(manifest))
taskset.update([tasks.packages.DefaultPackages, taskset.update([tasks.packages.DefaultPackages,
loopback.AddRequiredCommands, loopback.AddRequiredCommands,
loopback.Create, loopback.Create,
@ -25,6 +25,7 @@ def resolve_tasks(taskset, manifest):
ssh.AddSSHKeyGeneration, ssh.AddSSHKeyGeneration,
tasks.packages.Waagent, tasks.packages.Waagent,
tasks.boot.ConfigureGrub, tasks.boot.ConfigureGrub,
tasks.udev.PatchUdev,
tasks.image.ConvertToVhd, tasks.image.ConvertToVhd,
]) ])

View file

@ -0,0 +1,16 @@
diff --git a/debian/extra/initramfs-tools/scripts/init-top/udev b/debian/extra/initramfs-tools/scripts/init-top/udev
index 687911f..87f1121 100755
--- a/debian/extra/initramfs-tools/scripts/init-top/udev
+++ b/debian/extra/initramfs-tools/scripts/init-top/udev
@@ -31,11 +31,5 @@ if [ -d /sys/bus/scsi ]; then
udevadm settle || true
fi
-# If the rootdelay parameter has been set, we wait a bit for devices
-# like usb/firewire disks to settle.
-if [ "$ROOTDELAY" ]; then
- sleep $ROOTDELAY
-fi
-
# Leave udev running to process events that come in out-of-band (like USB
# connections)

View file

@ -0,0 +1,3 @@
import os.path
assets = os.path.normpath(os.path.join(os.path.dirname(__file__), '../assets'))

View file

@ -0,0 +1,19 @@
from bootstrapvz.base import Task
from bootstrapvz.common import phases
from bootstrapvz.common.tasks import kernel
import subprocess
import os.path
from . import assets
class PatchUdev(Task):
description = 'Patch udev configuration to remove ROOTDELAY sleep'
phase = phases.system_modification
successors = [kernel.UpdateInitramfs]
@classmethod
def run(cls, info):
# c.f. http://anonscm.debian.org/cgit/pkg-systemd/systemd.git/commit/?id=61e055638cea
with open(os.path.join(assets, 'udev.diff')) as diff_file:
udev_dir = os.path.join(info.root, 'usr/share/initramfs-tools/scripts/init-top')
subprocess.call(['patch', '--no-backup-if-mismatch', '-p6', '-d' + udev_dir], stdin=diff_file)