ArchLinux iso 설치 환경으로 들어가는 chroot

ArchLinux iso 설치 환경으로 들어가는 chroot

ArchLinux를 설치하려고 하는데 부팅 가능한 미디어(다행히 메인 디스크 제외)를 연결하자마자 랩톱이 작동하지 않습니다. 내가 이것을 말하는 이유는 내 노트북을 고치고 싶어서가 아니라(왜 이런 일이 발생하는지에 대한 어떤 의견이라도 환영합니다), 내가 왜 다소 복잡해 보이는 일을 하려고 하는지 설명하기 위해서입니다.

내 노트북에는 이전 버전의 Ubuntu가 실행되고 있고 ArchLinux iso는 마운트할 수 있는 디스크에 있습니다. 내 계획은 설치 과정의 반대 방향으로 ArchLinux 설치를 시작하는 것입니다.

그러나 이때부터 나의 무지가 드러나기 시작했다. 나가지다 RTM그러나 기존 설치를 종료하면 두 번째 시도를 할 가능성이 거의 없기 때문에 알아야 할 문제와 일반적인 조언을 주시면 감사하겠습니다.

답변1

Chrooting을 시작하기 전에 이 문제를 우회하는 것을 고려해 보셨나요? 옵션이 완전히 없지는 않습니다.

  1. USB 스틱 또는 USB DVD에서 부팅(컴퓨터가 멈추지 않는 한)

    또는 다른 컴퓨터가 있으면 편리하게 사용할 수 있습니다.

  2. 네트워크에서 부팅합니다(노트북이 이를 지원하는 경우). TFTP 서버를 설정하는 것은 어렵지 않습니다.

  3. 하드 드라이브를 꺼내서 다른 컴퓨터에 설치하십시오.

다음으로 고려해야 할 사항은: 정말로 chroot를 수행해야 합니까? 어떤 디렉터리에서도 설치 프로그램을 실행할 수 없나요?

이제 루트를 지정하는 중입니다. 디스크가 파티션되어 있는지 여부에 따라 많은 것이 달라집니다. 그렇지 않은 경우 위 경로 중 하나를 선택하는 것이 좋습니다(무엇이든 문제가 발생하면 실제로 대체됩니다).

파티션이 있다고 가정 해 보겠습니다.에스에 설치됨/S설치 미디어 콘텐츠와 파티션을 배치할 수 있는 위치시간다음으로 설치됨/시스템을 실행할 때 단계는 대략 다음과 같이 진행되어야 합니다(면책조항:나는 그것을 테스트하지 않았습니다!):

  1. 루프백은 ISO를 어딘가에 마운트합니다.mount -o loop,ro /path/to/iso /some/where

  2. 미디어 콘텐츠를 미디어에서 다음으로 복사합니다.에스:cp -r /some/where/* /S

  3. 단일 사용자 모드로 들어가서 모든 서비스를 닫고 제거합니다.시간그리고에스

  4. 실행 중인 시스템에서 중요한 의사 파일 시스템을 바인드 마운트합니다.

    for fs in /dev /dev/pts /proc /sys; do
        mount -o bind ${fs} S${fs}
    done
    
  5. ivot_root - 루트 디렉터리를 실행 중인 프로세스의 다른 디렉터리로 바꿉니다 exec chroot(이전 디렉터리를 제거하려면 exec가 필요함 /).

    cd /S
    pivot_root . old_root
    exec chroot . command
    
  6. 이전 루트를 제거합니다.

    for fs in /dev /dev/pts /proc /sys; do
        umount old_root${fs}
    done
    umount old_root
    

미디어 콘텐츠가 /일반적으로 상주하는 가장 중요한 의사 파일 시스템으로 마운트해야 합니다. 이전 미디어를 마운트 해제하려는 경우 실제로 마운트된 미디어에 chroot할 수는 없습니다 /. 마운트된 미디어 백업 파일은 이전 루트 디렉터리 아래에 마운트된 파일 시스템에 있어야 하며 루트에서 모든 파일을 마운트 해제해야 합니다. 디렉토리 내용. 그리고 마운트할 다른 ​​대체 파티션이 없으면 이전 루트를 마운트 해제하려고 합니다.시간그 동안 다른 곳에 설치하는 것은 아마도 일부 프로그램이 계속 실행 중인 상태에서 문제를 야기할 뿐입니다. 특히 포맷하기로 결정한 경우.

관련 정보