Como forçar o systemd a entrar no modo de emergência?

4

Estou usando o Opensuse 12.3.
systemd-195-13.45.1.x86_64

Após alguns problemas ao adicionar um disco no btrfs mount, estou tentando colocar meu sistema no modo de emergência (que considero todos os serviços interrompidos e todas as montagens capazes de desmontar).

Mas eles simplesmente não funcionam !!!

Como forçar o systemd a entrar no modo de emergência? (ou algo equivalente ao modo único init) e forçar o modo de emergência no momento da inicialização (menu grub)?

Primeira tentativa:
eu uso da maneira antiga: init 1no console ...
Eles me mostram a tela de emergência, solicitam a senha do root, mas após esse re-login, ainda não consigo desmontar o meu btrfs FS (diz que está em uso). (com lsof não encontrei nada usando essas montagens).
O runlevelcomando retorna nível 3 ... não 1 ...

Segunda tentativa:
executo o comando systemctl emergencyque me mostra a "tela de emergência", solicito a senha do root ... e, finalmente, mostro-me runlevel = 1. Mas ainda não sou capaz de desmontar meus btrfs FS ....

Terceira tentativa:
Reinicialize a máquina e, na tela do grub, digite 'e' para adicionar a palavra "emergência" nas opções. Onde eles me enviam uma mensagem como "palavra de emergência inválida". Eu tento com a palavra "única" e fico com o mesmo comportamento ....


Minha solução final foi remover a montagem automática do fstab e reiniciar o sistema no modo normal. Então finalmente consegui executar minha verificação no btrfs Fs ... mas é muito chato porque todos os serviços que dependem dessa montagem iniciam com erros ...

ceinmart
fonte
1
verifique os logs do sistema - init 1não está funcionando, portanto deve haver algo sério acontecendo.
suspectus
2
Você não descreveu a natureza do problema original. Se o sistema não puder desmontar o disco por algum motivo estranho, ele não poderá desmontar o disco. A alteração dos níveis de execução pode ter a intenção de tentar fazer certas coisas, mas o modo de emergência não é "corrigir automaticamente todos os meus problemas" . Então: você seria melhor fora de fazer uma pergunta descrevendo seus problemas com o disco, não systemd, etc.
Goldilocks
Olá @goldilocks, não quero que o modo de emergência "resolva todos os problemas", mas como o próprio nome diz, é para emergências! Considerando isso, suponho que eles devem ser capazes de forçar todos os serviços / processos a liberar qualquer sistema de montagem ... (há pelo menos anos, o init 1sempre resolve isso por mim). Será útil saber se systemctl emergencydeve atender a situações como essa (ou devo usar outro modo?) E, a qualquer dica, como forçá-lo na próxima reinicialização e evitar no momento da inicialização alguém usar o FS antes de executar meus materiais ...
ceinmart

Respostas:

2

Existem 4 destinos no systemd. o que você queria é emergency.target Acho que você pode tentar estas etapas:

  1. reinicie o sistema
  2. interrompa a contagem regressiva do menu do carregador de inicialização pressionando qualquer tecla
  3. mova o cursor a entrada a ser iniciada
  4. pressione e para editar a entrada atual
  5. mova o cursor para a linha que começa com linux16 . Esta é a linha de comando do kernel.

6. anexar systemd.unit = desejado.target

  1. pressione ctrl + x para inicializar com essas alterações.

Este é o método do rhel7. Eu acho que é talvez semelhante com suse. Depois de entrar no modo de emergência, a senha root ainda é necessária. boa sorte:)

catjing
fonte
0

Depois de ler os comentários do @suspectus e do @goldilocks, embora já "resolva" meu problema original com o btrfs, testei novamente colocando meu sistema no modo de emergência.

Estou considerando ter entendido mal a diferença entre o modo de emergência do systemd com o modo único do SystemV .
Mas como não tenho certeza da minha resposta e do meu entendimento ..., não verificarei minha resposta como correta por enquanto.

O modo de emergência, fecha e encerra todos os serviços para sempre e não altera o nível de execução e não desmonta nenhum volume / FS.


Sobre o meu problema de raiz que engana minha mente, onde acho que não entrou no modo de emergência antes ...

Descubra que não serei capaz de desmontar meu FS porque preciso desmontá-lo com o systemctlcomando:

systemctl stop dados.mount

Onde "dados" é o meu btrfs FS / dados. Então eles desmontam efetivamente.
O estranho, não há como identificar por que o unmountcomando informa que o FS está "em uso" e nada é mostrado no lsofcomando.
Provavelmente alguma trava interna entre o umount / systemd ...

ceinmart
fonte
1
O erro "em uso" também pode ocorrer se houver submontagens no ponto de montagem btrfs. Observando man systemd.mounte man systemd, systemd pode estar lidando com isso automaticamente.
sourcejedi