O ponto de reboot -f
é ignorar todas as etapas de desligamento executadas pelo sistema init em situações em que essas etapas falham ou se espera que falhem :-). Eu recomendo strongmente contra usá-lo fora desse caso.
Você estaria correto em assumir que a desmontagem dos sistemas de arquivos de maneira ordenada é uma dessas etapas em upstart
.
( systemd
seria uma bola de cera totalmente diferente, e os efeitos podem variar ... Qual é outra razão pela qual você deve ser cauteloso em cutucar reboot -f
. É um detalhe bastante obscuro, e claramente você não encontre qualquer conexão documentada entre ela e o efeito observado por você.
AFAICT, o comentário em man 2 reboot
que se refere ao kernel 2.1.122 e a arquitetura antiga do i386 permanece verdadeiro. Pelo menos a partir do kernel v4.17, e a nova arquitetura x86 unificada para 32 e 64 bits.
O objetivo do kernel para uma reinicialização a quente ou a frio é determinado por reboot_mode
. E o lugar somente está definido, é pela opção do kernel reboot=
, e. reboot=cold
.
Como você se preocupa com isso e o padrão não parece ser documentado, o primeiro passo ingênuo seria tentar especificar isso. Isso parece uma opção de inicialização pura, que não pode ser alterada em um sistema em execução.
Se você olhar o último link, uma possibilidade teórica é que um dos tipos de reinicialização na cadeia de fallback não funcionou, depois que todos os outros scripts upstart
init foram parados ( ou vice-versa??). Assim, invocar reboot -f
manualmente usa um tipo de reinicialização diferente e isso varia em como ele respeita reboot_mode
. (No seu sistema específico?).
Se você conseguir relatar uma diferença entre o comportamento de reinicialização do Linux e do Windows, os desenvolvedores do kernel podem estar interessados. Embora eles estivessem mais interessados se o Linux estivesse falhando completamente com a reinicialização :). Eu gostaria de confirmar a suposição original acima, recompilando com algumas chamadas de printk () e sleep e descobrir quais tipos de reinicialização reais estão sendo usados ...
Existe também a possibilidade de passar os diferentes tipos de reinicialização na opção de inicialização. Parece que você estaria fazendo um palpite indireto ... mas parece que passar por uma opção de reinicialização específica é a melhor esperança, a menos que esse trecho de código do kernel ganhe alguma correção inteligente para o seu sistema.