Dell R710에 FreeBSD설치를 원격으로 하는 방법에 대해서 간단히 설명합니다. 생각보다 원하는 대로 진행되지 않아서 시행착오를 일부 겪었습니다.

다음 환경에서 진행 합니다.

  • Dell R710 에 FreeBSD 13.0-CURRENT 설치. 12나 11 릴리즈도 동일 방법으로 가능 합니다.
  • DRAC 으로 원격 콘솔에 접속해서 설치
  • Virtual Console과 Virtual CD사용에 윈도우와 IE 필요 (MacOS는 콘솔 접속만 가능)

FreeBSD 이미지 다운로드하기

13.0-CURRENT (또는 현재의 -CURRENT 버전)은 다음 사이트에서 받을 수 있습니다. 이번에는 Virtual CD를 통해 설치할 예정이므로 CD 이미지를 받습니다.

한국에서는 ftp.freebsd.org 대신에 ftp.kr.freebsd.org 또는 ftp2.kr.freebsd.org 에서 받으면 빠르게 받을 수 있습니다.

받을 수 있는 이미지는 플랫폼과 이미지 크기에 따라 다릅니다. 지금은 인텔 머신에 설치하는 것이므로 amd64를, 원격으로 CD부팅만 되면 나머지는 네트워크 설치로 진행할 것이므로 bootonly 이미지를 받습니다. 가까이서 접속하는 거라면 설치 파일이 다 들어 있는 disc1 이미지를 받아도 좋을 것입니다. 이번에는 bootonly 이미지를 받습니다. 동일한 파일에 .xz 가 되어 있는 것은 xz 로 압축되어 있는 버전이므로 다운로드받아서 xz로 압축을 풀어 사용하면 됩니다.

또 하나 주의할 점은 CURRENT 설치의 경우 항상 최근 날짜의 이미지를 받아야 한다는 점입니다. 이 snapshot 디렉토리는 일주일 단위로 갱신 되므로 일주일 전의 bootonly 이미지를 받아서 설치하려 하면 설치 과정에서 오류가 납니다. 릴리즈의 경우는 그런 일은 없으니 불안하면 릴리즈 버전을 받아서 설치하기 바랍니다.

DRAC 으로 원격 콘솔 연결

Dell 서버에는 DRAC (Dell Remote Access Card)라고 하는 원격 콘솔 접속용 카드가 있습니다. 이걸 사용하면 OS 콘솔에 원격으로 접속이 가능하며 이 상태로는 OS설치 이전의 시스템 설정등을 모두 할 수 있으므로 매우 편리한 도구입니다. 일단 여기 원격으로 접속이 가능하도록 설정이 되어 있다고 할 때, 사이트에 접속하기 위해서는

로 접속해서 사전에 설정된 ID와 암호로 로그인합니다. 인증서가 사설 인증서의 경우에는 브라우저에서 경고가 나오겠지만 무시하고 진행하면 됩니다.

이후 DRAC에 접속 가능하면 아래 화면에서 Virtual Console Preview 오른쪽 하단의 Launch를 눌러서 콘솔에 연결 합니다. Console/Media 메뉴에서도 접속 가능합니다.

drac

Virtual Console 은 자바 어플리케이션이므로 적절한 자바 실행 권한이 필요 합니다. 일반적으로는 윈도우 환경 + 32비트 인터넷 익스플로러로 접속하는 것이 가장 쉽게 접속하는 방법입니다만, 이 글 끝에 MacOS에서의 Virtual Console 접속 방법도 설명 합니다. 단 실제 설치에는 Virtual Media 를 설정해야 하는데 MacOS에는 그게 되지 않아서 아래 설치는 MacOS X에 설치된 VMWare Fusion 에 설치된 윈도우 가상 머신에서 진행하였습니다.

Virtual Media에 .iso 파일 연결

이제 받아 놓았던 iso 파일을 Virtual Console 의 Virtual Media -> “Add Image…“를 선택해서 FreeBSD iso 파일을 선택 하고, “Mapped”를 클릭해서 Virtual CD에 연결 해 둡니다. 그러면 해당 iso 파일이 가상의 CD로 동작 합니다.

