Eu acidentalmente removi o diretório init.d! O que posso fazer para recuperá-lo?

2

Isso é meio assustador! Eu removi o diretório /etc/init.d! Como posso recuperar este diretório? Eu sei que se eu reiniciar meu computador agora não verei meu linux novamente!

Por favor, conselhos!

    
por user24912 19.11.2011 / 13:10

3 respostas

7

Veja os diretórios /etc/rc?.d. Você encontrará links simbólicos naqueles que apontam para os scripts que estavam em /etc/init.d. Você saberá quais scripts de inicialização precisará restaurar em /etc/init.d. Então, algo como:

$ ls -l /etc/rc?.d

e você verá algo como:

/etc/rc2.d:
total 4
-rw-r--r-- 1 root root 556 2009-01-23 15:01 README
lrwxrwxrwx 1 root root  18 2009-10-27 00:05 S10sysklogd -> ../init.d/sysklogd
lrwxrwxrwx 1 root root  15 2009-10-27 00:05 S11klogd -> ../init.d/klogd
lrwxrwxrwx 1 root root  13 2009-10-27 00:05 S16ssh -> ../init.d/ssh
lrwxrwxrwx 1 root root  18 2010-06-07 22:04 S20bluepill -> ../init.d/bluepill

Para obter uma cópia desses scripts, faça o que o Martin sugere ou, alternativamente, crie outra máquina (em um computador reserva ou em um ambiente virtual) usando a mesma distribuição Linux e copie o / etc / init relevante. d arquivos de lá; você pode ter que instalar pacotes adicionais. Este último pode ser mais fácil.

Depois de copiar os arquivos, você deve executar o "ls -l /etc/rc?.d" novamente. Os links simbólicos quebrados agora devem estar lá. Se houver links quebrados, descubra quais pacotes os fornecem, etc., instale-os na VM e continue fazendo isso até que as coisas pareçam corretas.

Depois disso, você provavelmente ficará bem, embora esteja preparado para usar o console na máquina caso algo dê errado.

    
por 19.11.2011 / 14:24
3

Instale o mesmo distri Linux em uma VM, se você tiver serviços extras como o Apache, etc., instale-os também e copie o diretório /etc/init.d para a sua máquina.

    
por 19.11.2011 / 14:24
2

Talvez você encontre a infraestrutura do desenvolvedor (rastreadores de problemas, repositórios, ...) para sua distribuição e faça o checkout dos scripts.

Isso funcionaria para scripts init básicos. Para vários scripts de inicialização do programa, você pode fazer o checkout dos scripts de inicialização para cada programa ou simplesmente reinstalar o pacote apropriado.

    
por 19.11.2011 / 13:12