// waitOnDevices waits for the devices enumerated in devs as a logged operation // using ctxt for the logging and systemd unit identity. func (s stage) waitOnDevices(devs []string, ctxt string) error { if err := s.LogOp( func() error { return systemd.WaitOnDevices(devs, ctxt) }, "waiting for devices %v", devs, ); err != nil { return fmt.Errorf("failed to wait on %s devs: %v", ctxt, err) } return nil }
// mountOEM waits for the presence of and mounts the oem partition @ oemMountPath. func (p *provider) mountOEM() error { dev := []string{oemDevicePath} if err := systemd.WaitOnDevices(dev, "oem-cmdline"); err != nil { p.logger.Err("failed to wait for oem device: %v", err) return err } if err := os.MkdirAll(oemMountPath, 0700); err != nil { p.logger.Err("failed to create oem mount point: %v", err) return err } if err := p.logger.LogOp( func() error { return syscall.Mount(dev[0], oemMountPath, "ext4", 0, "") }, "mounting %q at %q", oemDevicePath, oemMountPath, ); err != nil { return fmt.Errorf("failed to mount device %q at %q: %v", oemDevicePath, oemMountPath, err) } return nil }