Sparc/Netboot/ko

이 글은 젠투/SPARC netboot 설치 이미지 활용을 위해 네트워크 부팅 서버 설정을 안내합니다.

도입부
이 문서는 썬 마이크로 시스템즈 SPARC 또는 울트라 스팍 기반 컴퓨터용 네트워크 부팅 환경 설정 방법을 설명합니다. 이 문서는 여러분이 네트워크 부팅 서버로 가동할 젠투 리눅스 컴퓨터를 이미 갖추고 있다고 가정합니다.

넷부트 서버와 클라이언트는 동일한 서브넷에 있어야 하는데 ARP 프로토콜이 보통 다른 네트워크 서브넷으로 전달하지 못하기 때문입니다.

네트워크 부팅 과정에서 일어나는 일의 대략적인 내용은 다음과 같습니다:


 * 1) 클라이언트 머신은 IP 주소를 요청하기 위해 역방향 ARP(RARP) 요청을 보냅니다.
 * 2) 서버 머신은 IP 주소를 클라이언트에 응답으로 반환합니다.
 * 3) 클라이언트에서 TFTP 프로토콜을 이용하여 RARP 서버에서 부팅 이미지 다운로드를 시도합니다.
 * 4) 이미지를 다운로드하고 나면 네트워크 부팅 클라이언트에서 이미지로 부팅합니다.

이 개요 내용에 따라 역방향 ARP 데몬과 TFTP 데몬 프로그램을 설치해야합니다.

역방향 ARP 데몬
역방향 ARP 데몬은 이미 시스템에 설치되어 있습니다. 꾸러미의 일부입니다.

rarpd 일반 요소 설정 :

파일을 설정해야합니다. 이 파일에는 어떤 호스트가 요청했을 경우 에서 응답해야 하는지, 어떤 주소로 응답해야 하는지 나타냅니다.

형식읜 NIC의 MAC 주소이며 머신은 네트워크 부팅을 수행하고 이 언급한 호스트 이름을 부여받습니다. 공백은 MAC 주소를 호스트 이름과 구분하며 각 항목은 한 줄에 기입합니다. 다음은 sparc-netboot.gentoo.org 이름을 가진 호스트에 대한 예제입니다:

에 호스트를 추가하려 한다면, 요청을 받을 때마다 파일을 점검하므로 서비스를 다시 시작할 필요가 없습니다.

호스트 이름 해석 :

에 있는 각 항목에 호스트 이름이 붙어있다면 네트워크 부팅 서버에서는 각 호스트 이름을 IP 주소로 해석할 수 있어야합니다. 두가지 방법으로 해결할 수 있는데, 파일을 쓰거나 네트워크 부팅 서버에서 사용하는 이름 서버를 활용하는 방법입니다.

호스트 이름을 해석하는 항목은 네트워크 부팅 서버에 젠투를 설치했을때 이미 본 것과 매우 유사해보입니다. 우리 예제에서는 sparc-netboot.gentoo.org 호스트의 IP 주소가 10.0.1.15라고 가정하며 항목의 모습은 다음과 같습니다:

이름 서버를 활용한다면 DNS 서버 관리자는 호스트 이름에 대한 레코드를 등록해야합니다. sparc-netboot.gentoo.org의 경우 적당한 IP 주소를 가리키려면 DNS 서버 관리자에게 문의하거나 DNS 서버의 DNS 프로그램 문서를 찾아 엔트리에 추가하는 방법을 알아보십시오.

rarpd 설정

우선 에 사용할 옵션을 결정해야합니다. 우리가 다룰 옵션 외에 다른 옵션도 있지만, 에 대한  스크립트가 현재 없으면  서비스를 부팅할 때마다 활성화하려는 경우 에 추가해야 하기 때문에, 여기서 다룰 옵션으로 시작합니다. 예제 설정 항목은 다음과 같습니다:

위의  옵션에 대한 설명은 다음과 같습니다(맨 페이지에서 가져온 그대로입니다):


 * 자세하게 뿌림.
 * 부팅 이미지가 있는지 여부는 확인하지 말고 데이터베이스와 DNS를 활용하여 MAC 주소를 유효한 IP 주소로 변환할 경우에 응답할 것.
 * eth0은 에서 바인딩해야 할 인더페이스를 나타냄.

더 많은 옵션은 를 참고하십시오.