하드웨어 부팅

Virtual Console 에서 Power On 을 시키면 바이오스 부팅 화면이 나오는데 여기서 F11를 눌러서 BIOS Boot Manager를 실행 합니다. 그러면 화면이 다음과 같이 바뀌고 펌웨어 초기화 뒤에 부트 장치를 선택하게 됩니다. 물론 서버의 펌웨어 설정을 변경해야 하는 경우라면 (디스크 RAID설정 등)은 F2를 눌러서 시스템 셋업에서 진행 합니다. 이 경우 부트 방식은 UEFI가 아니라 BIOS로 해 두기 바랍니다.

bios boot manager

아래 화면까지 나오면 Virtual CD를 선택하면 Virtual Media에 연결된 ISO이미지로 부팅 합니다.

boot devices

FreeBSD 설치 프로그램 시작

이제 FreeBSD 부트로더가 시작되는 걸 볼 수 있습니다.

freebsd bootloader

Virtual CD의 경우 CD이미지를 DRAC에 접속한 클라이언트에서 네트워크로 전송하기 때문에 서버에 실제 CD를 넣어두지 않아도 되는 장점이 있지만 콘솔이 있는 클라이언트가 멀리 떨어져 있는 경우라면 시간이 오래 걸릴 수 있습니다. 같은 LAN안에 있다면 CD 속도와 그다지 다르지 않을 것입니다.

다만 제 경우 다음 문제가 있었는데, 바로 부트로더가 커널을 읽은 후 설치 이미지로 부팅하지 않는 문제였습니다. 원래는 CD이미지 상에서 설치용 파일시스템을 루트로 마운트해야 하는데 이 동작이 실패하여 다음 프롬프트로 나갑니다.

freebsd bootloader fail

mountroot>는 커널이 루트 파일시스템을 찾지 못할 때 나옵니다. 따라서 사용할 수 있는 루트 파일시스템 장치를 다시 입력하면 되는데… 화면 도움말에 나와 있긴 하지만 그게 쉬운 일은 아닙니다.

이걸 본 필자의 마음은…

kevin

인터넷 찾아 보아도 쉬운 해결책을 찾지 못하였는데, 콘솔 화면의 첫 행을 잘 보면

cd1: <iDRAC Virtual CD ...

라고 되어 있는 것을 보아 Virtual CD가 cd1으로 연결 된 것으로 보이므로, /dev/cd1에서 부팅하기 위해 mountroot>프롬프트에서 침착하게 다음을 입력 합니다.

mountroot> cd9660:/dev/cd1 ro

잘못되면 시스템 부팅부터 다시 시작 주세요. 11이나 12릴리즈를 설치하는 경우에도 이 문제는 동일하게 발생 합니다.

단 CURRENT버전에서는 디버그 문제인지 설치하는 스냅샷의 문제인지 모르겠지만 위 프롬프트에서 엔터를 몇번 입력하면 커널 패닉에 빠지는 문제(!)가 있었습니다. 엔터를 무의미하게 입력하지 말고 위 프롬프트가 나오면 바로 위 구문을 입력해 주면 커널 패닉 없이 다음과 같이 설치 이미지 부팅이 진행이 됩니다.

freebsd install - logo

freebsd install - welcome

이후에는 일반적인 FreeBSD 설치를 진행하면 별 무리 없이 끝납니다.

FreeBSD 설치후 버전 확인

설치 후에 로그인해서 버전을 확인해 봅니다.

# uname -a
FreeBSD <host> 13.0-CURRENT FreeBSD 13.0-CURRENT r344648 GENERIC  amd64
# freebsd-version -uk
13.0-CURRENT
13.0-CURRENT

잘 되었네요.

FreeBSD 11이나 12 릴리즈 버전도 동일하게 설치하면 됩니다. 단 ISO이미지는 버전에 맞는 걸 준비하기 바랍니다.


번외편: MacOS X에서 DRAC Virtual Console 접속하기

