Raspbian inicializa para uma raiz @ (nenhum) prompt após alterações erradas em / etc

2

Sob um GNU / Linux Raspbian 3.18.7 ARMV71 incorporado dentro de um bonito Raspberry Pi B 2, ao configurar algumas opções 'silenciosas' sob /etc/init.d arquivos com um arquivo agora evidentemente quebrado e estúpido, os seguintes sintomas apareceram:

  1. O Linux inicializou com um prompt root@(none)
  2. O sistema é um 'sistema de arquivos somente leitura',
  3. A maioria das funcionalidades (se não todas), se quebradas.

O erro foi uma linha comentada em /etc/init.d/dphys-swapfile , que deve estar como está. Editá-los, é impossível agora.

Naturalmente, os backups dos arquivos originais estão lá, sob <filename>_bkp nomes, mas o sistema é somente leitura e os comandos de renomeação estão todos desativados.

Como posso editar as linhas 'ofensivas' sob esses arquivos init.d , restaurar os arquivos de backup ou iniciar no modo de recuperação?

As soluções de troca de Raspberry Pi são todas do tipo 'limpar e reinstalar', mas essa é uma questão com mais sabor no Linux, e tenho certeza de que existe outra abordagem de linha de comando para se recuperar dessa estupidez ...

    
por Brethlosze 16.03.2015 / 00:18

1 resposta

1

Se você tiver o prompt root@(none) , você está bem próximo da recuperação: você tem um shell de root. A parte mais difícil da recuperação é descobrir o que está errado, mas se você tiver backups dos arquivos corretos, isso deve ser fácil.

A primeira coisa que você deve fazer é montar alguns sistemas de arquivos. Dependendo do que você precisa fazer, eles podem ou não ser necessários, mas não podem ser prejudicados.

mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t devpts devpts /dev/pts
mount -t tmpfs -o mode=1755 tmpfs /tmp
mount -t tmpfs -o mode=1755 tmpfs /run

Se você não tem /run (não sei se está presente na sua versão do Raspbian), ignore essa linha. Se você não tem /dev/pts , isso é um sintoma de perder mais coisas em /dev ; Eu acho que isso indica que seu sistema tem o devtmpfs embutido, então você deve executar mount -t devtmpfs devtmpfs /dev .

Você também precisa remontar o sistema de arquivos raiz de leitura / gravação. Então inicie um novo shell (o shell que você está obtendo é o ID do processo 1, que causa alguma estranheza na manipulação do sinal e, em particular, faz com que Ctrl + C e Ctrl + Z inoperante).

mount -o remount,rw /
bash

Agora você está pronto para realizar reparos.

Quando terminar, remonte o sistema de arquivos raiz somente leitura (assim como qualquer outro sistema de arquivos que você montou a leitura-gravação) e reinicialize.

mount -o remount,ro /
reboot -f
    
por 16.03.2015 / 00:40