Ho installato Kubuntu 13.10 su un laptop HP DV6000.
Mi sono accorto che in fase di spegnimento, il pc va in
stallo, rimanendo bloccato sul messaggio:
mount: / is busy
indagando sui vari log, ho scoperto essere colpa di network-manager
che tiene bloccato il tutto, impedendo al sistema di completare lo
shutdown.
In effetti, se prima disconnetto la rete e poi spengo,
tutto va a buon fine.
Googlando ho scoperto essere questo un bug noto.
Intervenendo sui runlevel del sistema, si può automatizzare il
tutto con uno script, che viene lanciato poco prima dello spegnimento.
aprire un terminale:
kate connection_down.sh
e mettere il seguente codice:
#!/bin/bash
## the script put all network interfaces down before halt,
## except 'lo'
for x in /sys/class/net/*; do
interface="${x##*/}"
if [ interface!='lo' ]
then
sudo ifconfig $interface down
echo "+++ $interface is down!" ## debug
fi;
done
assegnare i permessi in esecuzione
chmod +x connection_down.sh
spostare lo script in /etc/init.d
sudo mv connection_down.sh /etc/init.d/
Ora i runlevels di linux:
Level Purpose
0 Shut down (or halt) the system
1 Single-user mode; usually aliased as s or S
2 Multiuser mode without networking
3 Multiuser mode with networking
4 Free
5 Multiuser mode with networking and the X Window System
6 Reboot the system
mi interessano lo spegnimento (0) ed il reboot (6).
Piccola parentesi:
Dentro ogni runlevel (da /etc/rc0.d ad /etc/rc6.d) i link agli script,
vengono eseguiti in ordine alfabetico, quindi dobbiamo linkare il nostro
script nelle directory specifiche, utilizzando un nome che venga chiamato
al momento giusto.
Siccome il “kill all remaining processes” durante la fase di shutdown, viene
eseguito nel file S20sendSIGS, e considerato il file S10* che si occupa
di unattended upgrades (la connessione deve essere ancora attiva),
chiameremo i link al nostro script con S11*, così varrà chiamato
a metà strada tra i due citati.
quindi:
sudo ln -s /etc/init.d/connection_down.sh /etc/rc0.d/S11connection_down
per lo shutdown e
sudo ln -s /etc/init.d/connection_down.sh /etc/rc6.d/S11connection_down
Questo è tutto.
Per controllare che tutto vada a buon fine, vedendo a video che non ci sia il messaggio
iniziale, modifichiamo il grub in modo da poter leggere quello che accade:
sudo kate /etc/default/grub
modifichiamo la riga
GRUB_CMDLINE_LINUX=”nosplash”
sudo update-grub
Allo spegnimento sembra tutto risolto.
Commenti recenti