공식적으로 DRAC 기능을 모두 이용 하려면 32비트 IE만 지원하는 것으로 보입니다만 MacOS X에서도 DRAC접속이 가능 합니다. 다만 시스템 설정을 일부 변경해야 하고 OS나 자바 버전에 따라서 설정 방법이 조금씩 다릅니다. DRACs and Macs and Java Hacks이 많이 도움이 되었는데 약간의 설정이 더 필요 하더군요. 아래 환경을 기준으로 설명 합니다.

  • DRAC에서 Console/Media -> Configuration -> Virtual Console -> Plug-in Type은 “Java”로 선택 합니다.
  • 브라우저: Firefox 나 Chrome 둘 다 가능
  • MacOS X Mojave
  • Java: MacOS X Java Install의 설명을 통해서 설치. 현재의 경우 Java 8 Update 201 이 설치되어 있습니다.

위 조건이 만족 되면, System Preference 의 Java 항목을 선택하고 아래를 변경 합니다.

  • Security Tab - “High”로 설정
  • Exception Site List의 “Edit Site List”를 클릭해서 DRAC 서버 주소를 추가 (https://drac-ip 를 입력하면 됩니다)

그리고 DRAC의 자바 프로그램이 오래된 인증서로 사인되어 있는 관계로 다음과 같이 java의 보안 설정을 일부 변경 합니다. 최신 버전의 DRAC이나 인증서가 업데이트 되면 필요하지 않을 수도 있습니다.

  • /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/security/java.security파일을 열어서 다음 행을 찾아 편집 합니다.
    • jdk.certpath.disabledAlgorithms=행을 찾아서 RSA keySize < 1024RSA keySize < 512로 변경 또는 삭제. 다음과 같이 보이면 됩니다. 아예 comment 처리하는 방법도 있겠지만 권장하지 않습니다.
      jdk.certpath.disabledAlgorithms=MD2, SHA1 jdkCA & usage TLSServer, \
      RSA keySize < 512, DSA keySize < 1024, EC keySize < 224
      
    • jdk.jar.disabledAlgorithms=을 찾아서 MD5를 삭제하고 RSA keySize < 1024RSA keySize < 512로 변경. 다음과 같이 보이면 됩니다.
      jdk.jar.disabledAlgorithms=MD2, RSA keySize < 512, DSA keySize < 1024
      
    • jdk.tls.disabledAlgorithms=를 찾아서 RC4를 제거. 다음과 같이 보이면 됩니다.
      jdk.tls.disabledAlgorithms=SSLv3, DES, MD5withRSA, DH keySize < 1024, \
      EC keySize < 224, 3DES_EDE_CBC, anon, NULL
      

Virtual Console 접속을 하면 viewer.jnlp 뒤에 서버 이름이나 타임스탬프가 붙는 복잡한 이름이 나옵니다. Chrome의 경우 파일명을 변경해 주는 확장이 존재 합니다만 굳이 쓸 필요는 없고 jnlp파일을 다운로드받아 파일을 열 때 실행 어플리케이션으로 Java Web Start.app을 선택해 주면 됩니다. 이 파일은 /Applications에 존재하지 않고 /System/Library/CoreServices/Java Web Start.app에 있으므로 일일이 지정하는게 약간 귀찮습니다. 어플리케이션이 보이지 않는다면 찾는 조건을 “All Appplications”로 변경하면 선택할 수 있습니다.

이후에 브라우저에서 DRAC페이지에 접속 후 Virtual Console 에 접속하면 “Do you want to run this application?” 경고가 나오지만 “Run”을 눌러 진행 하면 됩니다. 위 java.security의 설정을 변경하지 않으면 이 다음에 아래 같이 “Unable to launch the application”또는 서버 접속이 아예 안 될 수 있으므로 이 경우 설정 파일 변경 사항을 다시 확인하기 바랍니다.

drac error

여기까지는 잘 되는데 Virtual Media 가 실행이 안되어서 ISO이미지 연결은 못 해 봤습니다. 가능한 방법을 찾으면 다시 추가 하도록 하겠습니다.