tftpd 데몬
TFTP 데몬에 대해 두 가지 선택지가 있는데, 하나는, 다른 하나는 입니다. 제대로 된 기능을 사용하려면 이 중 하나를 설치해야합니다.

tftpd 일반 요소 설정

각 TFTP 데몬은 tftp 클라이언트에 내용물을 전달할 디렉터리가 필요합니다. 우리가 이 설명서에서 언급한 목적으로 사용할 디렉터리는 입니다. 이 디렉터리는 클라이언트 입장에서 요청에 대한 응답을 받을 때 루트 디렉터리처럼 나타납니다. 또한 TFTP 데몬을 nobody 사용자 및 그룹으로 실행하도록 설정하겠습니다.

현재 없는 디렉터리를 선택했다면 명령으로 디렉터리를 만들어야 합니다. 디렉터리를 만드는 예제 명령은:

다음 의 소유주를 바꾸어 소유 사용자와 소유 그룹을 nobody로 설정해야합니다:

atftp 데몬
우선 다음과 같이 꾸러미를 설치하십시오;

atftp를 설치하고 나면 설정해야합니다. tftpd 서비스를 부팅할 때 시작하려 한다면, , 자체에 가 없으니 추가해야합니다. tftpd 서비스를 관리할 때 또는 를 이용하려 한다면 관련 맨 페이지를 참조하십시오.

하단은 에 있는 atftpd 항목 예제입니다.

위에 대한 설명은 다음과 같습니다(맨 페이지에서 가져온 그대로입니다):


 * 는 로깅 수준을 설정하거나 끌어올립니다. 인자를 붙이지 않으면 현지 값을 1로 증가합니다. 기본은 LOG_NOTICE입니다. 로그 레벨 옵션은 syslog(3)을 참고하십시오 현재 값 범위는 0 (LOG_EMERG) 부터 7 (LOG_DEBUG)까지입니다.
 * 은 데몬으로 실행하도록 하는 옵션입니다. atftpd를 inetd 기반으로 실행하는 경우에는 이 옵션을 사용하지 마십시오.

더 많은 옵션은 를 참고하십시오.

tftp-hpa 데몬
우선 꾸러미를 설치하십시오:

tftp-hpa는 스크립트와 관련   설정 파일이 딸려옵니다. 에서 INTFTPD_PATH 변수와 INTFTP_OPTS 변수 값이 아래와 일치하는지 확인하십시오:

TFTP 데몬은 스크립트로 시작할 수 있습니다:

더 많은 옵션은 를 참고하십시오.

클라이언트에서 활용할 tftpboot 이미지 준비
네트워크 부팅에 사용할 이미지를 가지고 있는지 확인하십시오. 적당한 이미지를 받을로컬 젠투 배포 파일 미러를 확인하십시오. 이미지를 활용하여 부팅해보겠습니다.

이미지를 받았으면 에 복사하십시오:

이제 클라이언트에서 TFTP에 네트워크 부팅을 요청할 때, 현재 IP 주소를 16진수로 나타낸, 그리고 플랫폼 이름이 붙은 파일을 찾습니다. 16진수는 대문자로 사용하십시오.

여기 예제에서 10.0.1.15 IP 주소 대신 동일한 16진수 표기를 살펴보도록 하겠습니다:

네트워크 부팅 클라이언트의 예제에서 tftp 부팅을 진행할 때 파일을 찾을 것입니다.

정말 (저처럼) 엄청나게 귀찮고 게으르다면 네트워크 부팅 서버 로그로부터 클라이언트가 찾고자 하는 파일 이름을 찾을 목적으로 네트워크 부팅을 처리할 수 있습니다.

와 여러분이 선택한 TFTP 데몬이 현재 동작중인지 확인하시고 클라이언트 넷부팅에 설명한 대로 호스트를 통해 부팅하십시오.

boot net 명령을 실행하고 나면 클라이언트가 멈춘것 처럼 보일 것입니다. 이때 네트워크 부팅 서버에서 에 대한 시스템 로그를 살펴보십시오.

와 가 실행중인 네트워크 부팅 서버에서의 로그 항목 예제는 다음과 같습니다:

위의 경우 로그 항목에서 나타난 filename 다음의 파일 이름은 입니다.

