Como substituir com segurança uma distribuição do Linux por outra via SSH?

6

Estou pretendendo substituir o Linux personalizado do NAS pelo Arch Linux (detalhes na parte inferior), claro, desejando preservar todos os dados do usuário e (devido ao acesso sem cabeça do SSH) tentando ser à prova de erros desde Um erro pode exigir a reinstalação do firmware (ou até mesmo bloquear o dispositivo). Então, ao invés de rodar a instalação (baixando o release ARM do Arch Linux apropriado e provavelmente usando o chroot na abordagem do LiveCD ) sem os preparativos apropriados, o que devo ter em mente? (Por favor, sinta-se livre para responder sem restrições ao Arch Linux) Mais precisamente:

  • Do I somehow have to bother with figuring out how a specific device's boot process works (e.g. which parts of the bootloader reside on the flash memory and which ones are on the harddisk) or can I rely on the distribution's installer to handle this correctly?
  • How can I determine whether some (possibly proprietary) drivers are used and how can I migrate them into the new setup?
  • Is the RAID configuration safe from accidental deletion?
  • Is there a way to fake the booting process so I can check for correct installation while the original system remains accessible by simply rebooting? E.g. using chroot and kexec somehow?
  • What else should I be aware of?

O caso específico é que eu quero substituir o Linux personalizado de um Buffalo LinkStation Pro Duo (arquitetura armv5tel, a descrição nas-central é um pouco mais útil aqui e também fornece instruções sobre como obter acesso root SSH ) com < a ARM do Arch Linux href="http://archlinuxarm.org/"> Mas uma resposta mais geral também pode ser mais útil para os outros.

    
por Tobias Kienzler 07.01.2013 / 22:19

1 resposta

9

com a habilidade necessária e especialmente conhecimento sobre o linux instalado, não vale mais a pena substituí-lo. e o que quer que você faça, você provavelmente nunca irá querer substituir o kernel já instalado. no entanto, você pode ter seu arch linux relativamente fácil e à prova de erros!

o conceito: você instala o arch linux em algum diretório no seu NAS e chroot ( man chroot ) nele. Dessa forma, você não precisa substituir o nas linux. você instala e configura seu arch linux e substitui os serviços do linux nativo pelos serviços arch linux, passo a passo. quanto mais completa e potente for a sua instalação do arch linux, você poderá automatizar o procedimento de chrooting, desligando os serviços fornecidos pelo linux nativo, um por um, enquanto automatiza o início dos serviços dentro do linux de arco chroot. quando terminar, o procedimento de inicialização do seu NAS funciona assim: carregue o kernel e monte os hdds, chroot no arch linux, exec /sbin/init em seu ambiente chrooted.

você precisa descobrir o doibg preciso, b / c eu não conheço nem o arch linux nem o seu NAS e seu sistema operacional. você precisa criar o diretório de destino no qual deseja instalar o arch linux; ele precisa estar em um dispositivo com espaço disponível gravável suficiente ( mkdir /suitable/path/archlinux ), então você precisa inicializar seu arch linux

cd /suitable/path/archlinux
wget http://tokland.googlecode.com/svn/trunk/archlinux/arch-bootstrap.sh
bash arch-bootstrap.sh yournassarchitecture

Agora você tem um arch linux básico nesse caminho. Você pode chorar dentro das linhas de

cp /etc/resolv.conf etc/resolv.conf
cp -a /lib/modules/$(uname -r) lib/modules
mount -t proc archproc proc
mount -t sysfs archsys sys
mount -o bind /dev dev
mount -t devpts archdevpts dev/pts
chroot . bin/bash

Então você deve source /etc/profile . Agora seu shell atual está no seu arch linux e você pode usá-lo como se tivesse substituído o seu linux nativo ... o que você tem para o escopo do seu processo atual. Obviamente você quer instalar coisas e configurar seu arch linux. Quando você usa seu shell atual para executar /etc/init.d/ssh start você está realmente iniciando o daemon ssh da sua instalação do arch linux.

Quando estiver pronto e você realmente quiser substituir inteiramente o seu Linux nativo (serviços) pelo arch linux, o Linux nativo do seu NAS não inicia mais nenhum serviço, mas executa o procedimento chroot acima com a diferença de que a última linha é exec chroot . sbin/init .

Isso não é tão completo quanto um substituto real, mas é tão infalível quanto possível. e como afirmado inicialmente, com o conhecimento e habilidade necessários para isso, IMHO (!), um substituto completo não é necessário e vale a pena.

    
por 07.01.2013 / 23:23