Più o meno è quello a cui mi riferivo con
Dopo un mare di tentativi di ottenere la shell che vi risparmio sono riuscito ad andare in maintenance mode
Provo a ricostruire la cronistoria.
- conosco veramente poco systemd ed ero ancora abituato a init=/bin/bash
- la macchina è una macchina virtuale su architettura openstack per cui aprire la console è un incubo che passa per la dashboard in http di openstack
- la macchina con boot senza aggiunta caricava il kernel e ad un certo punto sembrava fermarsi, con un messaggio ogni tanto (quindi no panic)
- durante il boot partiva il caricamento del driver drm che fondamentalmente cancella tutta la history precedente
- init=/bin/bash mandava in kernel panic (attempt to kill init)
- rd.break dava quasi lo stesso effetto del boot normale
- idem systemd.unit=emergency.target
Il mondo si è schiarito quando
- aggiunto nomodeset per non cancellare la history e vedere di capire dove si fermava
- scoperto che sulla riga c'era sia console=tty1 che console=ttyS0 (di solito viene messo per avere una console senza bisogno di una gui, ma in questo momento non l'abbiamo ancora attivata la feature
A questo punto lasciato solo tty1 ho la visione più aperta
- scopro che il boot andava avanti ma si fermava in maintenance mode in attesa di password di root, come quando si ferma perché vuole un fsck.
- giro un po' vanamente, perché ovviamente non era fsck il problema.
- journalctl -xb non mostrava nulla che potesse fare arrivare al problema
- dato una 'history' e vista qualche mail precedente e confrontato con le macchine gemelle, si scopre l'arcano.
In pratica un collega (che volevo mangiarmi) stava lavorando per un servizio che non partiva al boot, quindi vedeva systemd che evidentemente non conosce a sufficienza (ma chi lo conosce? la differenza è che una cosa che non si conosce non si tocca) ha visto il broken link e l'ha settato al più simile :O, ovvero multi-user.target.wants
Pensando fosse quello il problema ha riavviato per vedere se ora il servizio partiva. E non è più salita la macchina.
In mia assenza hanno pensato di distruggere e ricreare la macchina (la concezione del cloud). Fortuna ho letto la mail e li ho fermati.
Il motivo del broken link è da cercare nell'aggiornamento delle immagini; evidentemente chi l'ha fatto ha fatto un errore di copia incolla o di definizione del playbook di ansible che usiamo per tuning e installazioni.
Interessante l'analize. per quell'host dice
2min 15.752s kdump.service
Gli altri ora non posso postarli, ma il più lungo è sotto i 5 secondi.