위의 방법을 통해 어떤 네트워크 부팅 이미지를 사용하는지 찾아보았고, 여러 대의 머신에서 동일한 네트워크 부팅 이미지를 사용할 수 있도록, 16진수 값을 이용하여 파일에 소프트 링크를 걸어둘 수 있습니다. sparc64 예제 호스트와 를 활용하여 소프트 링크를 만들려면 다음 명령을 사용하십시오:

이제 네트워크 부팅 준비가 다 되었습니다!

클라이언트 넷부팅
SPARC의 OpenBoot PROM(OBP)에서 다음 명령을 입력하십시오:

이런 머신에서 다른 방법이 있다면:

이 조치를 통해 네트워크 부팅 과정을 초기홯바니다. 16진수 숫자를 일관되게 바꿨을 때 바꾼 결과가 나타나야 합니다. 이미지 불러오기가 끝나면 커널을 취하고 OS 부팅 과정을 시작합니다. sparc64 설치 이미지를 활용하는 경우 어떤 설치 과정을 시작할 수 있는지 나타난 쉘 프롬프트 상태에서 대기합니다.

문제 해결
필수 프로그램 빌드

네트워크 부팅 서버가 젠투 리눅스 시스템이고 rarpd와 tftpd 꾸러미를 설치한 다음에 문제가 발생했다면 젠투 포럼과 젠투 버그질라에서 이미 다른 사람이 발견한 문제인지 확인하십시오. 만약 그렇지않거나 발견한 해결책이 도움이 되지 않는다면 새 문제점 보고서를 작성하십시오.

boot net 명령을 실행했는데 멈춰있는 것 같네요.

불러올 파일이 tftpboot 서버에 없는 것 같습니다. SPARC 시스템에서는 다음처럼 나타날수도 있습니다:

클라이언트가 필요로 하는 파일이 에 있는지 다시 확인하십시오. 시스템 로그를 살펴보고 클라이언트가 요청하는 파일 이름을 확인할 수 있습니다. 또한 이 파일이 있으면 클라이언트에서는 불러오려합니다. 때로는 파일이 원래 빠져있을 경우 파일 다운로드 메시지가 뜬 이후 멈춥니다. 이 문제를 해결하려면 OBP 프롬프트로 돌아가서 boot net 명령을 다시 실행하십시오. 그러면 호스트에서 tftpboot 이미지 다운로드를 시작하고 OS를 부팅합니다.

네트워크 부팅을 하려는데요, 항상 "Timeout waiting for ARP/RARP packet" 메시지가 나타나네요.

몇가지 다른 문제 때문에 일어날 수 있는 문제입니다:


 * 1)  에 질문을 해결해줄 항목이 있는지 확이하십시오. MAC 주소가 잘못됐거나 네트워크 부팅 서버에서 클라이언트의 호스트 이름을 해석할 수 없다면 필요한 정보로 응답할 수 없습니다.
 * 2) 네트워크 부팅 서버와 클라이언트가 자유롭게 RARP 트래픽을 처리할 수 있도록 연결했는지 네트워크 허브 또는 스위치를 확인하십시오. 만약 클라이언트 요청이 서버에 도달하지 않거나 그 반대의 경우라면, 호스트는 그 다음 동작을 계속 진행할 수 없습니다.
 * 3) RARPD 응답이 없는건 어떤 서비스도 대기중이 아니기 때문입니다.  서비스를 띄워놓았고 동작중인지 확인하십시오.
 * 4) 클라이언트의 NIC가 네트워크 허브 또는 스위치에 연결한 것 같지 않습니다. NIC 및 네트워크 허브 또는 스위치의 포트에 불이 들어왔는지 확인하십시오. 불이 들어와있으면 OBP에서  명령을 내려 tpe-link-test? 의 설정 값을 확인하십시오. 와 같은 결과가 떠야합니다. 첫번째 내용은 매개변수 이름, 두번째 내용은 매개변수 현재 값, 세번째 내용은 매개변수의 기본값을 나타냅니다. 위 예제에서 현재 값이 false로 되어 있음을 확인할 수 있으며, 클라이언트와 네트워크 허브 또는 스위치가 RARP 요청을 처리하기 전에 연결을 처리할 수 있는지 검사를 안한다는 의미가 되겠습니다. 종종 이 설정이 문제를 야기할 수 있습니다.

tpe-link-test?의 값을 바꾸려면 OBP 프롬프트에서 다음 명령을 실행해보십시오:

이제 tpe-link-test? 값을 true로 설정했습니다. 클라이언트의 네트워크 부팅을 다시 시도해보십시오.