Reverter para limpar o debian

3

Eu tenho um servidor remoto, que é como um "sandbox", onde estou testando todos os novos softwares antes de instalá-los em servidores de produção. Eu queria limpar um pouco este sistema, mas acidentalmente deletei todo o conteúdo / var. Como eu posso recuperá-lo, ou reverter para limpar debian, se eu não posso reinstalar o sistema, porque eu tenho apenas conexão ssh e sem acesso físico?

    
por arts777 09.05.2011 / 18:43

3 respostas

2

O que eu faria seria o seguinte:

Obtenha uma distribuição do Linux que possa ser executada inteiramente na RAM. Neste caso, vamos supor que você usará o PLD Rescue Linux (disponível aqui: link ). Certifique-se de usar a arquitetura da CPU correta (x86 ou x86_64).

Monte o iso em algum lugar (por exemplo, / mnt) e copie o kernel e initrd para seu / boot:

cp /mnt/boot/isolinux/vmlinuz /boot/vmlinuz-rescue (vmlinuz6 for x86_64)
cp /mnt/rescue.cpi /boot/rescue.cpi (rescue6.cpi for x86_64)

Configure seu gerenciador de inicialização para inicializar o sistema de recuperação ao invés do Debian. A linha de comando do kernel deve ser:

initrd=/boot/rescue.cpi root=/dev/ram0

Lembre-se de torná-lo padrão, você não poderá selecioná-lo, pois você não tem acesso físico ou KVM.

Agora reinicie seu sistema. Espere algum tempo até o ping voltar e ssh na sua caixa como root. A senha é: pld

Agora a diversão começa. Formate todas as suas partições do sistema - tudo o que foi montado anteriormente em /, / var /, / boot etc. É claro que você pode sair / sozinho em casa. Por exemplo, se o seu sistema consiste em um único sistema de arquivos em / dev / sda1, execute:

mkfs.ext4 /dev/sda1

Monte tudo em / mnt. Crie pontos de montagem apropriados, se necessário.

Agora você irá inicializar um sistema Debian básico:

debootstrap squeeze /mnt

Isto irá instalar o Debian Squeeze em / mnt. Espere tudo terminar (vai demorar um pouco). Sistemas de arquivos virtuais de ligação de montagem:

mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /dev /mnt/dev

E chroot no seu novo ambiente:

chroot /mnt /bin/bash

Uma vez no chroot, instale o kernel do Linux e o bootloader apropriado:

apt-get update
apt-get install linux-image-2.6-i686 (or linux-image-2.6-amd64)
apt-get install grub-pc

Você também precisará do meta-pacote SSH:

apt-get install ssh

Agora edite / etc / fstab, / etc / hostname e / etc / hosts para atender às suas necessidades. Lembre-se de criar / etc / network / interfaces com a configuração de rede apropriada. Verifique novamente se há erros. Você precisará de rede, já que só pode usar SSH na caixa.

Configure uma senha para o root:

passwd

Instale seu bootloader no MBR do seu disco rígido. Se você instalou o GRUB2 como no meu exemplo, execute:

update-grub
grub-install /dev/sda

Deixe o chroot digitando "exit" e desmonte tudo em / mnt. Reinicie e ore ao Deus de Ping. ; -)

AVISO:

A reinstalação do sistema operacional com acesso somente SSH é sempre perigosa, pois você não tem nenhum meio de depurar o sistema danificado sem a rede funcional. Primeiro pratique em uma máquina virtual em seu PC e aplique essas instruções ao seu servidor.

    
por 09.05.2011 / 19:23
3

Pegue o debootstrap package . O Debootstrap pode instalar um Debian inicial em um diretório em algum lugar, e você pode reconstruir um pouco do /var baseado nisso.

Você não poderá instalar o pacote normalmente, é claro. Faça o download e descompacte manualmente.

dpkg-deb -x debootstrap_*.deb /
mkdir /chroot
debootstrap squeeze /chroot

Agora recrie pelo menos a estrutura de diretórios e permissões, ou apenas copie /chroot/var atacado.

É claro que você não recuperará seus dados, mas deverá obter um sistema mancando. Em particular, você não poderá usar as ferramentas de gerenciamento de pacotes a menos que você repare o banco de dados de pacotes, e isso é muito trabalho. Eu aconselho a reinstalação assim que você conseguir acesso físico.

    
por 09.05.2011 / 21:11
2

Se o seu servidor estiver hospedado em uma empresa de hospedagem, eles podem fornecer alguma maneira de reinstalar remotamente o sistema operacional ou de inicializar um disco de recuperação? Talvez valha a pena verificar com eles se isso é possível? (Você não especificou se o servidor está hospedado em uma empresa ou se é simplesmente uma caixa remota fora do alcance?)

A empresa na qual eu hospedo meu servidor dedicado fornece uma interface da Web e um aplicativo de desktop com os quais você pode gerenciar determinados aspectos do servidor e da conta de hospedagem. Isso inclui controle sobre a fonte de inicialização da máquina, para que eu possa inicializar uma de uma seleção de discos de recuperação, etc., bem como limpar e reinstalar com um novo sistema operacional (como em, usando o mesmo método usado para provisionar o servidor com um sistema operacional específico quando você faz o pedido do servidor pela primeira vez).

    
por 09.05.2011 / 19:38

Tags