SSH를 통해 하나의 Linux 배포판을 다른 Linux 배포판으로 안전하게 교체하는 방법은 무엇입니까?

SSH를 통해 하나의 Linux 배포판을 다른 Linux 배포판으로 안전하게 교체하는 방법은 무엇입니까?

NAS의 Custom Linux를 Arch Linux(자세한 내용은 하단 참조)로 교체할 계획입니다. 물론 모든 사용자 데이터를 유지하고 싶고 (SSH 헤드리스 액세스만 해당) 버그가 있는 펌웨어 재설치가 발생할 수 있으므로 완벽하게 대처하려고 합니다. (또는 장치를 벽돌로 만들 수도 있습니다). 따라서 설치를 실행하지 마십시오(적절한 파일을 다운로드하십시오).아치 리눅스 ARM 버전그리고 사용할 수 있습니다LiveCD 방법으로 chroot) 제대로 준비하지 않고 무엇을 기억해야 합니까? (Arch Linux에 제한되지 않고 원하는 대로 자유롭게 답변해 주십시오.) 보다 정확하게는 다음과 같습니다.

  • 특정 장치의 부팅 프로세스가 어떻게 작동하는지 파악하는 데 어려움을 겪어야 합니까(예: 부트로더의 어떤 부분이 플래시 메모리에 있고 어떤 부분이 하드 드라이브에 있는지), 아니면 배포판의 설치 프로그램에 의존하여 이 문제를 처리할 수 있습니까? 바르게?
  • 특정(전용) 드라이버가 사용되는지 확인하는 방법과 이를 새 설정으로 마이그레이션하는 방법은 무엇입니까?
  • 실수로 삭제되지 않도록 RAID 구성이 보호됩니까?
  • 간단히 재부팅하여 원래 시스템에 계속 액세스하면서 설치가 올바른지 확인할 수 있도록 부팅 프로세스를 가짜로 만드는 방법이 있습니까? 예를 들어chroot그리고kexec어떻게든?
  • 또 어떤 점에 주의해야 합니까?

구체적인 상황은 사용자 정의 Linux를 교체하고 싶다는 것입니다.Buffalo LinkStation Pro 듀얼 코어(armv5tel 아키텍처,비강중심에 대한 설명여기에서 수행 방법에 대한 지침이 더 도움이 됩니다.SSH 루트 액세스 권한 얻기) 그리고아치 리눅스 ARM. 그러나 보다 일반적인 답변이 다른 사람들에게도 더 도움이 될 수 있습니다.

답변1

필요한 기술, 특히 설치된 Linux에 대한 지식이 있으면 더 이상 교체할 가치가 없습니다. 무엇을 하든 이미 설치된 커널을 교체하고 싶지는 않을 것입니다. 그러나 아치 리눅스를 비교적 간단하고 완벽하게 만들 수 있습니다!

개념: NAS의 디렉터리에 아치 리눅스를 설치하고 man chroot이를 chroot()합니다. 이렇게 하면 NAS Linux를 교체할 필요가 없습니다. 아치 리눅스를 설치 및 구성하고 점차적으로 기본 Linux 서비스를 아치 리눅스 서비스로 교체합니다. 아치 리눅스 설치가 더 완전하고 강력할수록 chroot 프로세스를 자동으로 실행할 수 있고, 기본 리눅스에서 제공하는 서비스를 하나씩 종료하며, chrooted 아치 리눅스에서 서비스를 자동으로 시작할 수 있습니다. 완료되면 NAS 시작 프로세스는 다음과 같습니다. exec /sbin/init커널을 로드하고 하드 드라이브를 chroot 환경에 마운트하고 chroot를 Arch Linux로 마운트합니다.

정확한 작업을 직접 알아내야 합니다. b/ci는 아치 리눅스나 NAS 및 해당 운영 체제를 모릅니다. 아치 리눅스를 설치하려는 대상 디렉토리를 생성해야 합니다. 쓰기 가능한 공간이 충분한 장치에 있어야 하며( mkdir /suitable/path/archlinux) 아치 리눅스를 부팅해야 합니다.

cd /suitable/path/archlinux
wget -nd https://raw.githubusercontent.com/tokland/arch-bootstrap/master/arch-bootstrap.sh
bash arch-bootstrap.sh yournassarchitecture

이제 해당 경로에 기본 아치 리눅스가 있습니다. 다음 줄을 따라 루트로 이동할 수 있습니다.

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

글쎄요 source /etc/profile. 이제 현재 쉘이 아치 리눅스에 있고 이를 네이티브 리눅스의 대체품처럼 사용할 수 있습니다. 현재 프로세스 범위 내에 있습니다. 분명히 당신은 물건을 설치하고 아치 리눅스를 구성하고 싶습니다. 현재 셸을 사용하여 실행하면 /etc/init.d/ssh start실제로 Arch Linux 설치의 ssh 데몬이 시작됩니다.

작업이 완료되고 기본 Linux(서비스)를 아치 Linux로 완전히 교체하려는 경우 NAS의 기본 Linux는 더 이상 서비스를 시작하지 않고 대신 위의 chroot 프로세스를 수행합니다. 차이점은 마지막 줄이 입니다 exec chroot . sbin/init.

이는 실제 교체만큼 완전하지는 않지만 완벽합니다. 원래 언급했듯이 필요한 지식과 기술이 있으면 완전한 교체가 필요하지 않으며 가치가 있을 것입니다. IMHO(!).

관련 정보