vonbraun, runlevels significam algo muito diferente do que costumavam, então eu não acredito que o nível de execução 1 é realmente onde você quer estar.
Sine que você deseja executar o mais rápido possível, existem duas opções.
Se você pode trabalhar sem gravar no sistema de arquivos raiz, e seus dados têm garantia de estar no sistema de arquivos raiz, você pode usar o evento de montagem.
start on mounting MOUNTPOINT=/
O evento de montagem é um "gancho", então o mountall irá esperar por qualquer coisa que o use para desbloquear. Você definitivamente deve usar a palavra-chave 'task' para que suas verificações possam ser executadas totalmente antes que o mountall seja desbloqueado.
Neste ponto da inicialização, o sistema de arquivos raiz ainda é somente leitura, mas deve estar disponível. Outros sistemas de arquivos podem não estar disponíveis, então esteja ciente (o / var / run, em particular, pode ser complicado desta maneira). Do não use "AND" com outro evento de montagem, pois isso bloqueará a inicialização.
Se você precisa escrever para o FS raiz, você pode usar
start on mounted MOUNTPOINT=/
Isto irá bloquear o mountall novamente, mas depois / é remontado read-write. Isso deve impedir que os sinais resultantes que iniciam outras partes da inicialização aconteçam.
Não há garantias aqui, algumas outras coisas estarão acontecendo em paralelo. No entanto, a maioria da inicialização será atrasada aguardando o acesso ao sistema de arquivos e, no cenário declarado, parece ser o resultado desejado.
Observe que há muitas boas ideias relacionadas no livro de receitas do Upstart
Boa sorte!