This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

젠투 리눅스 mips 핸드북: 젠투 설치

From Gentoo Wiki (test)
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:MIPS/Full/Installation and the translation is 100% complete.
MIPS 핸드북
설치
설치 정보
매체 선택
네트워크 설정
디스크 준비
스테이지 3 설치
베이스 시스템 설치
커널 설정
시스템 설정
도구 설치
부트로더 설정
마무리
젠투 활용
포티지 소개
USE 플래그
포티지 기능
초기화 스크립트 시스템
환경 변수
포티지 활용
파일 및 디렉터리
변수
소프트웨어 브랜치 함께 사용하기
추가 도구
꾸러미 저장소 개별 설정
고급 기능
네트워크 설정
시작하기
고급 설정
모듈러 네트워크
무선 네트워크
기능 추가
동적 관리


도입부

환영합니다

우선, 젠투의 세계에 잘 오셨습니다! 선택과 성능의 세계로 들어오셨습니다. 젠투는 선택 그 자체입니다. 젠투를 설치할 때, 사용자 자신이 얼마나 스스로 컴파일 하고 싶어하는지, 어떤 시스템 로거를 사용하는지 등에 대해 여러번 명확히 밝혀두었습니다.

젠투는 빠르며, 깔끔하며 유연한 설계를 갖춘 최신 메타 배포판입니다. 젠투는 자유 소프트웨어 환경을 빌드하며 사용자의 눈 밖으로 그 어떠한 요소도 숨겨두지 않았습니다. 젠투에서 사용하는 꾸러미 관리 시스템 포티지를 파이썬으로 작성했다는건, 사용자가 쉽게 코드를 살펴보고 수정할 수 있음을 의미합니다. 젠투 꾸러미 시스템은 (비록 미리 컴파일한 꾸러미도 들어있지만) 소스 코드를 활용하며 일반 텍스트 파일을 통해 젠투를 설정합니다. 다시 말해, 모든 부분이 열려있습니다.

젠투를 동작하게 하는 요소의 선택에 대해 모든 사람이 이해하는 것이 중요합니다. 사용자들이 좋아하지 않는 그 어떤 것도 강요하려 들지 않습니다. 강요한다는 느낌을 받는다면 버그 보고서en로 제출하십시오.

설치 구성 방식

젠투 설치를 다음 장의 모음에 따라 10단계로 나누어 볼 수 있습니다. 각각의 단계가 끝나면 다음과 같은 결과 상태가 됩니다:

단계 결과
1 젠투를 설치할 수 있는 환경을 준비합니다.
2 젠투를 설치할 인터넷 연결 환경을 준비합니다
3 젠투를 설치할 하드디스크를 준비합니다.
4 설치환경을 준비하고, 새 환경으로 루트 기준을 전환할 수 있습니다.
5 모든 젠투 설치 프로그램이 있는 핵심 꾸러미의 설치가 끝납니다.
6 리눅스 커널을 설치합니다.
7 사용자는 대부분의 젠투 시스템 설정 파일을 다룹니다.
8 필요한 시스템 도구를 설치합니다.
9 적당한 부트 로더를 설치하고 설정합니다.
10 새로 설치한 젠투 리눅스 환경을 탐색할 준비가 끝납니다.

각각의 선택이 주어질 때마다, 핸드북에서는 장점과 단점을 최대한 설명하려고 합니다. 비록 내용은 기본 선택으로 진행하겠지만(제목에 "기본:" 으로 표시), 마찬가지로 다른 가능성도 문서에 기록했습니다(제목에 "대안:"으로 표시). 기본 사항이 젠투에서 추천하는 선택이라고 생각하지 마십시오. 하지만 대부분 사용자가 선택할 것이라는 생각은 듭니다.

가끔 선택의 기로에 직면할 수 있습니다. 이런 단계는 "선택:" 으로 표시했으며 젠투를 설치하는데 필요하지는 않습니다. 그러나 몇가지 선택 단계는 이전 결정 요소에 따라 의존성이 있을 수 있습니다. 우리는 이런 일에 대해서 선택 단계를 설명하기 전에 알려 드리겠습니다.

젠투 설치 옵션

젠투는 오만가지 방법으로 설치할 수 있습니다. 젠투 설치 CD나 DVD 같은 공식 젠투 설치 미디어로 다운로드하고 설치할 수 있습니다. 설치 미디어는 USB 메모리에 설치하거나 네트워크 부팅 환경으로 접근할 수 있습니다. 대신 젠투는 이미 설치한 배포판과 같은 비공식 미디어에서도 설치할 수 있으며, 또는 젠투가 들어있지 않은 부팅 디스크(예: Knoppix)에서도 설치할 수 있습니다.

이 문서는 공식 젠투 설치 미디어를 활용한 설치 방법을 다루거나, 경우에 따라 네트워크 부팅을 통한 설치를 다룹니다.

참고
비 젠투 CD 를 이용한 방법을 포함한 다른 방법을 통해 설치를 시도할 경우 대안 설치 안내서를 읽으십시오.

또한 마찬가지로 약간의 도움을 줄 수 있을지도 모르는 젠투 설치 요령 문서를 제공합니다.

문제

설치(또는 설치 문서)에 문제가 있다면, 버그 추적 시스템en을 찾아보시고 알려진 버그인지 확인하십시오. 그렇지 않으면 우리가 이를 처리할 수 있게 버그 보고서를 만들어주십시오. 버그를 할당 받을 개발자를 두려워하지 마십시오 -- (보통) 사람을 잡아먹지는 않으니까요.

참고로, 이 문서가 각각의 아키텍처와 관련된 문서이긴 하지만, 다른 아키텍처에도 참조로 포함합니다. 젠투 핸드북의 많은 부분이 (개발 자원의 고립과 역작의 중복을 막기 위해) 모든 아키텍처를 대상으로 공유하는 일반적인 내용을 활용하기 때문입니다. 우리는 혼란을 막기 위해 내용 중복을 최소한으로 유지하겠습니다.

당면한 문제가 사용자 문제(문서를 주의깊게 읽었음에도 불구하고 여러분이 발생시키는 에러)인지 소프트웨어 문제(설치, 문서를 충분히 시험했음에도 불구하고 우리가 만들어낸 문제)인지 확실치 않다면 irc.freenode.net 의 #gentoo 채널에 자유롭게 참가하시면 됩니다. 물론 다른 이유에서라도 우리는 여러분을 반갑게 맞이하겠습니다.

만약 젠투에 대한 질문이 있다면, 자주 묻는 질문 게시글을 확인하십시오. 젠투 포럼en에서도 자주 묻는 질문en을 볼 수 있습니다.





MIPS 핸드북
설치
설치 정보
매체 선택
네트워크 설정
디스크 준비
스테이지 3 설치
베이스 시스템 설치
커널 설정
시스템 설정
도구 설치
부트로더 설정
마무리
젠투 활용
포티지 소개
USE 플래그
포티지 기능
초기화 스크립트 시스템
환경 변수
포티지 활용
파일 및 디렉터리
변수
소프트웨어 브랜치 함께 사용하기
추가 도구
꾸러미 저장소 개별 설정
고급 기능
네트워크 설정
시작하기
고급 설정
모듈러 네트워크
무선 네트워크
기능 추가
동적 관리


하드웨어 요구 사항

CPU (빅 엔디안) MIPS3, MIPS4, MIPS5 or MIPS64-class CPU
CPU (리틀 엔디안) MIPS4, MIPS5 or MIPS64-class CPU
메모리 128 MB
디스크 공간 3.0 GB (스왑 영역 제외)
스왑 공간 최소 256 MB

자세한 내용은 MIPS 하드웨어 요구사항en을 확인하십시오.

설치 참고

여러 아키텍처의 프로세서는 다양한 세대를 거쳐갔습니다. 각각의 최근 세대는 이전 세대를 기초로 만들었습니다. MIPS도 예외는 아닙니다. MIPS 아키텍처에서 다루는 CPU에 여러세대가 있습니다. 적절한 넷부트 이미지 스테이지 타르볼과 CFLAGS를 선택하려면 시스템의 CPU가 어떤 계열에 속해있는지 알아야합니다. 이 계열은 명령셋 아키텍처로 참조합니다.

MIPS ISA 32/64-bit 해당 CPU
MIPS 1 32-bit R2000, R3000
MIPS 2 32-bit R6000
MIPS 3 64-bit R4000, R4400, R4600, R4700
MIPS 4 64-bit R5000, RM5000, RM7000 R8000, R9000, R10000, R12000, R14000, R16000
MIPS 5 4-bit 아직 없음
MIPS32 32-bit AMD Alchemy 계열, 4kc, 4km, 등... MIPS32 ISA의 몇가지 리비전 존재.
MIPS64 64-bit Broadcom SiByte SB1, 5kc 등... MIPS64 ISA의 몇가지 리비전 존재.
참고
MIPS5 ISA 레벨은 1994년 실리콘 그래픽스가 설계했지만 실제 CPU 에서는 거의 사용하지 않습니다. 이 부분은 MIPS64 ISA의 일부로 남아있습니다.
참고
MIPS32 ISA와 MIPS64 ISA는 혼란을 주는 일반적인 요인입니다. MIPS64 ISA 레벨은 실제로 MIPS5 ISA의 상위 셋이므로 MIPS5와 이전 ISA의 명령어를 포함합니다. MIPS32는 MIPS64의 32비트 명령 하위셋이며, 대부분의 프로그램이 32비트 처리만 필요하기 때문에 MIPS32가 존재합니다.

또한, 알아두어야 할 다른 중요한 개념은 엔디안의 개념입니다. 엔디안 개념은 CPU가 메모리에서 워드 단위의 데이터를 읽는 방식입니다. 워드 단위는 빅 엔디안(최상위 바이트 먼저 읽음)과 리틀 엔디안(최하위 바이트 먼저 읽음)방식으로 읽을 수 있습니다. 인텔 x86 머신은 보통 리틀 엔디안 방식이며, 애플 머신과 스팍 머신은 빅 엔디안 방식입니다. MIPS에서는 두가지 방식을 다 사용합니다. 이를 구분하기 위해 리틀 엔디안을 아키텍처 이름에 표시하려 뒤에 "el"을 붙입니다.

아키텍처 32/64비트 엔디안 해당 머신
mips 32비트 빅 엔디안 실리콘 그래픽스
mipsel 32비트 리틀 엔디안 코발트 서버
mips64 64비트 빅 엔디안 실리콘 그래픽스
mips64el 64비트 리틀 엔디안 코발트 서버

ISA에 대해 더 많은 내용을 알아보려 한다면, 다음 웹사이트가 도움이 될 수도 있습니다.

Netbooting 간단히 살펴보기

이 절에서는, 실리콘 그래픽스 워크스테이션 또는 코발트 서버 제품에서 성공적으로 네트워크 부팅을 수행하는데 필요한 내용을 다루겠습니다. 간단한 정리 안내서이며 완벽을 의도하지 않았으므로, 더 많은 내용은 무(無)디스크 노드 게시물을 읽어보십시오.

머신에 따라, 넷부트와 리눅스 설치를 제대로 하는데 필요한 하드웨어가 있습니다.

  • 보통:
    • DHCP/BOAMD Alchemy 계열, 4kc, 4km, 등... MIPS32 ISA.OTP 서버에 몇가지 리비전이 있습니다 (ISC DHCPd 필수)
    • 인내를 요함 -- 그리고 많은 준비물
  • 실리콘 그래픽스 워크스테이션용:
    • TFTP 서버 (tftp-hpa 필수)
    • 직렬 콘솔이 필요할 때:
      • MiniDIN8 --> RS-232 직렬 케이블 (IP22 와 IP28 시스템에서만 필요)
      • 널 모뎀 케이블
      • VT100 또는 9600 보 레이트 지원 ANSI 호환 터미널
  • 코발트 서버용 (초기 Qube 아님):
    • NFS 서버
    • 널 모뎀 케이블
    • VT100 또는 115200 보 레이트 지원 ANSI 호환 터미널
참고
SGI 머신은 직렬 포트에 MiniDIN 8 커넥터를 사용합니다. 현재 애플 모뎀 케이블은 직렬 케이블로 제대로 동작하지만, 존재하는 애플 머신에는 USB 및 내부 모뎀이 붙어있어 찾기 어려워지고 있습니다. 결선 다이어그램은 Linux/MIPS 위키에 있으며, 필요한 플러그 부품이 전자 매장의 재고로 남아있어야 합니다.
참고
터미널은 실제 VT100/ANSI 터미널이 될 수도 있거나 터미널 에뮬레이션 프로그램이 동작(하이퍼터미널, 미니콤, 세용, 텔렉스, xc, screen, 취향에 따라 어떤 것이든)중인 PC가 될 수도 있습니다. 이 머신에서 동작중인 플랫폼이 무엇이냐는 상관없습니다. RS-232 직렬 포트와 적당한 프로그램이 남아있으면됩니다.
참고
이 안내서는 초기 Qube 머신을 다루지 않습니다. 초기 Qube 서버 장비는 기본 설정에서 직렬 포트가 빠져있기 때문에 스크류 드라이버와 대리 머신 없이는 젠투를 설치할 수 없습니다.

TFTP와 DHCP 설정

앞서 언급한바와 같이 이 안내서는 완전하지 않습니다. 단지 동작하게만 하는 기본 구성 설정일 뿐입니다. 처음부터 설정을 시작하거나 넷부팅 지원 기능을 추가하려 기존 설정을 고칠 때 제안 사항으로 활용하십시오.

사용중인 서버에서 FreeBSD 또는 유닉스 계열 플랫폼을 사용하는 편이 더 좋을 수 있다면 젠투 리눅스를 가동할 필요가 없다는 점도 상당히 참고할만합니다. 그러나 이 안내서에서는 젠투 리눅스를 사용할 상황을 가정합니다. 원한다면 다른 머신에서 DHCP 서버로 TFTP와 NFS 서비스를 실행할 수도 있습니다.

경고
젠투/MIPS 팀에서는 다른 운영체제의 넷부트 서버 설정을 도와드리지 못합니다.

첫 단계 -- DHCP를 설정하십시오. ISC DHCP 데몬이 BOOTP 요청에 응답하려면(SGI와 코발트 BOOTROM에서 요청함), 우선 동적 BOOTP를 사용할 주소 범위내로 활성화하십시오. 그 다음 각각의 클라이언트 항목으로 부팅 이미지를 가리키도록 설정하십시오.

root #emerge --ask net-misc/dhcp

설치가 끝나면 /etc/dhcp/dhcpd.conf 파일을 만드십시오. 시작할 때 기본 구성으로 사용할 설정은 아래와 같습니다.

파일 /etc/dhcp/dhcpd.confdhcpd.conf 기본 구성
# Tell dhcpd to disable dynamic DNS.
# dhcpd will refuse to start without this.
ddns-update-style none;
  
# Create a subnet:
subnet 192.168.10.0 netmask 255.255.255.0 {
  # Address pool for our booting clients. Don't forget the 'dynamic-bootp' bit!
  pool {
    range dynamic-bootp 192.168.10.1 192.168.10.254;
  }
  
  # DNS servers and default gateway -- substitute as appropriate
  option domain-name-servers 203.1.72.96, 202.47.56.17;
  option routers 192.168.10.1;
  
  # Tell the DHCP server it's authoritative for this subnet.
  authoritative;
  
  # Allow BOOTP to be used on this subnet.
  allow bootp;
}

위 설정을 통해 subnet 절에서 여러대의 클라이언트를 추가할 수 있습니다. 어떤 클라이언트를 설정할지는 이 안내서의 뒷부분에서 다룹니다.

그 다음 단계. TFTP 서버를 설정하십시오. 잘 동작한다고 알려진 tftp-hpa를 TFTP 데몬으로 쓰는것이 좋습니다. 다음과 같이 설치를 계속 진행하십시오.

root #emerge --ask net-ftp/tftp-hpa

이 과정을 통해 넷부트 이미지를 저장할 /tftproot를 만듭니다. 필요한 경우 다른 곳으로 옮기십시오. 이 안내서의 목적에 따르면 기본 위치를 그대로 둡니다.

SGI 스테이션 넷부팅

netboot 이미지 다운로드

설치하려는 시스템에 따라, 다운로드할 수 있는 몇가지 이미지가 있습니다. 컴파일 하려는 시스템 형식과 CPU에 따라 이름이 붙어있습니다. 해당 머신 형식은 아래와 같습니다:

코드명 머신
IP22 Indy, *Indigo 2, Challenge S
IP26 *Indigo 2 Power
IP27 Origin 200, Origin 2000
IP28 *Indigo 2 Impact
IP30 Octane
IP32 O2
참고
Indigo 2는 IRIS Indigo (IP12 w/ R3000 CPU, R4000 CPU를 장착한 IP20, 둘 다 리눅스가 동작하지 않음), Indigo 2 (리눅스가 잘 돌아가는 IP22), R8000 기반 Indigo 2 Power (모든 기종에서 리눅스가 동작하지 않음), the R10000 기반 Indigo 2 Impact (완전히 실험적인 IP28)를 합쳐부른 작명 실수의 결과입니다. 이들 머신이 각기 다름을 참고하십시오.

파일이름에서도 r4k는 R4000 프로세서 기종을 참조하며, r5k는 R5000계열 프로세서를, rm5k는 RM5200계열 프로세서를, r10k는 R10000계열 프로세서를 참조합니다. 이미지는 젠투 미러en에 있습니다.

SGI 클라이언트 DHCP 설정

파일을 다운로드하고 나면 /tftproot/ 디렉터리에 압축해제한 이미지 파일을 넣으십시오(bzip2 -d 명령으로 압축 해제). 그 다음 /etc/dhcp/dhcpd.conf 파일을 편집하여 SGI 클라이언트에 맞게 적당한 항목을 추가하십시오.

파일 /etc/dhcp/dhcpd.confSGI 워크스테이션용 설정 일부
subnet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx {
  # ... usual stuff here ...
  
  # SGI Workstation... change 'sgi' to your SGI machine's hostname.
  host sgi {
  
    # MAC Address of SGI Machine. Normally this is written on the back
    # or base of the machine.
    hardware ethernet 08:00:69:08:db:77;
  
    # TFTP Server to download from (by default, same as DHCP server)
    next-server 192.168.10.1;
  
    # IP address to give to the SGI machine
    fixed-address 192.168.10.3;
  
    # Filename for the PROM to download and boot
    filename "/gentoo-r4k.img";
  }
}

커널 옵션

거의 끝났지만 몇가지 이리저리 설정해야 할 건수가 남았습니다. 루트 권한으로 콘솔을 띄우십시오.

"Path Maximum Transfer Unit"를 활성화하십시오. 그렇지 않으면 SGI PROM에서 커널을 찾지 못합니다.

root #echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc

SGI PROM에서 쓸 포트 범위를 설정하십시오:

root #echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range

SGI PROM에서 리눅스 서버가 잘 동작할 수 있게 충분히 부여해야합니다.

데몬 시작

이제 데몬을 시작하십시오.

root #/etc/init.d/dhcp start
root #/etc/init.d/in.tftpd start

마지막 단계에서 문제가 생기지 않았다면 워크스테이션에 전원을 인가할 모든 설정이 끝났으며 이 안내서의 내용을 계속 진행할 차례입니다. DHCP 서버가 어떤 문제로 인해 동작하지 않으면, dhcpd를 명령줄에서 실행하여 어떤 메시지를 출력하는지 살펴보십시오. 모든 동작에 문제가 없다면, 백그라운드로 포킹해야 합니다. 그렇지 않으면 화면 바로 아래에 'exiting.'을 표시하여 항의합니다.

tftp 데몬이 동작중인지 확인하는 쉬운 방법은 다음 명령을 입력하고 출력 내용을 확인하는 것입니다:

root #netstat -al | grep ^udp
udp        0      0 *:bootpc                *:*
udp        0      0 *:631                   *:*
udp        0      0 *:xdmcp                 *:*
udp        0      0 *:tftp                  *:* <-- (look for this line)

SGI 스테이션 넷부팅

좋습니다. 모든 사항을 설정했고 DHCP가 TFTP와 함께 동작합니다. 이제 SGI 머신을 가동할 차례입니다. 유닛의 전원을 인가하십시오 - "Running power-on diagnostics" 메시지가 화면에 뜨면 "Stop for Maintenance"를 누르거나 Esc를 누르십시오. 다음과 같은 메뉴가 나타납니다.

Running power-on diagnostics
System Maintenance Menu
  
(1) Start System
(2) Install System Software
(3) Run Diagnostics
(4) Recover System
(5) Enter Command Monitor
Option?

명령 모니터로 들어가려면 5를 입력하십시오. 모니터에서 BootP 프로세스를 시작하십시오:

>>bootp(): root=/dev/ram0

이 시점에서, 머신에서 이미지 다운로드를 시작해야합니다. 과정이 끝나면 거의 20초 후에 리눅스 부팅을 시작합니다. 모든 과정이 잘 진행됐다면, 아래와 같이 busybox ash 쉘을 시작하며, 젠투 리눅스 설치를 계속 진행할 수 있습니다.

코드 제대로 진행한다면...
init started:  BusyBox v1.00-pre10 (2004.04.27-02:55+0000) multi-call binary
  
Gentoo Linux; http://www.gentoo.org/
 Copyright 2001-2004 Gentoo Technologies, Inc.; Distributed under the GPL
  
 Gentoo/MIPS Netboot for Silicon Graphics Machines
 Build Date: April 26th, 2004
  
 * To configure networking, do the following:
  
 * For Static IP:
 * /bin/net-setup <IP Address> <Gateway Address> [telnet]
  
 * For Dynamic IP:
 * /bin/net-setup dhcp [telnet]
  
 * If you would like a telnetd daemon loaded as well, pass "telnet"
 * As the final argument to /bin/net-setup.
  
Please press Enter to activate this console.

문제 해결

머신이 계속 멈춰있고, 이미지 다운로드를 거부한다면, 둘 중 하나의 문제일 수도 있습니다

  1. 절차를 제대로 따르지 않았거나(유불)
  2. 약간 달래야 합니다(망치는 좀 내려놓으시죠...)

확인해야 할 요소가 몇가지 있습니다:

  • dhcpd는 SGI 머신에 IP 주소를 부여합니다. 시스템 로그에서 BOOTP 요청이 나타날 경우 메시지를 살펴보십시오. tcpdump도 쓸만합니다
  • /nfsboot/ 폴더의 권한을 제대로 설정하지 않았습니다(모두가 읽을 수 있어야합니다).
  • tftp 서버에서 나타내는(아마도 오류) 시스템 로그를 확인하십시오

SGI 머신에서 모든 사항을 확인했음에도 불구하고, 시간초과 오류가 뜨거나, 다른 오류가 나타난다면, 다음 명령을 콘솔에 입력해보십시오.

>>resetenv
>>unsetenv netaddr
>>unsetenv dlserver
>>init
>>bootp(): root=/dev/ram0

Cobalt 스테이션의 넷부팅

netboot 진행과정 간단히 살펴보기

SGI 머신과는 달리 Cobalt 서버에서는 부팅과정에서 커널을 보내는 목적으로 NFS를 사용합니다. 전원을 인가하는 과정에서 좌우 화살표 방향 버튼을 누른채로 기다려 머신을 부팅하십시오. 그러면 머신에서 BOOTP로 IP 번호를 받고 NFS를 통해 서버의 /nfsroot/ 디렉터리를 마운트하며, 표준 ELF 바이너리로 간주하는 vmlinux_raq-2800.gz(모델에 따라 다름) 파일을 다운로드하고 부팅합니다.

Cobalt netbook 이미지 다운로드

http://distfiles.gentoo.org/experimental/mips/historical/netboot/cobalt/에 Cobalt 머신을 띄우는데 필요한 부트 이미지가 있습니다. 해당 파일의 이름은 nfsroot-KERNEL-COLO-DATE-cobalt.tar입니다. 최근 파일을 선택하시고 아래와 같이 / 에 언팩하십시오:

root #tar -C / -xvf nfsroot-2.6.13.4-1.19-20051122-cobalt.tar

NFS 서버 설정

이 머신에서 이미지를 다운로드할 때 NFS를 사용하므로 서버의 /nfsroot/ 디렉터리를 공유로 내보내야 합니다. net-fs/nfs-utils 꾸러미를 설치하십시오:

root #emerge --ask net-fs/nfs-utils

이 과정이 끝나면 다음 내용을 /etc/exports 파일에 넣으십시오.

파일 /etc/exports/nfsroot 디렉터리 공유 내보내기
/nfsroot      *(ro,sync)

이 과정이 끝나면 NFS 서버를 시작하십시오:

root #/etc/init.d/nfs start

NFS 서버가 이미 동작중이라면 exportfs 명령으로 공유로 내보내는 파일이 무엇인지 살펴보십시오.

root #exportfs -av

Cobalt 머신 DHCP 설정

이제 DHCP 부분은 상대적으로 간단합니다. 다음 줄을 /etc/dhcp/dhcpd.conf 파일에 추가하십시오.

파일 /etc/dhcp/dhcpd.confCobalt 서버용 설정 일부
subnet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx {
  # ... usual stuff here ...
  
  # Configuration for a Cobalt Server
  # Set the hostname here:
  host qube {
    # Path to the nfsroot directory.
    # This is mainly for when using the TFTP boot option on CoLo
    # You shouldn't need to change this.
    option root-path "/nfsroot";
  
    # Cobalt server's ethernet MAC address
    hardware ethernet 00:10:e0:00:86:3d;
  
    # Server to download image from
    next-server 192.168.10.1;
  
    # IP address of Cobalt server
    fixed-address 192.168.10.2;
  
    # Location of the default.colo file relative to /nfsroot
    # You shouldn't need to change this.
    filename "default.colo";
  }
}

데몬 시작

이제 데몬을 시작하십시오. 다음 명령을 입력하십시오:

root #/etc/init.d/dhcp start
root #/etc/init.d/nfs start

문제가 생기지 않았다면 마지막 단계에서는 워크스테이션에 전원을 인가할 모든 설정이 끝났으며 이 안내서의 내용을 계속 진행할 차례입니다. DHCP 서버가 어떤 문제로 인해 동작하지 않으면, dhcpd를 명령줄에서 실행하여 어떤 메시지를 출력하는지 살펴보십시오. 모든 동작에 문제가 없다면, 백그라운드로 포킹해야 합니다. 그렇지 않으면 화면 바로 아래에 'exiting.'을 표시하여 항의합니다.

Cobalt 머신 넷부팅

이제 코발드 머신을 가동할 차례입니다. 널 모뎀 케이블을 꼽고, 직렬 터미널을 115200 보 레이트, 8비트, 패리티 없음, 스톱 비트 1, VT100 에뮬레이션 설정을 사용하도록 설정하십시오. 과정이 끝나면 유닛의 전원을 인가하는 동안 왼쪽 오른쪽 화살표 버튼을 누른채로 기다리십시오.

후면 패널에 "Net Booting"이라고 떠야하며, CoLo가 뜰 것 같은 네트워크 활동이 나타나야합니다. 전면 패널에는 "네트워크(NFS)" 옵션이 나타날때까지 스크롤을 내리시고 Enter를 누르십시오. 직렬 콘솔에서 머신 부팅을 시작하는지 확인하십시오.

...
elf: 80080000 <-- 00001000 6586368t + 192624t
elf: entry 80328040
net: interface down
CPU revision is: 000028a0
FPU revision is: 000028a0
Primary instruction cache 32kB, physically tagged, 2-way, linesize 32 bytes.
Primary data cache 32kB 2-way, linesize 32 bytes.
Linux version 2.4.26-mipscvs-20040415 (root@khazad-dum) (gcc version 3.3.3...)
Determined physical RAM map:
 memory: 08000000 @ 00000000 (usable)
Initial ramdisk at: 0x80392000 (3366912 bytes)
On node 0 totalpages: 32768
zone(0): 32768 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=ttyS0,115200 root=/dev/ram0
Calibrating delay loop... 249.85 BogoMIPS
Memory: 122512k/131072k available (2708k kernel code, 8560k reserved, 3424k dat)

busybox ash 쉘이 아래와 같이 뜨면 젠투 리눅스 설치를 계속할 수 있습니다.

코드 제대로 진행한다면...
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 280k freed
init started:  BusyBox v1.00-pre10 (2004.04.27-02:55+0000) multi-call binary
  
Gentoo Linux; http://www.gentoo.org/
 Copyright 2001-2004 Gentoo Technologies, Inc.; Distributed under the GPL
  
 Gentoo/MIPS Netboot for Cobalt Microserver Machines
 Build Date: April 26th, 2004
  
 * To configure networking, do the following:
  
 * For Static IP:
 * /bin/net-setup <IP Address> <Gateway Address> [telnet]
  
 * For Dynamic IP:
 * /bin/net-setup dhcp [telnet]
  
 * If you would like a telnetd daemon loaded as well, pass "telnet"
 * As the final argument to /bin/net-setup.
  
Please press Enter to activate this console.

문제 해결

머신이 계속 멈춰있고, 이미지 다운로드를 거부한다면, 둘 중 하나의 문제일 수도 있습니다:

  1. 절차를 제대로 따르지 않았거나(유불)
  2. 약간 달래야 합니다(망치는 좀 내려놓으시죠...)

확인해야 할 요소가 몇가지 있습니다:

  • dhcpd는 코발트 머신에게 IP 주소를 부여합니다. 시스템 로그에서 BOOTP 요청이 나타날 경우 메시지를 살펴보십시오. tcpdump도 쓸만합니다
  • /nfsboot/ 폴더의 권한을 제대로 설정하지 않았습니다(모두가 읽을 수 있어야합니다).
  • NFS 서버가 실행중이며 /nfsroot/ 디렉터리 공유를 내보내고 있는지 확인하십시오. 서버에서 exportfs -v 명령으로 확인하십시오.


설치 CD 사용

실리콘 그래픽스 머신에서는, 운영체제를 설치할 떄 CD로 부팅할 수 있습니다(IRIX 머신에 설치하는 방법의 예입니다). 최근에는 부팅용 CD 이미지로도 젠투 설치가 가능해졌습니다. 이 CD는 동일한 방식으로 동작하도록 설계했습니다.

잠시 기간동안 Gentoo/MIPS 라이브 CD가 SGI 인디, 인디고 2, R4000 및 R5000 계열 CPU를 장착한 O2 워크스테이션 머신에서만 동작했으나, 앞으로는 다른 플랫폼에서도 가능합니다.

라이브 CD 이미지는 젠투 미러의 experimental/mips/livecd/ 디렉터리에서 찾을 수 있습니다.

경고
이 CD는 현재 상당한 실험 수준에 있습니다. 동작을 할지 안 할지 모릅니다. 어떤 경우에든 버그질라, 이 포럼 스레드(en), #gentoo-mips IRC 채널에 알려주십시오.




MIPS 핸드북
설치
설치 정보
매체 선택
네트워크 설정
디스크 준비
스테이지 3 설치
베이스 시스템 설치
커널 설정
시스템 설정
도구 설치
부트로더 설정
마무리
젠투 활용
포티지 소개
USE 플래그
포티지 기능
초기화 스크립트 시스템
환경 변수
포티지 활용
파일 및 디렉터리
변수
소프트웨어 브랜치 함께 사용하기
추가 도구
꾸러미 저장소 개별 설정
고급 기능
네트워크 설정
시작하기
고급 설정
모듈러 네트워크
무선 네트워크
기능 추가
동적 관리


자동 네트워크 감지

아마도 바로 동작하겠죠?

시스템을 DHCP 서버가 붙은 이더넷에 연결했다면, 네트워크 설정은 거의 자동으로 이루어집니다. ssh, scp, ping, irssi, wget, links 등, 설치 CD에 들어있는 대부분의 네트워크 관련 명령 역시 바로 동작합니다.

인터페이스 이름 결정

ifconfig 명령

네트워크 설정이 이미 끝났다면 ifconfig 명령은 (lo 이전에) 하나 이상의 네트워크 인터페이스가 나타나야합니다. 다음 예제에서는 eth0 이 나타납니다:

root #ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:BA:8F:61:7A
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::50:ba8f:617a/10 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0
          collisions:1984 txqueuelen:100
          RX bytes:485691215 (463.1 Mb)  TX bytes:123951388 (118.2 Mb)
          Interrupt:11 Base address:0xe800 

유추 가능 인터페이스 이름으로 추세가 이동함에 따라, 시스템에 있는 인터페이스 이름은 이전에 사용하던 eth0 이름 부여 방식과 약간 다를 수 있습니다. 최근 설치 미디어에서는 eno0, ens1, enp5s0와 같은 규칙적인 네트워크 인터페이스 이름을 표시합니다. ifconfig 출력에서 로컬 네트워크와 관련된 IP 주소와 함께 네트워크 인터페이스를 찾아 나타냄을 살펴보십시오.

요령
ifconfig 명령을 사용했을 때 인터페이스가 나타나지 않으면, 동일한 명령에 -a 옵션을 사용해보십시오. 이 옵션은 유틸리티에 시스템에서 발견한 모든 인터페이스의 가동 여부를 표시하도록 강제합니다. ifconfig -a 출력에 내용이 나타나지 않으면 하드웨어에 문제가 있거나 인터페이스 드라이버를 커널에 불러오지 않았음음을 의미합니다. 두 경우는 이 핸드북의 주제 범위를 벗어납니다. gentoo # gentoo 에 지원을 문의하십시오.

ip 명령

ifconfig의 대안 수단으로 ip 명령을 인터페이스 이름으로 결정하요 사용할 수 있습니다. 다음 예제에서는 ip addr 출력 내용(은 다른 시스템의 내용이며 이전 내용과 조금 다름)을 보여줍니다:

root #ip addr
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff
    inet 10.0.20.77/22 brd 10.0.23.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ea40:f2ff:feac:257a/64 scope link 
       valid_lft forever preferred_lft forever

위 출력은 대안으로 알아보기에는 조금 더 복잡할 수 있습니다. 위 예제에서 eno1 인터페이스 이름은 숫자가 바로 따라붙습니다.

이 문서 나머지 과정에서, 핸드북은 동작하는 네트워크 인터페이스를 eth0라 하겠습니다.

선택: 프록시 설정

인터넷을 프록시로 연결했다면 설치 과정에 프록시를 설정해야 합니다. 프록시 설정은 정말 쉽습니다. 프록시 서버 정보를 넣을 변수를 설정하기만 하면 됩니다.

대부분의 경우, 서버의 호스트 이름을 사용하여 변수를 정의하는 것으로 충분합니다. 예제에서는 proxy.gentoo.org라는 프록시 서버와 8080포트를 사용한다고 가정하겠습니다.

HTTP 프록시(HTTP와 HTTPS 트래픽용)를 설정하려면:

root #export http_proxy="http://proxy.gentoo.org:8080"

FTP 프록시를 설정하려면:

root #export ftp_proxy="ftp://proxy.gentoo.org:8080"

RSYNC 프록시를 설정하려면:

root #export RSYNC_PROXY="proxy.gentoo.org:8080"

프록시에 사용자 이름과 암호가 필요하다면, 변수에 다음 문법을 사용하십시오:

코드 프록시 변수에 사용자 이름/암호 추가
http://username:password@proxy.gentoo.org:8080

네트워크 시험

ISP의 DNS 서버와 웹사이트에 ping을 시도(/etc/resolv.conf에서 찾을 수 있음)해보십시오. 네트워크가 제대로 동작하는지, 네트워크 패킷이 네트워크에 도달하는지, 이름 해석이 제대로 동작하는지 등을 확인합니다.

root #ping -c 3 www.gentoo.org

모든 기능이 제대로, 이 장의 나머지를 건너뛰고 바로 다음 단계 설치 과정 (디스크 준비)으로 진행할 수 있습니다.

자동 네트워크 설정

네트워크가 바로 동작하지 않는다면, 일부 설치 매체에서 허용하는 net-setup(일반/무선 네트워크용), pppoe-setup(ADSL 사용자용), pptp(PPTP 사용자용)를 사용하십시오.

설치 미디어에 이 도구가 없다면 직접 네트워크 설정으로 계속 진행하십시오.

기본: net-setup 사용

네트워크를 자동으로 설정하지 못했을 경우 가장 간단한 네트워크 설정 방법은 net-setup 스크립트를 실행하는 방법입니다:

root #net-setup eth0

net-setup에서는 네트워크 환경에 대한 일부 사항을 질문합니다. 모든 과정이 끝나면 네트워크 연결은 동작해야 합니다. 네트워크 연결 시험 방법은 앞서 언급했습니다. 시험 결과가 긍정적이라면 축하드립니다! 이 절의 나머지 부분을 건너뛰고 디스크 준비로 계속 진행하십시오.

그래도 네트워크가 동작하지 않는다면 직접 네트워크 설정으로 계속 진행하십시오.

대안: PPP 사용

PPPoE가 인터넷 연결에 필요한 상황에서 (임의 버전의)설치 CD는 PPP 연결 기능을 넣었기 때문에 과정을 쉽게 처리할 수 있습니다. 연결 설정시 CD에서 제공하는 pppoe-setup 스크립트를 사용하십시오. 설정 과정에서 ADSL 모뎀에 연결한 이더넷 장치, 사용자 이름, 암호, DNS 서버 IP, 기본 방화벽이 필요한지 여부를 확인합니다.

root #pppoe-setup
root #pppoe-start

무엇인가가 잘못됐다면, etc/ppp/pap-secrets 또는 /etc/ppp/chap-secrets 를 확인하여 사용자 이름과 암호를 확인하시고, 올바른 이더넷 장치를 사용하고 있는지 확인하십시오. 이더넷 장치가 없다면, 적당한 네트워크 모듈을 불러와야 합니다. 이 경우 적절한 네트워크 모듈을 불러오는 방법을 설명할 직접 네트워크 설정으로 계속 진행하십시오.

모든 요소가 동작한다면 디스크 준비로 계속 진행하십시오.

대안: PPTP 사용

PPTP 지원이 필요하다면, 설치 CD에서 제공하는 pptpclient를 사용하십시오. 그러나 우선은 설정이 올바른지부터 확인하십시오. /etc/ppp/pap-secrets 또는 /etc/ppp/chap-secrets 파일을 편집하여 올바른 사용자 이름과 암호 조합이 들어가도록 하십시오:

root #nano -w /etc/ppp/chap-secrets

다음, 필요한 경우 /etc/ppp/options.pptp를 편집하십시오:

root #nano -w /etc/ppp/options.pptp

모든 조치가 완료되었다면, (options.pptp에 설정할 수 없던 옵션으로) pptp를 실행하여 서버에 연걸하십시오:

root #pptp <server ip>

이제 디스크 준비로 계속 진행하십시오.

직접 네트워크 설정

적절한 네트워크 모듈 불러오기

설치 CD로 부팅했다면, 모든 하드웨어 장치를 찾고 하드웨어를 지원하는 적절한 커널 모듈(드라이버) 불러오기를 시도합니다. 대부분의 경우, 잘 동작하지만, 일부 경우에는 커널 모듈을 자동으로 불러오지 않습니다.

net-setup 또는 pppoe-setup 설정이 실패했다면, 네트워크 카드를 바로 찾지 못했을 수도 있습니다. 사용자가 적절한 커널 모듈을 직접 불러와야 함을 의미합니다.

네트워크에 활용할 제공 커널 모듈을 찾으려면 ls를 사용하십시오:

root #ls /lib/modules/`uname -r`/kernel/drivers/net

네트워크 장치에 대한 드라이버를 찾았다면, modprobe명령으로 커널 모듈을 불러오십시오. 예를 들어, pcnet32 모듈을 불러오려면:

root #modprobe pcnet32

네트워크 카드를 발견했는지 확인하려면 ifconfig를 사용하십시오. 발견한 네트워크 카드는 다음과 같은 결과를 보여줍니다(다시 말하지만, 예제에서는 eth0가 있습니다):

root #ifconfig eth0
eth0      Link encap:Ethernet  HWaddr FE:FD:00:00:00:00  
          BROADCAST NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

그러나 다음 오류가 나타나면, 네트워크 카드를 발견하지 못한 상황입니다.

root #ifconfig eth0
eth0: error fetching interface information: Device not found

시스템에 존재하는 네트워크 인터페이스 이름은 /sys 파일시스템에서 찾아볼 수 있습니다:

root #ls /sys/class/net
dummy0  eth0  lo  sit0  tap0  wlan0

위 예제에서, 인터페이스 6개를 찾았습니다. eth0는 아마도 (유선)이더넷 어댑터일 것이고, wlan0는 무선 이더넷 어댑터일 것입니다.

네트워크 카드를 이제 찾았다면, 다시 한번 net-setup 또는 pppoe-setup를 시도해보십시오(이제 동작해야 합니다). 다만, 일부러 복잡하고 어려운 걸 찾는 분들을 위해 마찬가지로, 네트워크를 직접 설정하는 방법을 설명하도록 하겠습니다.

네트워크 설정 항목에 따라 다음 중 하나의 절을 선택하십시오:

DHCP 사용

DHCP(동적 호스트 설정 프로토콜)은 네트워크 정보(IP주소, 네트워크 마스크, 브로드캐스트 주소, 게이트웨이, 네임서버 등)를 자동으로 받을 수 있게 합니다. DHCP 서버가 네트워크에 있을 때(또는 ISP 서비스 업체에서 DHCP 서비스를 제공할 때)만 동작합니다. 네트워크 인터페이스가 이 정보를 자동으로 받게 하려면, dhcpcd를 사용하십시오:

root #dhcpcd eth0

일부 네트워크 관리자는 시스템에서 사용할 호스트 이름과 도메인 이름을 요구합니다. 이 경우 다음 명령을 사용하십시오:

root #dhcpcd -HD eth0

이 과정을 통해 네트워크가 동작(Google과 같은 인터넷 서버에 ping을 시도해보십시오)한다면, 모든 설정이 끝났으며 계속할 준비가 된 상태입니다. 나머지 절을 건너뛰고 디스크 준비로 계속 진행하십시오.

무선 네트워크 접근 준비

참고
iw 명령 지원은 아키텍처별로 다릅니다. 명령을 사용할 수 없다면, 현재 아키텍처에서 net-wireless/iw 꾸러미를 사용할 수 있는지 참고하십시오. iw 명령은 net-wireless/iw 꾸러미를 설치하지 않으면 활용할 수 없습니다.

무선 네트워크(802.11)카드를 사용한다면, 무엇보다도 먼저 무선 설정을 해야 합니다. 현제 무선 네트워크 카드의 무선 설정을 보려면 iw 명령을 사용하시면 됩니다. iw를 실행하면 결과는 다음과 비슷합니다:

root #iw dev wlp9s0 info
Interface wlp9s0
	ifindex 3
	wdev 0x1
	addr 00:00:00:00:00:00
	type managed
	wiphy 0
	channel 11 (2462 MHz), width: 20 MHz (no HT), center1: 2462 MHz
	txpower 30.00 dBm

현재 연결 상태를 확인하려면:

root #iw dev wlp9s0 link
Not connected.

또는

root #iw dev wlp9s0 link
Connected to 00:00:00:00:00:00 (on wlp9s0)
	SSID: GentooNode
	freq: 2462
	RX: 3279 bytes (25 packets)
	TX: 1049 bytes (7 packets)
	signal: -23 dBm
	tx bitrate: 1.0 MBit/s
참고
일부 무선 네트워크 카드는 wlp9s0 대신 wlan0또는 ra0 장치 이름을 갖습니다. 정확한 장치 이름을 알아보려면 iplink를 실행하십시오.

대부분 사용자에게 바꾸어야 할 중요한 두가지 항목이 있는데, ESSID(무선 네트워크 이름으로 알려짐)와 경우에 따라 바꿀 WEP 키입니다.

  • 우선 인터페이스 활성화 여부를 확인합니다:
root #ip link set dev wlp9s0 up
  • GentooNode 공개 네트워크로 연결하려면:
root #iw dev wlp9s0 connect -w GentooNode
  • 16진수 WEP 키를 사용하여 연결하려면, 키 값 앞에 d:를 앞에 붙이십시오:
root #iw dev wlp9s0 connect -w GentooNode key 0:d:1234123412341234abcd
  • ASCII WEP 키로 연결하려면:
root #iw dev wlp9s0 connect -w GentooNode key 0:some-password
참고
무선 네트워크를 WPA또는 WPA2로 설정한다면 wpa_supplicant를 사용해야합니다. 젠투 리눅스에서 무선 네트워크를 설정하는 내용을 더 많이 알아보려면 젠투 핸드북의 무선 네트워크 절을 읽어보십시오.

iw dev wlp9s0 명령으로 무선 네트워크 설정을 확인하십시오. 무선 네트워크가 동작한다면, 다음 절(네트워크 용어 이해) 에서 설명하는 IP 수준 네트워크 옵션을 설정하거나 이전에 설명한 net-setup 도구를 사용하십시오.

네트워크 용어 이해

참고
IP 주소, 브로드캐스트 주소, 네트워크 마스크, 네임서버를 알고 있다면, 이 하위 절을 건너뛰고 ifconfigroute 사용으로 계속 진행하십시오.

위에서 시도한 모든 수단이 실패했다면, 네트워크를 직접 설정해야합니다. 모든게 다 어렵진 않습니다만, 약간의 네트워크 용어 지식과 기본 개념이 필요합니다. 이 절을 다 읽고 나면 사용자 여러분은 게이트웨이가 무엇인지, 네트워크 마스크 제공 목적이 무엇인지, 브로드캐스트 주소는 어떻게 구성하며, 시스템에서 네임서버가 왜 필요한지 깨닫게 됩니다.

네트워크에서는, 호스트를 IP 주소(인터넷 프로토콜 주소)로 식별합니다. 각 주소는 0부터 255 사이의 4개의 숫자의 조합으로 이루어집니다. 글쎄요. 최소한 IPv4(IP 버전 4)를 사용할 때의 이야깁니다. 실제로는 IPv4 주소는 32비트(1과 0)로 이루어져있습니다. 예제를 보도록 하겠습니다:

코드 IPv4 주소 예제
IP Address (numbers):   192.168.0.2
IP Address (bits):      11000000 10101000 00000000 00000010
                        -------- -------- -------- --------
                           192      168       0        2
참고
IPv4 다음, IPv6에서는 128 비트(1과 0)를 사용합니다. 이 절에서는 IPv4 주소를 중점적으로 다룹니다.

IP주소는 모든 네트워크에 접근할 수 있는 개별 호스트에 대해 유일합니다(예를 들자면 네트워크에 도달하려는 모든 호스트는 반드시 유일한 IP 주소를 지니고 있어야합니다). 네트워크 내외부간 호스트를 식별하기 위한 IP 주소는 두 부분으로 나눕니다. 네트워크 파트와 호스트 파트입니다.

구분은 여러 개의 1과 그 다음 따라오는 여러 개의 0으로 이루어진 네트워크 마스크로 적습니다. 1 부분에 대응하는 IP 부분은 네트워크 파트, 0 부분에 대응하는 IP 부분은 호스트 파트입니다. 보통 네트워크 마스크는 IP 주소처럼 적습니다.

코드 네트워크/호스트 구분 예제
IP address:    192      168      0         2
            11000000 10101000 00000000 00000010
Netmask:    11111111 11111111 11111111 00000000
               255      255     255        0
           +--------------------------+--------+
                    Network              Host

다시 말해, 192.168.0.14는 예제 네트워크의 일부이지만, 192.168.1.2는 아닙니다.

브로드캐스트 주소는 네트워크에서 동일한 네트워크에 속하지만, 호스트 부분에 있어서는 유일합니다. 모든 호스트는 이 IP 주소로 네트워크 상에서 대기합니다. 사실, 브로드캐스트 패킷을 기다리려는 의미입니다.

코드 브로드캐스트 주소
IP address:    192      168      0         2
            11000000 10101000 00000000 00000010
Broadcast:  11000000 10101000 00000000 11111111
               192      168      0        255
           +--------------------------+--------+
                     Network             Host

인터넷 돌아보기가 가능하려면, 네트워크에 연결한 각각의 컴퓨터에는 어떤 호스트가 인터넷 연결을 공유하는지 알아야 합니다. 이 호스트를 게이트웨이라고 합니다. 이 호스트가 일반 호스트이기 때문에 일반 IP 주소(예: 192.168.0.1)를 갖습니다.

앞에서 모든 호스트에는 자체적으로 IP 주소를 가지고 있다고 언급했습니다. 호스트에 (IP 대신) 이름으로 접근하려면, 이름(dev.gentoo.org)을 IP(64.5.62.82)로 변환하는 서비스가 필요합니다. 이를 name 서비스라고 합니다. 이 서비스를 활용하려면 /etc/resolv.conf에 네임서버를 정의해야합니다.

어떤 경우, 게이트웨이에서 네임서버 기능을 제공하기도 합니다. 그렇지 않은 경우에는 ISP 업체에서 이 파일에 입력할 네임서버를 제공합니다.

요약하자면 과정을 계속 진행하기 위해 다음 정보가 필요합니다:

네트워크 항목 예제
시스템 IP 주소 192.168.0.2
네트워크 마스크 255.255.255.0
브로드캐스트 192.168.0.255
게이트웨이 192.168.0.1
네임서버 195.130.130.5, 195.130.130.133

ifconfig와 route 사용

네트워크 설정은 다음 3단계로 이루어집니다

  1. ifconfig로 IP 주소를 할당합니다
  2. route로 게이트웨이로의 라우팅을 설정합니다
  3. /etc/resolv.conf에 네임서버 IP를 저장하여 마무리합니다

IP 주소를 할당하려면, 브로드캐스트 주소와 네트워크 마스크가 필요합니다. 그러면 ${IP_ADDR}를 올바른 IP 주소로, ${BROADCAST}를 올바른 브로드캐스트 주소로, ${NETMASK}를 올바른 네트워크마스크로 바꾸어 다음 명령을 실행하십시오:

root #ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up

route를 사용하여 라우팅을 설정하십시오. ${GATEWAY}를 올바른 게이트웨이 IP 주소로 바꾸십시오:

root #route add default gw ${GATEWAY}

이제 /etc/resolv.conf를 여십시오:

root #nano -w /etc/resolv.conf

다음 양식에 맞춰 네임서버 주소를 채우십시오. ${NAMESERVER1}${NAMESERVER2}를 적절한 네임서버 주소로 바꾸십시오:

코드 /etc/resolv.conf에서 사용하는 기본 양식
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}

다 됐습니다. 이제 몇 군데 인터넷 서버(Google 같은 곳)로 ping을 시도하여 테스트해보십시오. 동작한다면, 축하드립니다. 디스크 준비로 계속 진행하십시오.




MIPS 핸드북
설치
설치 정보
매체 선택
네트워크 설정
디스크 준비
스테이지 3 설치
베이스 시스템 설치
커널 설정
시스템 설정
도구 설치
부트로더 설정
마무리
젠투 활용
포티지 소개
USE 플래그
포티지 기능
초기화 스크립트 시스템
환경 변수
포티지 활용
파일 및 디렉터리
변수
소프트웨어 브랜치 함께 사용하기
추가 도구
꾸러미 저장소 개별 설정
고급 기능
네트워크 설정
시작하기
고급 설정
모듈러 네트워크
무선 네트워크
기능 추가
동적 관리


블록 장치 소개

블록 장치

리눅스 파일 시스템, 분할 영역, 블록 장치 등 젠투 리눅스 및 일반적인 리눅스 운영체제의 바람직한 디스크 측면의 양상을 살펴보도록 하겠습니다. 디스크와 파일 시스템의 입출력을 이해하고 나서, 젠투 리눅스 설치에 필요한 분할 영역과 파일 시스템을 설정하겠습니다.

시작에 앞서 블록 장치를 살펴보도록 하죠. 아마~도 리눅스 시스템에서 첫번째 드라이브로 표시하는 대부분 잘 알려진 블록 장치는 /dev/sda겠죠. SCSI와 직렬 ATA 드라이브 둘 다 /dev/sd*와 같은 식으로 표시합니다. 게다가 커널의 libata 프레임워크에서는 IDE 드라이브도 마찬가지로 /dev/sd*로 표시합니다. 이전 장치 프레임워크에서 첫번째 IDE 드라이브는 /dev/hda입니다.

위에 나타낸 블록 장치는 디스크의 추상 인터페이스를 표현합니다. 사용자 프로그램은 블록 장치가 IDE가 됐든 SCSI가 됐든 뭐가 됐든지간에 신경쓰지 않고 디스크와 소통을 수행할 때 이 블록 장치를 사용할 수 있습니다. 프로그램에서는 디스크의 저장 공간에 대해, 연속적이며, 임의로 접근하는 512 바이트 블록의 모음으로 다룰 수 있습니다.


공간 분할

이론적으로는 리눅스 시스템을 전체 디스크에 넣을 수 있지만, 실제론 거의 불가능합니다. 대신 전체 블록 장치를 작게 나누어 더욱 관리하기 쉬운 블록 장치를 만들 수 있습니다. 이를 분할 영역(파티션)이라고 부릅니다.

분할 배치 설계

분할 영역을 얼마나 많이, 크게 할까요?

분할 영역의 수는 환경에 따라 다릅니다. 예를 들어, 사용자가 많을 경우 보안성을 개선하고 백업을 쉽게 하기 위해 /home/을 나누는 것이 좋습니다. 젠투를 메일 서버로 설치한다면, /var/에 모든 메일을 저장하므로 /var/를 나누어야 합니다. 파일 시스템의 탁월한 선택은 성능을 극대화합니다. 게임 서버는 게임 서버를 설치할 /opt/를 따로 나눕니다. 이유는 /home/과 비슷합니다: 보안과 백업이죠. 대부분의 상황에서 /usr/는 거대한 상태고 남아있습니다. 주요 프로그램을 저장할 뿐만 아니라, (보통 /usr/portage에 기본으로 들어가는) 젠투 이빌드 저장소는 거의 650MB를 차지합니다. 이 디스크 공간은 보통 이빌드 저장소내에 저장하는 packages/distfiles/ 디렉터리는 제외하고 추산합니다.

관리자 취향에 달려있습니다. 분할 영역 또는 볼륨을 나누면 다음과 같은 장점이 있습니다:

  • 각 분할 영역 또는 볼륨에 대해 최상의 동작을 수행하는 파일 시스템을 선택합니다.
  • 제 기능을 상실한 도구가 분할 영역 또는 볼륨에 계속 파일을 기록할 경우, 남아 있는 공간이 없어져 전체 시스템이 동작하지 않습니다.
  • 필요한 경우, (이 장점은 여러 개의 분할 영역보다는 여러 대의 디스크에서 더 돋보이지만) 동시에 여러 분할 영역을 검사할 수 있어, 파일 시스템 검사 시간을 줄일 수 있습니다.
  • 일부 분할 영역 또는 볼륨을 읽기 전용, nosuid(setuid 무시), noexec(실행 비트 무시) 등으로 마운트하여 보안성을 개선할 수 있습니다.

그러나, 마찬가지로 다중 분할 영역에는 단점도 존재합니다. 제대로 설정하지 않으면 어떤 분할 영역에는 공간이 상당히 남지만, 다른 분할 영역은 그렇지 않을 수 있습니다. 다른 골칫거리는 분할 영역이 나뉘어져 있는 상황입니다. /usr/ 또는 /var/와 같은 중요한 마운트 지점은 특히 그렇습니다. 다른 부팅 스크립트를 시작하기 전에 분할 영역을 마운트하려면 관리자가 종종 initramfs로 부팅해야합니다. 항상 있는 경우는 아니기 때문에 결과가 다양하게 나타납니다.

디스크에서 GPT 레이블을 사용하지 않으면 SCSI와 SATA에서는 분할 영역 갯수가 15개로 제한되어있습니다.

스왑 공간이 무엇인가요?

완벽한 스왑 분할 영역 값은 없습니다. 스왑 영역의 존재 목적은 내부 메모리(RAM)가 용량 고갈에 처해있을 때 커널에서 디스크 공간을 제공하려는 것입니다. 스왑 영역은 커널에서 곧 접근하지 않을 메모리 페이지를 디스크(스왑 또는 페이지-아웃)에 옮기고 메모리를 확보할 수 있도록 합니다. 물론 메모리가 갑자기 필요할 때도 이 페이지를 메모리에 되돌려놓습니다만(페이지-인), 시간이 오래걸립니다(내부 메모리에 비해 디스크는 비교적 매우 느립니다).

시스템이 메모리를 집중적으로 사용하는 프로그램을 실행하려 하지 않거나 시스템에 충분한 메모리가 있을 경우 많은 스왑 영역이 필요하지 않을지도 모릅니다. 그러나 스왑 영역은 최대 절전모드 기능을 사용할 경우 전체 메모리 공간을 사용하기도 합니다. 시스템을 최대 절전모드로 진입하려 한다면, 더 큰 스왑 영역이 필요하며, 최소한, 종종 시스템에 대용량의 메모리를 설치합니다.


fdisk 사용

SGI 머신: SGI 디스크 레이블 만들기

SGI 시스템의 모든 디스크는 SGI 디스크 레이블이 필요한데 썬과 MS-DOS의 디스크 레이블의 기능과 비슷합니다. 여기에는 디스크 분할 영역 정보를 저장합니다. 새 SGI 디스크 레이블을 만들면 디스크에 다음 두가지 특별한 분할 영역을 만듭니다.

  • SGI 볼륨 헤더(9번째): 이 분할 영역은 중요합니다. 부트로더가 위치할 곳이며 어떤 경우는 커널 이미지도 들어갑니다.
  • SGI 볼륨(11번째): 이 분할 영역은 썬 디스크 레이블의 세번째 "전체 디스크" 분할 영역과 유사한 목적으로 씁니다. 이 분할 영역은 전체 디스크를 차지하며, 건드려선 안됩니다. 문서상에 남기지 않은 방식(또는 어떤 방식에 있어서는 IRIX에서 사용)으로 PROM의 동작을 보조하는 다른 분할 영역과는 달리 특별한 목적으로 쓰지 않습니다.
경고
SGI 볼륨 헤더는 0번 실린더부터 시작해야합니다. 이게 실패하면 디스크 부팅이 실패한다는 의미입니다.

다음은 fdisk 세션에서 발췌한 예제입니다. 개인 취향에 맞춰 읽어내려가면서 설정을 적당히 바꾸십시오...

root #fdisk /dev/sda

전문가 모드로 전환하십시오:

Command (m for help):x

m을 눌러 전체 메뉴 옵션을 표시하십시오:

Expert command (m for help):m
Command action
   b   move beginning of data in a partition
   c   change number of cylinders
   d   print the raw data in the partition table
   e   list extended partitions
   f   fix partition order
   g   create an IRIX (SGI) partition table
   h   change number of heads
   m   print this menu
   p   print the partition table
   q   quit without saving changes
   r   return to main menu
   s   change number of sectors/track
   v   verify the partition table
   w   write table to disk and exit

SGI 디스크 레이블을 만드십시오:

Expert command (m for help):g
Building a new SGI disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content will be irrecoverably lost.

메인 메뉴로 돌아가십시오:

Expert command (m for help):r

현재 분할 영역 배치를 살펴보십시오:

Command (m for help):p
Disk /dev/sda (SGI disk label): 64 heads, 32 sectors, 17482 cylinders
Units = cylinders of 2048 * 512 bytes
  
----- partitions -----
Pt#     Device  Info     Start       End   Sectors  Id  System
 9:  /dev/sda1               0         4     10240   0  SGI volhdr
11:  /dev/sda2               0     17481  35803136   6  SGI volume
----- Bootinfo -----
Bootfile: /unix
----- Directory Entries -----
참고
디스크에 기존의 SGI 디스크 레이블이 남아있다면 fdisk에서 새 레이블을 만들 수 없습니다. 이런 문제를 회피할 수 있는 방법이 두가지가 있는데 하나는 썬 또는 MS-DOS 디스크 레이블을 만들고, 디스크에 바뀐 내용을 기록한 후, fdisk를 다시 시작하는 방법입니다. 다른 방법은 다음 명령으로 분할 영역 테이블에 널 데이터를 엎어쓰는 방법입니다:dd if=/dev/zero of=/dev/sda bs=512 count=1

SGI 볼륨 헤더 크기 조절

중요
이 단계는 fdisk 버그 때문에 자주 필요합니다. 이런 문제 때문에 볼륨 헤더를 제대로 만들지 못하며, 시작/끝 실린더 값이 0이 됩니다. 이 동작은 다중 분할 영역을 만들지 못하게 합니다. 이 문제를 벗어나려면 ... 계속 읽어내려가십시오.

이제 SGI 디스크 레이블을 만들었고 분할 영역을 지정할 차례입니다. 위 예제에서 이미 두 분할 영역을 지정했습니다. 이 분할 영역은 위에서 언급한 대로 특별하며 일반 분할 영역으로 바꿀 수 없습니다. 그러나 젠투를 설치할 때는 부트로더를 불러와야 하고 가능하다면 여러가지 커널 이미지(시스템 형식에 따름)를 볼륨 헤더에 바로 넣어야합니다. 볼륨 헤더 자체는 어떤 크기로든 8개 문자 이름까지만 허용하는 여덟 개의 이미지를 가질 수 있습니다.

볼륨 헤더를 더 크게 만드는 과정은 쉽지 않습니다. 약간 요령을 피워야합니다. 간단하게 지울 수 없으며 fdisk 기능이 모자란 상황이라 볼륨 헤더를 다시 추가할 수 없습니다. 아래 보여드릴 예제에서 50MB /boot 분할 영역과 결합한 50MB 볼륨 헤더를 만들겠습니다. 실제 디스크의 배치는 다양하지만, 여기선 예제 목적입니다.

새 분할 영역을 만드십시오:

Command (m for help):n
Partition number (1-16): 1
First cylinder (5-8682, default 5): 51
 Last cylinder (51-8682, default 8682): 101

어떻게 fdisk에서 1번 분할 영역을 최소한 실린더 5로 시작하는 분할 영역으로 다시 만들었을까요? SGI 볼륨 헤더를 이 방식으로 삭제하고 다시 만들면 우리가 인식하는 동일한 문제가 반복됩니다. 이 예제에서는 /boot/를 50MB로 설정하려 했으므로 실린더 51(볼륨 헤더는 실린더 0으로 시작한다고 했죠? 아마?)에서 /boot/를 시작하고, 마지막 실린더를 101로 설정하여 거의 50MB(1-5MB 내외 차이)가 되도록 설정하겠습니다.

분할 영역을 삭제하십시오:

Command (m for help):d
Partition number (1-16): 9

이제 다시 만드십시오:

Command (m for help):n
Partition number (1-16): 9
First cylinder (0-50, default 0): 0
 Last cylinder (0-50, default 50): 50

fdisk를 쓰는 방법을 모르겠다면 Cobalt에서 하드 디스크 공간 분할하는 절차를 계속 읽어내려가십시오. 개념은 완전히 동일합니다. 단지 볼륨 헤더와 전체 디스크 분할 영역을 남겨놓는걸 기억하시면 됩니다.

이 과정을 끝내면 필요한만큼 나머지 분할 영역을 만듭니다. 나머지 모든 분할 영역을 배치하고 나면 스왑 분할 영역 ID를 리눅스 스왑 82번으로 설정했는지 확인하십시오. 기본값은, 리눅스 네이티브 83번입니다.

Cobalt 드라이브 공간 분할

Cobalt 머신에서 BOOTROM은 MS-DOS MBR을 찾으므로 드라이브 공간 분할은 상대적으로 쉽습니다. 사실 인텔 x86 머신에서 진행하는 동일한 방법으로 끝냅니다. 그러나 알아두어야 할 몇가지가 있습니다.

  • 앞으로 준비할 /dev/sda1 분할 영역의 Cobalt 펌웨어는 ext2 리비전 0로 포맷한 리눅스 분할 영역입니다. ext2 리비전 1 분할 영역으로는 동작하지 않습니다!(Cobalt BOOTROM은 ext2r0만 인식합니다)
  • 위에 언급한 분할 영역에는 커널로서 읽어들이려 gzip으로 압축한 ELF 이미지 vmlinux.gz를 분할 영역의 루트에 넣어야합니다.

이런 이유로 CoLo와 커널을 설치할 분할 영역 /boot/은 EXT2r0로 포맷하고 20MB 미만의 공간으로 만드는 것이 좋습니다. 이를 통해 사용자는 루트 파일 시스템을 최신 파일 시스템(EXT3 또는 ReiserFS)를 다룰 수 있습니다.

예제를 통해 나중에 /boot/ 분할 영역으로 마운트할 /dev/sda1를 만들었다고 가정하겠습니다. / 를 만들려면 PROM의 기대 요구 값을 기억해두십시오.

따라서 계속 진행하겠습니다. 프롬프트에서 fdisk /dev/sda를 입력하여 분할 영역을 만드십시오. 주로 사용하는 명령은 다음과 같습니다:

코드 중요한 fdisk 명령 목록
    o: Wipe out old partition table, starting with an empty MS-DOS partition table
    n: New Partition
    t: Change Partition Type
        Use type 82 for Linux Swap, 83 for Linux FS
    d: Delete a partition
    p: Display (print) Partition Table
    q: Quit -- leaving old partition table as is.
    w: Quit -- writing partition table in the process.
root #fdisk /dev/sda
The number of cylinders for this disk is set to 19870.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
(1) software that runs at boot time (e.g., old versions of LILO)
(2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

기존 분할 영역을 지우는걸로 시작합니다:

Command (m for help):o
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
  
  
The number of cylinders for this disk is set to 19870.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
(1) software that runs at boot time (e.g., old versions of LILO)
(2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

p 명령으로 분할 영역 테이블을 비웠는지 확인하십시오:

Command (m for help):p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  
   Device Boot      Start         End      Blocks   Id  System

/boot 분할 영역을 만드십시오:

Command (m for help):n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-19870, default 1):
Last cylinder or +size or +sizeM or +sizeK (1-19870, default 19870): +20M

분할 영역 내용을 표시할 때, 새로 만든 분할 영역을 확인하십시오:

Command (m for help):p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          40       20128+  83  Linux

이제 나머지 디스크 영역을 차지하는 확장 분할 영역을 만들겠습니다. 확장 분할 영역에서 나머지 분할 영역(논리 분할 영역)을 만들겠습니다:

Command (m for help):n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (41-19870, default 41):
Using default value 41
Last cylinder or +size or +sizeM or +sizeK (41-19870, default 19870):
Using default value 19870

이제 /, /usr, /var 등의 분할 영역을 만들겠습니다.

Command (m for help):n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (41-19870, default 41):<Press ENTER>
Using default value 41
Last cylinder or +size or +sizeM or +sizeK (41-19870, default 19870): +500M

필요한 만큼 반복하십시오.

마지막일지 모르겠지만 이걸로 끝이 아닌 스왑 영역입니다. 최소한 250MB의 스왑 공간이 필요하며 1GB 정도면 충분합니다:

Command (m for help):n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (17294-19870, default 17294): <Press ENTER>
Using default value 17294
Last cylinder or +size or +sizeM or +sizeK (1011-19870, default 19870): <Press ENTER>
Using default value 19870

이미 확인했지만서도, 분할 영역 테이블을 다시 확인하면 모든 준비가 끝난 상태입니다.

Command (m for help):p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  
Device Boot      Start         End      Blocks      ID  System
/dev/sda1               1          21       10552+  83  Linux
/dev/sda2              22       19870    10003896    5  Extended
/dev/sda5              22        1037      512032+  83  Linux
/dev/sda6            1038        5101     2048224+  83  Linux
/dev/sda7            5102        9165     2048224+  83  Linux
/dev/sda8            9166       13229     2048224+  83  Linux
/dev/sda9           13230       17293     2048224+  83  Linux
/dev/sda10          17294       19870     1298776+  83  Linux

이제 #10 스왑 분할 영역이 여전히 83번 형식으로 되어 있지요? 적당한 형식으로 바꾸겠습니다.

Command (m for help):t
Partition number (1-10): 10
Hex code (type L to list codes): 82
Changed system type of partition 10 to 82 (Linux swap)

이제 확인해보겠습니다:

Command (m for help):p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  
Device Boot      Start         End      Blocks      ID  System
/dev/sda1               1          21       10552+  83  Linux
/dev/sda2              22       19870    10003896    5  Extended
/dev/sda5              22        1037      512032+  83  Linux
/dev/sda6            1038        5101     2048224+  83  Linux
/dev/sda7            5102        9165     2048224+  83  Linux
/dev/sda8            9166       13229     2048224+  83  Linux
/dev/sda9           13230       17293     2048224+  83  Linux
/dev/sda10          17294       19870     1298776+  82  Linux Swap

새 분할 영역 테이블을 기록하겠습니다:

Command (m for help):w
The partition table has been altered!
  
Calling ioctl() to re-read partition table.
Syncing disks.


파일 시스템 만들기

도입부

이제 분할 영역을 만들었고, 파일 시스템을 제 위치에 얹어놓을 차례입니다. 다음 절에서는 리눅스에서 지원하는 다양한 파일 시스템을 설명합니다. 어떤 파일 시스템을 사용할 지 이미 알고 있는 독자라면 파티션에 파일 시스템 반영하기로 계속 진행할 수 있습니다. 그렇지 않으면 계속 읽어 내려가면서 쓸 수 있는 파일시스템이 어떤 종류가 있는지 알아보십시오.

파일 시스템

다양한 파일 시스템이 있습니다. 일부는 mips 아키텍처에서 안정적입니다 - 중요한 분할 영역을 위해서라면 좀 더 시험적인 분할 영역을 선택하기 전에 파일 시스템과 지원 상태에 대한 내용을 좀 더 읽어보시는 것이 좋겠습니다.

btrfs
스냅샷, 검사합을 통한 자체복구, 투명 압축, 하위 볼륨, 통합 RAID 같은 고급 기능을 제공하는 차세대 파일 시스템입니다. 일부 배포판은 이미 특별한 옵션으로 탑재했지만 실무에서 쓰기엔 준비가 미흡합니다. 파일 시스템이 깨지는 경우가 다반사입니다. 개발자들은 이전 버전에 문제가 있기 때문에 안전을 위해 최신 커널 버전을 사용하라고 합니다. 몇년 동안 이래왔고 무엇인가 바뀐다고 하면 너무 일찍 언급합니다. 깨지는 문제를 고친다고 하면 가끔 이전 커널에 있던 대로 돌아갑니다. 파일 시스템을 쓰려 한다면 위험을 감수하십시오!
ext2
검증된 리눅스 파일시스템이지만 메타데이터 저널링기능이 없습니다. 이는 시작시간의 파일시스템 검사루틴에서 조금 더 많은 시간소모를 할 수 있다는 의미입니다. 이제 일관성 검사를 더욱 빠르게 할 수 있고 비 저널링의 대체 수단으로써 일반적으로 더욱 선호하는 차세대 저널링 파일시스템의 상당한 선택요소가 있습니다. 저널링 파일시스템은 시스템을 시동하고 파일시스템에 비일관 상태가 발생했을 때 긴 지연시간을 줄입니다.
ext3
빠른 복구 기능을 제공하는 메타데이터 저널링을 제공하며, 게다가 전체 데이터와 정렬된 데이터 저널링과 같은 강화 저널링 모드도 지원하는 ext2 파일시스템의 저널링 버전입니다. 대부분의 모든 상황에서 고성능 동작이 가능한 HTree 색인을 사용합니다. 간단히 말해 ext3는 아주 좋은 믿을 수 있는 파일시스템입니다. ext3을 모든 목적의 모든 플랫폼 파일시스템으로 추천합니다.
ext4
ext3으로부터 갈라져 나와 성능을 향상시키고 디스크상 형식에 대해 적절한 수정을 가하여 용량 제한을 없애는 새로운 기능을 포함하여 만든 파일시스템입니다. 볼륨 하나의 크기를 1EB까지 늘릴 수 있고, 파일 최대 크기는 16TB가 될 수 있습니다. 기존의 ext2/3 비트맵 블록 할당 대신에 ext4는 대용량 파일 성능을 끌어올리고 단편화를 줄인 extents를 사용합니다. ext4는 디스크의 데이터 배치에 대해 최적화 할 더 많은 방법을 파일시스템 드라이버에 제공하는 좀 더 세련된 블록 할당 알고리즘(지연할당 및 다중블록 할당)을 제공합니다. ext4는 모든 목적의 모든 플랫폼의 파일 시스템에 추천합니다.
f2fs
플래시 지향 파일 시스템은 처음에 낸드 플래시 메모리에서 활용할 목적으로 삼성에서 만들었습니다. 2016년 2/4분기 시점에, 이 파일 시스템은 여전히 미완의 상태지만 젠투를 마이크로SD 카드, USB 드라이브, 기타 플래시 기반 저장 장치에 설치할 경우 괜찮은 선택입니다.
JFS
IBM의 고성능 저널링 파일시스템입니다. JFS는 다양한 상황속에서도 좋은 성능을 내는, 가볍고 빠르며 믿을 수 있는 B+트리 기반 파일시스템입니다.
ReiserFS
전반적으로 좋은 성능을 내며 특히 용량이 작은 수많은 파일들을 다룰 때 더 많은 CPU 사이클을 소비하는 경우 좋은 성능이 나는 B+트리 기반 저널링 파일시스템입니다. ReiserFS는 다른 파일시스템보다 덜 관리중인 것으로 보입니다.
XFS
견고한 기능 모음을 지니고 있으며 확장성에 있어 최적화 된 메타데이터 저널링 파일시스템입니다. XFS는 다양한 하드웨어 문제에 대해 그다지 관대하진 않은 것 같습니다.
vfat
FAT32로 알려진 vfat은 리눅스에서 지원하지만 권한 설정은 지원하지 않습니다. 여러 운영 체제간 상호 운용성을 목적으로(주로 마이크로소프트 윈도우) 활용하지만 일부 시스템 펌웨어(UEFI)용으로도 필요합니다.
NTFS
"New Technology" 파일 시스템은 마이크로 소프트의 대표 파일 시스템입니다. 위의 vfat과 비슷하게 BSD 또는 리눅스에서 필요한 권한 설정 또는 확장 속성을 저장하지 않기에 루트 파일 시스템으로 활용할 수 없습니다. 오직 마이크로소프트 윈도우와 상호 연동할 때만 활용해야합니다(오직 이 경우에만 역점을 둠을 참고하십시오).

(8GB 이하의) 작은 분할 영역에서 ext2, ext3, ext4 를 사용한다면, 충분한 inode 갯수를 예약할 적당한 옵션으로 파일 시스템을 만들어야합니다. mke2fs(mkfs.ext2)에서는 "아이노드 당 바이트" 설정을 사용하여 파일 시스템에서 보유할 아이노드 갯수를 계산합니다. 작은 분할 영역일수록 아이노드 갯수를 늘리는 것이 좋습니다.

ext2에서는, 다음 명령을 사용하시면 됩니다:

root #mkfs.ext2 -T small /dev/<device>

ext3과 ext4에서는, -j 옵션을 추가하여 저널링을 활성화하십시오:

root #mkfs.ext2 -j -T small /dev/<device>

각 16kB 영역을 하나의 4kB 영역으로 줄이는 "아이노드 당 바이트"로 주어진 파일 시스템의 아이노드 갯수를 네 배로 뻥튀기(?)합니다. 비율값을 부여하여 속성을 조절할 수 있습니다:

root #mkfs.ext2 -i <ratio> /dev/<device>

분할 영역에 파일 시스템 반영하기

분할 영역 또는 볼륨에 파일 시스템을 만들 때, 각 파일 시스템에서 사용할 수 있는 도구가 있습니다. 각 파일 시스템의 추가 정보를 살펴보려면 하단 표의 파일 시스템 이름을 누르십시오:

파일시스템 구성 명령 최소 CD 포함? 꾸러미
btrfs mkfs.btrfs Yes sys-fs/btrfs-progs
ext2 mkfs.ext2 Yes sys-fs/e2fsprogs
ext3 mkfs.ext3 Yes sys-fs/e2fsprogs
ext4 mkfs.ext4 Yes sys-fs/e2fsprogs
f2fs mkfs.f2fs Yes sys-fs/f2fs-tools
jfs mkfs.jfs Yes sys-fs/jfsutils
reiserfs mkfs.reiserfs Yes sys-fs/reiserfsprogs
xfs mkfs.xfs Yes sys-fs/xfsprogs
vfat mkfs.vfat Yes sys-fs/dosfstools
NTFS mkfs.ntfs Yes sys-fs/ntfs3g

예를 들어, 예제 분할 영역 구조와 같이 ext2 형식의 부팅 분할 영역 (/dev/sda1) 과 ext4 형식의 루트 분할 영역 (/dev/sda5)을 취하려면, 다음 명령을 사용할 수 있습니다:

root #mkfs.ext2 /dev/sda1
root #mkfs.ext4 /dev/sda5

이제 새로 만든 분할 영역(또는 논리 분할 영역)에 파일 시스템을 만들겠습니다.

스왑 분할 영역 활성화

mkswap은 스왑 분할 영역을 초기화하는 명령입니다:

root #mkswap /dev/sda10

스왑 분할 영역을 활성화하려면, swapon 명령을 사용하십시오:

root #swapon /dev/sda10

위에 언급한 명령으로 스왑을 만들고 활성화하십시오.

루트 분할 영역 마운트

이제 분할 영역을 초기화했고 파일 시스템을 넣었으므로 분할 영역을 마운트할 차례입니다. mount 명령을 사용하지만 만들어놓은 모든 분할 영역에 대해 마운트 디렉터리를 만들 필요는 없다는 사실을 잊지 마십시오. 예제를 통해 우리는 루트 분할 영역을 마운트하겠습니다:

root #mount /dev/sda5 /mnt/gentoo
참고
/tmp/를 따로 나눈 분할 영역에 두어야 한다면, 마운트하기 전에 퍼미션을 바꾸었는지 확인하십시오:
root #chmod 1777 /mnt/gentoo/tmp
이 설정은 /var/tmp에도 적용 유지합니다.

지침을 따르고 나면 proc 파일 시스템(커널 가상 인터페이스)와 다른 커널 의사 파일 시스템을 마운트합니다. 그러나 우선 젠투 설치 파일을 설치하겠습니다.




MIPS 핸드북
설치
설치 정보
매체 선택
네트워크 설정
디스크 준비
스테이지 3 설치
베이스 시스템 설치
커널 설정
시스템 설정
도구 설치
부트로더 설정
마무리
젠투 활용
포티지 소개
USE 플래그
포티지 기능
초기화 스크립트 시스템
환경 변수
포티지 활용
파일 및 디렉터리
변수
소프트웨어 브랜치 함께 사용하기
추가 도구
꾸러미 저장소 개별 설정
고급 기능
네트워크 설정
시작하기
고급 설정
모듈러 네트워크
무선 네트워크
기능 추가
동적 관리


스테이지 타르볼 설치하기

날짜 및 시간 설정

젠투를 설치하기 전 날짜와 시간을 올바르게 설정하는 것이 좋습니다. 시계를 잘못 설정하면 이상한 결과가 나타납니다. 베이스 시스템 파일은 정확한 타임스탬프를 찍어 압축 해제해야합니다. 사실, 일부 웹 사이트 및 서비스에서 보안 통신(SSL/TLS)을 수행하기 때문에 시스템 시계가 상당히 꼬여있으면 설치 파일을 모두 다운로드할 수 없습니다!

date 명령으로 현재 날짜와 시각을 확인하십시오:

root #date
Mon Oct  3 13:16:22 PDT 2016

날짜 시각이 잘못 나타났다면 아래 방식으로 고치십시오.

참고
실시간 클록(RTC)칩이 붙어있지 않은 마더보드의 경우 시간 서버로 시스템 시계를 자동으로 동기화하게 해야합니다. RTC 칩을 넣었지만 배터리에 문제가 있는 시스템에도 해당합니다.

자동

공식 젠투 설치 미디어에는 ntpd 명령(net-misc/ntp 꾸러미에 있음)이 들어있습니다. 공식 미디어에는 ntp.org 시간 서버를 가리키는 설정 파일이 들어있습니다. 시간 서버로 UTC 시간을 자동으로 동기화할 수 있습니다. 이 방식으로 시간을 동기화하려면 네트워크 설정이 필요하며, 모든 아키텍처에서 다 되는건 아닐 수도 있습니다.

경고
자동 시간 동기화에는 그만한 댓가가 따릅니다. 시스템 IP 주소와 관련 네트워크 정보를 시간 서버(이 경우 ntp.org)로 보냅니다. 개인 정보 유출을 걱정하는 사용자라면 아래 방식으로 시스템 시계를 설정하기 , 이 사항을 숙지해야합니다.
root #ntpd -q -g

수동

date 명령으로 시스템 시계를 직접 설정할 수도 있습니다. MMDDhhmmYYYY 형식으로 설정합니다(월,일,시,분,연도).

모든 리눅스 시스템에 UTC 시계 설정을 추천합니다. 시간대는 설치 과정 후반에 설정합니다. 시간대를 설정하면 시계를 지역 시간으로 나타냅니다.

예를 들어 2016년 10월 03일 13시 16분을 설정하려면:

root #date 100313162016

스테이지 타르볼 선택

Multilib (32비트 및 64비트)

시스텝 기본 타르볼을 선택하면, 특히 시스템 프로파일 선택을 진행할 때, 설치 과정의 나머지 시간을 절약할 수 있습니다. 스테이지 타르볼 선택은 앞으로의 시스템 설정에 직접적인 영향을 주며 이후에 발생할 두통을 예방할 수 있습니다. multilib 타르볼은 가능하면 64비트 라이브러리를 사용하며 호환성이 필요하면 32비트 버전을 대신 사용합니다. 주요 설치 과정에 있어 최상의 옵션이며, 앞으로 다양한 개별 설정을 유연하게 처리할 수 있기 때문입니다. 프로파일을 쉽게 바꿀 수 있는 시스템을 원한다면 프로세서 아키텍처에 해당하는 multilib 타르볼 옵션을 다운로드해야합니다.

대부분 사용자는 '고급' 타르볼 선택 항목을 활용하면 안됩니다. 이 항목은 특정 프로그램 또는 하드웨어 설정용으로 만들었습니다.

no-multilib(순수 64비트)

no-multilib 타르볼 시스템 베이스로 선택하면 완벽한 64비트 처리 시스템 환경을 갖춥니다. 이 환경은 multilib 프로파일로 전환하는 희한하지만 가능한 기능을 갖추고 있습니다. 정말 필요한 경우가 아닌 이상 처음 젠투를 사용하는 사람이라면 no-multilib 타르볼을 젠투에서 사용하지 않는게 좋습니다.

경고
no-multilib 시스템에서 multilib 시스템으로 이전할 경우 젠투 동작과 하부 단계 툴체인에 대한 해박한 지식이 필요합니다(게다가 이 문제는 툴체인 개발자들 마저도 이를 갈게 만듭니다). 비굴해서 그런게 아니며 이 안내서에서 다룰 내용의 범위를 벗어납니다.

스테이지 타르볼 다운로드

루트 파일 시스템을 마운트한 젠투 마운트 지점으로 이동하십시오(대부분 /mnt/gentoo):

root #cd /mnt/gentoo

설치 미디어에 따라, 스테이지 타르볼을 다운로드할때 필요한 도구는 웹 브라우저 뿐입니다.

그래픽 브라우저

완벽한 그래픽 여건을 갖춘 웹 브라우저에서 주 웹사이트 다운로드 페이지에서 스테이지 파일 URL을 그대로 복사해서 쓰는데 아무런 문제가 없습니다. 간단히 적절한 탭을 선택한 다음, 스테이지 파일 링크 위에 마우스 커서를 가져간 후, 마우스 오른쪽 단추를 누르고 링크 주소 복사 (Firefox) 또는 링크 위치 복사 (Chromium)를 선택하여 클립보드에 링크를 복사합니다. 그 후 명령행에서 wget 유틸리티 매개변수 자리에 붙여넣어 스테이지 타르볼을 내려받으십시오:

root #wget <PASTED_STAGE_URL>

명령행 브라우저

좀 더 예전부터 사용해온 독자 또는 젠투 사용자라면, 그래픽 방식이 아닌 메뉴기반 브라우저 links를 대신 선호할 지도 모르겠습니다. 스테이지 파일을 다운로드하려면 다음 명령으로 젠투 미러를 찾아보십시오:

root #links https://www.gentoo.org/downloads/mirrors/

links에서 HTTP 프록시를 사용하려면, -http-proxy 옵션으로 URL을 전달하십시오:

root #links -http-proxy proxy.server.com:8080 https://www.gentoo.org/downloads/mirrors/

links 다음에는 lynx 브라우저도 있습니다. links와 유사하게 비-그래픽 브라우저지만, 메뉴 기반 브라우저도 아닙니다.

root #lynx https://www.gentoo.org/downloads/mirrors/

프록시를 지정해야 한다면, http_proxy 또는 ftp_proxy 변수 값을 export로 처리하십시오:

root #export http_proxy="http://proxy.server.com:port"
root #export ftp_proxy="http://proxy.server.com:port"

미러 목록에서 가까운 미러를 선택하십시오. HTTP 미러를 사용하는 걸로 충분합니다만, 다른 프로토콜로도 쓸 수 있습니다. releases/mips/autobuilds/ 디렉터리로 이동하십시오. 존재하는 모든 스테이지 파일이 나타납니다(아마도 각각의 하위 아키텍처에 있는 하위 디렉터리에 있을지도 모릅니다). 그 중 하나를 선택하고 d를 눌러 다운로드하십시오.

스테이지 파일 다운로드가 끝나면 스테이지 타르볼 내용의 무결성을 검증하고 유효화할 수 있습니다. 이 부분은 다음 장에서 진행합니다.

스테이지 파일 검증 및 유효화에 관심 없는 분들은 q키를 눌러 명령행 브라우저를 닫고 바로 스테이지 타르볼 압축 해제 부분으로 넘어갈 수 있습니다.

검증 및 유효화

참고
어떤 타르볼의 경우는 xz 압축 상태로 제공합니다. .tar.xz 확장자로 끝나는 타르볼을 다운로드 받으실 때, 다음 명령을 실행할 경우 .tar.bz2 확장자에서 타르볼 파일 이름을 바꿔 확인하십시오.

최소 설치 CD 처럼, 추가로 검증하고 유효화할 다운로드 파일이 있습니다. 이 단계는 건너뛸 수 있지만 그냥 다운로드한 파일의 무결성에 신경 쓰는 사용자를 위해 제공합니다.

  • 스테이지 타르볼 파일 목록이 있는 .CONTENTS 파일.
  • 각각의 알고리즘으로 만든 스테이지 파일의 체크섬이 있는 .DIGESTS 파일.
  • .DIGESTS 파일과 마찬가지로 각각의 알고리즘으로 만든 스테이지 파일의 체크섬이 있지만, 젠투 프로젝트에서 제공했음을 확인할때 쓰는 암호화 서명도 들어있는 .DIGESTS.asc.

openssl을 사용하여 .DIGESTS 또는 .DIGESTS.asc 파일에서 제공하는 체크섬 출력을 비교하십시오.

SHA512 체크섬을 검증한다면:

root #openssl dgst -r -sha512 stage3-mips-<release>.tar.bz2

sha512sum 명령을 사용하는 다른 방법도 있습니다:

root #sha512sum stage3-mips-<release>.tar.bz2

월풀 체크섬을 검증하려면:

root #openssl dgst -r -whirlpool stage3-mips-<release>.tar.bz2

.DIGESTS(.asc) 파일에 등록한 값을 이 명령의 출력과 비교하십시오. 값이 일치해야 하며, 그렇지 않으면 다운로드한 파일(또는 digests 파일)이 깨진 상태입니다.

ISO 파일과 마찬가지로, gpg를 활용하여 .DIGESTS.asc 파일의 암호화 서명을 검증하여 누군가가 체크섬에 손을 댔는지 여부를 확인할 수 있습니다:

root #gpg --verify stage3-mips-<release>.tar.bz2,.DIGESTS.asc

스테이지 타르볼 압축 해제

이제 다운로드한 스테이지를 시스템에 압축해제하십시오. tar를 사용하여 진행하겠습니다:

root #tar xpvf stage3-*.tar.bz2 --xattrs-include='*.*' --numeric-owner

동일한 옵션(xpf--xattrs-include='*.*')을 사용했는지 확인하십시오. x는 추출, p는 권한 플래그 유지, f는 표준 출력이 아닌 파일로 추출함을 나타냅니다. --xattrs-include='*.*'는 압축 파일에 저장한 이름 영역 전체의 확장 속성을 포함합니다. 마지막으로 --numeric-owner 옵션은 얼리어답터가 공식 젠투 설치 미디어를 활용하지 않는다 할 지라도, 젠투 릴리즈 엔지니어링 팀이 의도한 대로 타르볼에서 풀려나온 파일의 사용자 ID와 그룹 ID가 동일하게 나왔는지 확인합니다.

이제 스테이지 파일의 압축을 해제했으니, 컴파일 옵션 설정으로 진행하십시오.

컴파일 옵션 설정

도입부

젠투를 최적화 하려는 목적으로 젠투에서 공식적으로 지원하는 꾸러미 관리자 포티지 동작에 영향을 줄 여러가지 변수를 설정할 수 있습니다. 이들 변수는 (export로) 환경 변수처럼 설정할 수 있습니다만 언제든 값이 유지되는 것은 아닙니다. 설정값을 유지하려, 포티지의 설정 파일 /etc/portage/make.conf 파일을 포티지에서 읽습니다.

참고
쓸 수 있도록 주석 처리하여 준비한 모든 변수 목록은 /mnt/gentoo/usr/share/portage/config/make.conf.example에 있습니다. 젠투 설치를 제대로 하기위해 설정이 필요한 변수만을 아래에 언급했습니다.

편집기를 실행(이 안내서에서는 nano를 사용합니다)하여 이 다음에 언급할 최적화 변수값을 바꾸어보겠습니다.

root #nano -w /mnt/gentoo/etc/portage/make.conf

make.conf.example 파일에서 파일을 어떤 식으로 구성해야 하는지 분명히 나타납니다: "#"(으)로 시작하는 줄은 주석이며, 다른 줄은 VARIABLE="content" 문법으로 작성한 변수 설정 부분입니다. 다양한 이들 변수에 대해서는 다음에 이야기하겠습니다.

CFLAGS와 CXXFLAGS

CFLAGSCXXFLAGS 변수는 gcc C/C++ 컴파일러의 최적화 플래그를 각각 지정합니다. 보통 여기에 지정하지만, 최적의 성능을 위해서는 각각의 프로그램에 플래그를 최적화해야합니다. 각각의 프로그램이 다르기 때문입니다. 그러나 그리 관리하기 쉬운게 아니므로 이 플래그 정의를 make.conf 파일에 다룹니다.

make.conf 에서는 보통 시스템에 가장 많이 영향을 줄 최적화 플래그를 지정해야합니다. 이 변수에 시험적인 설정은 넣지 마십시오. 최적화를 과도하게 하면 프로그램 동작이 잘못되는 수가 있습니다(깨지거나, 잘못되거나, 기능이 망가지거나).

가능한 모든 최적화 옵션을 설명하지는 않겠습니다. 이들을 전부 이해하려면 GNU 온라인 문서en 또는 gcc 정보 페이지(info gcc - 리눅스 시스템에서만 동작)를 참고하십시오. make.conf.example 파일 자체에 상당한 양의 예제와 정보를 담고 있습니다. 이것 또한 잊지 말고 살펴보십시오.

첫번째 설정은 대상 아키텍처 이름을 지정하는 -march= 또는 -mtune= 플래그입니다. 사용할 수 있는 옵션은 make.conf.example 파일에 (주석으로) 들어있습니다. 보통 사용하는 값은 컴파일러가 대상 아키텍처를 (사용자가 젠투를 설치하려는) 현재 시스템으로 설정하도록 하는 native 값입니다.

두번째는 gcc 최적화 수준 플래그를 지정하는 -O 플래그(숫자 영이 아닌 대문자 O임) 입니다. 가능한 클래스는 s(크기 최적화), 0(영. 최적화 안함), 1, 2, 또는 속도 최적화 를 위한 3 플래그(모든 클래스는 이전 클래스와 비슷하지만, 몇가지 특징을 추가함)입니다. 기본적으로 -O2를 추천합니다. 시스템 전반적인 영역에 있어 -O3이 문제를 일으키는것으로 알려져 있어 -O2에 집착하기를 추천합니다.

다른 최적화 플래그는 -pipe(다중 스테이지 컴파일간 통신에 임시 파일을 쓰는 대신 파이프를 활용)입니다. 생성 코드에 영향을 주지는 않지만 더 많은 메모리를 사용합니다. 메모리가 부족해지면, gcc를 강제로 끝냅니다. 이 경우 이 플래그를 사용하지 마십시오.

-fomit-frame-pointer(필요하지 않은 함수에 대한 프레임 포인터를 레지스터에서 계속 가지고 있지 않도록 하는 옵션)를 사용하면 프로그램을 디버깅하는동안 심각한 문제가 생길지도 모릅니다.

CFLAGSCXXFLAGS 변수를 지정하면, 각각의 최적화 플래그를 하나의 문자열로 합칩니다. 스테이지 3 아카이브에 들어있는 기본값은 풀려나온 값 자체로도 충분합니다. 다음 플래그는 예제일뿐입니다:

코드 CFLAGSCXXFLAGS 변수 예제
CFLAGS="-mabi=32 -mips4 -pipe -O2"
# Use the same settings for both variables
CXXFLAGS="${CFLAGS}"
요령
GCC 최적화 안내서에 다양한 컴파일 옵션이 시스템에 어떻게 영향을 주는지 많은 설명을 넣었지만, 시스템 최적화를 시작하려는 초보자에게는 Safe CFLAGS(en)가 더 도움이 될 수도 있습니다.

MAKEOPTS

MAKEOPTS 변수는 꾸러미를 설치하는 동안 컴파일을 동시에 몇개를 진행하는지 지정합니다. 최적의 값은 시스템에 붙은 CPU(또는 CPU 코어)의 갯수에 1을 더한 값이지만 이 안내서가 언제나 완벽하진 않습니다.

코드 make.conf의 MAKEOPTS 선언 예제
MAKEOPTS="-j2"

준비, 시, 작!

개인 취향에 맞춰 /mnt/gentoo/etc/portage/make.conf를 업데이트한 후 저장하십시오(나노 사용자는 Ctrl+X를 치십시오).

그 다음 젠투 베이스 시스템 설치로 계속 진행하십시오.




MIPS 핸드북
설치
설치 정보
매체 선택
네트워크 설정
디스크 준비
스테이지 3 설치
베이스 시스템 설치
커널 설정
시스템 설정
도구 설치
부트로더 설정
마무리
젠투 활용
포티지 소개
USE 플래그
포티지 기능
초기화 스크립트 시스템
환경 변수
포티지 활용
파일 및 디렉터리
변수
소프트웨어 브랜치 함께 사용하기
추가 도구
꾸러미 저장소 개별 설정
고급 기능
네트워크 설정
시작하기
고급 설정
모듈러 네트워크
무선 네트워크
기능 추가
동적 관리


루트 변경

선택: 미러 선택

배포판 파일

소스코드를 빨리 다운로드 하려면 빠른 미러를 선택하시는 것이 좋습니다. 포티지는 make.conf 파일의 GENTOO_MIRRORS 변수에서 미러를 찾아보며 해당 변수에 들어간 미러를 활용합니다 젠투 미러 목록 및 시스템에서 물리적으로 가까운(대부분 이런 미러가 빠름) 미러(또는 복수의 미러) 를 검색할 수 있습니다. 그러나 우리에겐 필요한 미러를 선택할 때 멋진 인터페이스를 제공해 주는 mirrorselect 도구가 있습니다. 선택할 미러를 찾아보고 하나 이상의 미러를 Spacebar 키로 선택하면 됩니다.

root #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

젠투 이빌드 저장소

미러를 선택하는데 있어 두번째로 중요한 단계는 /etc/portage/repos.conf/gentoo.conf 파일의 젠투 이빌드 저장소 설정입니다. 이 파일에는 꾸러미 저장소(포티지에서 프로그램 꾸러미를 다운로드하고 설치할 때 필요한 모든 정보가 들어있는 관련 파일 및 이빌드 모음)를 업데이트 하는데 필요한 동기화 정보가 들어있습니다.

저장소 설정은 몇 가지 단순한 과정을 거칩니다. 우선 repos.conf 디렉터리가 없다면 만드십시오:

root #mkdir --parents /mnt/gentoo/etc/portage/repos.conf

다음, 포티지에서 제공하는 젠투 저장소 설정 파일을 (새로 만든) repos.conf 디렉터리에 복사하십시오:

root #cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

텍스트 편집기를 골라 쓰든지 cat 명령을 사용하십시오. 해당 파일은 다음과 같이 .ini 파일 형식으로 되어 있습니다.

파일 /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
[DEFAULT]
main-repo = gentoo

[gentoo]
location = /usr/portage
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes
sync-rsync-verify-jobs = 1
sync-rsync-verify-metamanifest = yes
sync-rsync-verify-max-age = 24
sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
sync-openpgp-key-refresh-retry-count = 40
sync-openpgp-key-refresh-retry-overall-timeout = 1200
sync-openpgp-key-refresh-retry-delay-exp-base = 2
sync-openpgp-key-refresh-retry-delay-max = 60
sync-openpgp-key-refresh-retry-delay-mult = 4

# for daily squashfs snapshots
#sync-type = squashdelta
#sync-uri = mirror://gentoo/../snapshots/squashfs

sync-uri 변수 기본값은 위에 언급한 바와 같이 전환 기반 미러 위치를 결정합니다. 젠투의 운영기반 시스템의 과부하를 완화하는데 도움을 주며 특정 미러가 깨졌을 경우 우회하는 수단을 제공합니다. 자체 로컬 포티지 미러를 사용하기

전에는 기본 URI 설정을 그대로 두는 것이 좋습니다.
요령
이 부분에 관심있다면 포티지 플러그인 동기화 API에 대한 공식 사양을 동기화 문서en에서 찾을 수 있습니다.

DNS 정보 복사

새 환경에 들어가기 전 아직 남은 하나는 /etc/resolv.conf의 DNS 정보를 복사하는 일입니다. 새 환경에 들어가고 나서 네트워크가 그대로 동작할 수 있게 하려면 꼭 필요합니다. /etc/resolv.conf 파일에는 네트워크를 사용할 때 활용하는 네임 서버 주소가 들어있습니다.

이 정보를 복사하려면 cp 명령에 --dereference 옵션을 전달하는게 좋습니다. /etc/resolv.conf 파일이 심볼릭 링크라면 심볼릭 링크가 아니라 링크의 대상 파일 그 자체를 찾아서 복사합니다. 그렇지 않으면 새 환경에서 심볼릭 링크로 남아있으며(링크 대상은 새 환경에 존재하지 않습니다), 실제 존재하지 않는 파일을 참조합니다.

root #cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

필요한 파일 시스템 마운트

잠시 동안, 리눅스 루트는 새 위치로 바뀝니다. 새 환경이 제대로 동작하는지 보려면 각각의 파일 시스템을 활성화해야 합니다.

활성화해야 할 파일 시스템은 다음과 같습니다:

  • 리눅스 커널에서 환경에 공개하려는 정보가 만든 의사 파일 시스템(일반 파일 같지만, 실제로는 동적으로 생성하는 파일 시스템) /proc/
  • /proc/보다 구조가 잘 갖춰져있어 대체 용도로 쓸 수 있는 의사 파일 시스템 /sys/
  • 리눅스 장치 관리자(보통 udev)가 일부 관리하는 일반 파일 시스템이며, 모든 장치 파일이 들어있는 /dev/

다른 두개의 파일 시스템은 바인드 마운트를 하는데 반해 /proc/ 위치는 /mnt/gentoo/proc/에 마운트합니다. 후자의 경우, /mnt/gentoo/proc/는 (말 그대로) 파일 시스템에 대한 새 마운트지만, /mnt/gentoo/sys/는 실제로 /sys/(동일한 파일 시스템에 대한 두번째 마운트 지점)이 된다는 의미입니다.

root #mount --types proc /proc /mnt/gentoo/proc
root #mount --rbind /sys /mnt/gentoo/sys
root #mount --make-rslave /mnt/gentoo/sys
root #mount --rbind /dev /mnt/gentoo/dev
root #mount --make-rslave /mnt/gentoo/dev
참고
--make-rslave 동작은 설치 과정에서 나중에 systemd 지원 기능에 필요합니다.
경고
When using non-Gentoo installation media, this might not be sufficient. Some distributions make /dev/shm a symbolic link to /run/shm/ which, after the chroot, becomes invalid. Making /dev/shm/ a proper tmpfs mount up front can fix this:
root #test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm

1777 모드를 설정했는지 확인하십시오:

root # chmod 1777 /dev/shm

새 환경으로 진입

모든 파티션을 초기화 하고 기반 환경을 설치했으니, 새 설치 환경에 chroot로 들어갈 차례입니다. 현재 설치 환경의 세션의 루트(접근할 수 있는 최상위 환경)를 설치 시스템의 루트(초기화한 파티션)로 바꾼다는 의미입니다. 그래서 이름이 change root 또는 chroot라고 합니다.

루트 위치 전환은 세 단계로 처리합니다:

  1. chroot를 사용하여 루트 위치를 (설치 매체의)/에서 (파티션의) /mnt/gentoo/로 바꿉니다
  2. 몇가지 설정(/etc/profile에 있음)을 source 명령으로 메모리에 다시 불러옵니다
  3. chroot로 바꾼 환경임을 인지하기 위해 초기 프롬프트를 바꿉니다.
root #chroot /mnt/gentoo /bin/bash
root #source /etc/profile
root #export PS1="(chroot) ${PS1}"

이 때, 모든 동작을 새 젠투 리눅스 환경에서 바로 처리할 수 있습니다. 물론 끝나려면 한참 멀었지만, 설치 절이 여전히 아직도 남아있는 이유입니다!

요령
젠투 설치가 여기 어디에선가 멈췄다면 이 단계에서 설치를 '재개'할 수 있"어야"합니다. 디스크 영역을 다시 분할할 필요가 없습니다! 간단하게 루트 분할 영역 마운트 를 진행하고, 작업 환경에 다시 들어오기 전 DNS 정보 복사로 위 단계 진행을 시작하십시오. 이 방법은 부트로더 문제를 해결할 때도 쓸만합니다. 더 많은 내용은 chroot 게시글에서 찾아보실 수 있습니다.

부팅 분할 영역 마운트

이제 새 환경에 들어왔으니, /boot 분할 영역을 만들어야 합니다. 커널을

컴파일하고 부트로더를 설치할 때 중요한 부분입니다:

root #mkdir /boot
root #mount /dev/sda1 /boot

포티지 설정

웹에서 이빌드 저장소 스냅샷 가져와서 설치하기

다음은 이빌드 저장소 스냅샷을 설치할 차례입니다. 이 스냅샷에는 사용할 수 있는 프로그램 (설치) 이름, 시스템 관리자가 선택할 수 있는 프로파일, 꾸러미, 프로파일별 소식 항목 등이 들어있습니다.

제한적인 방화벽 환경에 있어 네트워크 대역폭 활용을 아낄 분들은 (스냅샷을 다운로드할 때 HTTP/FTP를 활용하므로) emerge-webrsync 사용을 권장합니다. 네트워크 또는 대역폭 제한이 없는 독자분들은 다음으로 신나게(!) 건너 뛸 수 있습니다.

이 과정을 통해 젠투 미러 중 한 곳에서 (매일 최신 내용으로 바뀌는) 최신 스냅샷을 가져와서 시스템에 설치합니다:

root #emerge-webrsync
참고
설치 과정 중 emerge-webrsync에서 /usr/portage/ 위치가 없는 문제를 보고합니다. 당연한 결과이며 걱정할 필요가 없습니다. 도구에서 해당 위치를 만듭니다.

이 시점부터는 포티지에서 각각의 추천 업데이트를 실행하라고 알려줍니다. 스테이지 파일을 통해 설치한 시스템 꾸러미는 새 버전이 존재하며, 저장소 스냅샷을 새로 설치하여 포티지가 새 꾸러미를 인식하기 때문입니다. 지금은 꾸러미 업데이트를 안전하게 무시할 수 있으며, 젠투 설치가 끝나고 나면 업데이트를 실행할 수 있습니다.

선택: 젠투 이빌드 저장소 업데이트

젠투 이빌드 저장소를 최신 버전으로 업데이트할 수 있습니다. 이전에 emerge-webrsync 명령은 상당히 최근의 포티지 스냅샷(보통 최근 24시간 까지)을 설치하기 때문에 분명히 말하자면 선택적인 동작입니다.

최근 꾸러미 업데이트(최대 한시간 동안)가 필요하다면, emerge --sync 명령을 사용하십시오. 이 명령은 젠투 이빌드 저장소(이전에 emerge-webrsync 명령으로 가져옴)를 최신 상태로 업데이트하는데 rsync 프로토콜을 사용합니다.

root #emerge --sync

몇가지 프레임 버퍼와 직렬 콘솔 같은 느린 터미널에서는, 처리 과정의 속도를 높이기 위해 --quiet 옵션을 사용하시는 것이 좋습니다:

root #emerge --sync --quiet

뉴스 항목 보기

젠투 이빌드 저장소를 시스템과 동기화 하면, 포티지에서 다음과 같은 메시지로 사용자에게 경고합니다:

* IMPORTANT: 2 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.

뉴스 항목은 rsync 트리로 사용자에게 중요한 메시지를 강제로 전달하는 통신 매체를 제공하려 만들었습니다. 뉴스 항목을 관리하려면 eselect news를 사용하십시오. eselect 프로그램은 시스템에서 바뀐 항목 또는 시스템 전반 설정을 처리하는 일반 관리 인터페이스입니다. 이 경우 eselectnews 모듈 사용을 요청합니다.

news 모듈에서 다음 동작을 주로 사용합니다:

  • list 명령으로 표시할 뉴스 목록의 개요를 표시합니다
  • read 명령으로 읽을 수 있는 뉴스 항목을 표시합니다
  • purge 명령으로 이미 읽어서 더 이상 읽을 일이 없는 뉴스 항목을 제거할 수 있습니다
root #eselect news list
root #eselect news read

뉴스 리더에서 사용할 수 있는 기능이 무엇인지 더 살펴보려면 설명서 페이지를 참고하십시오:

root #man news.eselect

적절한 프로파일 선택

경고
17.1 뉴스 항목의 내용을 확인하기 전에는 어떤 17.1 프로파일도 선택하지 마십시오. 이 프로파일은 아직 시험중이며 별도의 이전 절차가 필요합니다.

프로파일이란 젠투 시스템의 구성요소입니다. USE, CFLAGS 등 중요한 변수 값의 기본값만을 지정하는 것이 아니라 꾸러미 버전 범위를 시스템에 고정합니다. 이 설정 데이터는 젠투 포티지 개발자가 관리합니다.

현재 시스템에서 활용하는 프로파일을 eselect로 볼 수 있으며, 이제 profile 모듈을 사용해보면:

root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/mips/13.0 *
  [2]   default/linux/mips/13.0/desktop
  [3]   default/linux/mips/13.0/desktop/gnome
  [4]   default/linux/mips/13.0/desktop/kde
참고
명령 출력 결과는 예제일 뿐이며, 언제든 바뀝니다.

보신 바와 같이, 몇가지 데스크톱에 대한 데스크톱 하위 프로파일이 있습니다.

경고
프로파일 업그레이드를 가벼이 여기면 안됩니다. 초기 프로파일을 선택할 때, 스테이지3에서 처음 사용하는 동일한 버전(이를테면 13.0)에 해당하는 프로파일을 활용하는지 확인하십시오. 각 새 프로파일 버전은 이전 절차 내용을 담은 뉴스 항목으로 공지합니다. 새 프로파일로 전환하기 전에 해당 내용을 반드시 확인하고 따르십시오.

mips 아키텍처에서 존재하는 프로파일을 확인한 후 사용자는 시스템의 다른 프로파일을 선택할 수 있습니다:

root #eselect profile set 2



참고
developer 하위 프로파일은 젠투 리눅스 개발 용도로 사용하며, 일반 사용자가 사용한다는 의미가 아닙니다.

@world 세트 업데이트

이제 시스템의 @world 세트를 업데이트하면 베이스를 갖출 수 있습니다.

This following step is necessary so the system can apply any updates or USE flag changes which have appeared since the stage3 was built and from any profile selection:

root #emerge --ask --verbose --update --deep --newuse @world
요령
완전한 구성을 갖춘 데스크톱 환경 프로파일을 선택하면 설치 과정에 필요한 시간은 상당히 늘어날 수 있습니다. 진행 과정의 일은 '과정상 경험' 으로 처리할 수 있습니다. 짧은 프로파일 이름을 지닌, 드문 경우의 시스템 @world 세트가 있는데 이 프로파일은 시스템에 필요한 꾸러미 수가 적습니다. 다시 말해서:
  • default/linux/amd64/13.0을 선택하면 상당히 적은 꾸러미를 최신으로 유지합니다만,
  • default/linux/amd64/13.0/desktop/gnome/systemd는 OpenRC에서 Systemd로, 그놈 데스크톱 환경 프레임워크를 설치한 만큼 상당한 꾸러미를 설치해야합니다.

USE 변수 설정

USE는 젠투가 사용자에게 제공하는 가장 강력한 변수중 하나입니다. 여러 프로그램 각 항목을 추가로 지원하든 안하든 컴파일할 수 있습니다. 예를 들어 어떤 프로그램은 GTK+ 지원 또는 Qt 지원을 넣고 컴파일할 수 있습니다. 다른 프로그램은 SSL 지원을 빼고 컴파일할 수 있습니다. 어떤 프로그램은 X11 지원(X-서버) 대신 프레임버퍼 지원(svgalib)을 빼고도 컴파일할 수 있습니다.

대부분의 배포판에서는 가능한한 최대한의 지원을 포함하여 꾸러미를 컴파일합니다. 상당한 양의 의존성에 상관 없이 프로그램의 크기와 시작 시간이 늘어납니다. 젠투 사용자는 컴파일할 때 어떤 옵션을 넣을지 지정할 수 있습니다. 이것이 바로 USE 변수가 동작하는 위치입니다.

USE 변수에는 컴파일 옵션에 매핑할 키워드가 들어있습니다. 예를 들어 ssl은 SSL 지원을 프로그램에 넣어 프로그램에서 SSL 기능이 동작하도록 컴파일합니다. -X는 X 서버 지원을 제거합닏(앞에 음수부호가 들어감에 주목). gnome gtk -kde -qt4 -qt5는 시스템을 GNOME(아키텍처에서 지원한다면)에 완전히 맞추려 그놈(및 GTK+) 지원을 넣고 KDE(및 Qt) 지원을 뺍니다.

기본 USE 설정은 시스템에서 사용하는 젠투 프로파일의 make.defaults 파일에 있습니다. 젠투에서는 프로파일의 (복잡한) 계층 시스템을 사용하는데, 이 단계로는 깊이 들어가지 않겠습니다. 현재 활성화한 USE 설정을 확인하는 가장 쉬운 방법은 emerge --info를 실행하고 "USE"로 시작하는 줄을 선택해서 확인하는 방법입니다:

root #emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
참고
위 예제는 잘렸으며, 실제 USE 값 설정 목록은 엄청 큽니다.

시스템에서 사용할 수 있는 USE 플래그의 전체 설명은 /usr/portage/profiles/use.desc에 있습니다.

root #less /usr/portage/profiles/use.desc

less 명령에서는 , 키로 스크롤할 수 있고, q를 눌러 빠져나갈 수 있습니다.

예제를 통해 DVD, ALSA, CD 기록 기능을 지원하는 KDE 기반 시스템의 USE 플래그 설정을 보여드리겠습니다:

root #nano -w /etc/portage/make.conf
파일 /etc/portage/make.confKDE 기반 시스템에서 DVD, ALSA, CD 기록 기능을 포함하는 USE 플래그 활성화
USE="-gtk -gnome qt4 qt5 kde dvd alsa cdr"

/etc/portage/make.conf에서 USE를 정의할 때, 기본 목록에서 추가 (또는 USE 플래그가 - 부호로 시작하는경우 삭제)됩니다. 기본 USE 설정을 무시하고 자체적으로 관리하려는 사용자는 make.confUSE 정의 앞부분에 -*를 넣으십시오:

파일 /etc/portage/make.conf기본 USE 플래그 무시
USE="-* X acl alsa"
경고
(위 설정과 마찬가지로) -* 설정이 가능하다 하더라도, 기본 USE 플래그는 일부 이빌드의 설정 충돌을 막고 다른 오류가 일어나지 않게 심혈을 기울여 설정했으므로 권장하지 않습니다.


시간대

시스템 시간대를 선택하십시오. 존재하는 시간대를 /usr/share/zoneinfo/에서 찾아보시고 /etc/timezone 파일에 작성하십시오.

root #ls /usr/share/zoneinfo

시간대를 Europe/Brussels로 잡아보겠습니다:

root #echo "Europe/Brussels" > /etc/timezone

기대한 대로의 시간대 영역을 나타내지 않는 /usr/share/zoneinfo/Etc/GMT* 시간대 이름 사용을 피하십시오. GMT-8의 경우 실제로 GMT+8입니다.

그 다음 /etc/timezone 항목을 기반으로 /etc/localtime 파일을 업데이트하는 sys-libs/timezone-data 꾸러미를 다시 설정하겠습니다. /etc/localtime 파일은 시스템이 어떤 시간대 영역에 있는지 알고자 시스템 C 라이브러리에서 사용합니다.

root #emerge --config sys-libs/timezone-data

로캘 설정

대부분의 사용자는 시스템에 하나 내지는 두개의 로캘을 사용하려고 합니다.

로캘은 시스템과 대화할 때 사용자가 사용할 언어에 한정하지 않으며 정렬 문자열의 규칙, 날짜 및 시간의 표시 등의 항목도 포함합니다.

시스템에서 지원할 로캘은 /etc/locale.gen에 있습니다.

root #nano -w /etc/locale.gen

다음 로캘은 (UTF-8과 같은)문자 형식에 따라 영문(미국)과 독일어(독일)를 설정하는 예제입니다.

파일 /etc/locale.gen적절한 문자 형식으로 US 및 DE 로캘 활성화
en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8
경고
일부 프로그램에서 UTF-8이 필요하므로, 되도록이면 UTF-8로 설정하십시오.

다음 단계는 locale-gen을 실행할 차례입니다. /etc/locale.gen파일에 지정한 모든 로캘을 만듭니다.

root #locale-gen

선택한 로캘을 사용할 수 있는지 확인하려면 locale -a을 실행하십시오.

이 과정이 끝나면 시스템 범위 로캘을 설정할 차례입니다. 이제 eselect 명령에 locale 모듈을 사용하겠습니다.

eselect locale list 명령으로 존재 대상을 나타냈습니다:

root #eselect locale list
Available targets for the LANG variable:
  [1] C
  [2] POSIX
  [3] en_US
  [4] en_US.iso88591
  [5] en_US.utf8
  [6] de_DE
  [7] de_DE.iso88591
  [8] de_DE.iso885915
  [9] de_DE.utf8
  [ ] (free form)

eselect locale set VALUE 명령으로 올바른 로캘을 설정할 수 있습니다:

root #eselect locale set 9

직접 설정한다면 /etc/env.d/02locale 파일에서도 처리할 수 있습니다:

파일 /etc/env.d/02locale시스템 로캘 정의 직접 설정
LANG="de_DE.UTF-8"
LC_COLLATE="C"

로캘을 설정했는지 확인하십시오. 그렇지 않으면, 커널을 빌드할 때와 설치 과정에서 나중에 다른 프로그램을 배포할 때 시스템에서 경고와 오류를 출력합니다.

이제 환경을 다시 불러오십시오:

root #env-update && source /etc/profile && export PS1="(chroot) $PS1"

이 과정을 통해 사용자 안내를 도울 완전한 지역화 안내서를 만들었습니다. 시스템에서 UTF-8 문자 코드를 활성화 할 주제로만 작성한 UTF-8 안내서도 흥미로운 읽을거리입니다.




MIPS 핸드북
설치
설치 정보
매체 선택
네트워크 설정
디스크 준비
스테이지 3 설치
베이스 시스템 설치
커널 설정
시스템 설정
도구 설치
부트로더 설정
마무리
젠투 활용
포티지 소개
USE 플래그
포티지 기능
초기화 스크립트 시스템
환경 변수
포티지 활용
파일 및 디렉터리
변수
소프트웨어 브랜치 함께 사용하기
추가 도구
꾸러미 저장소 개별 설정
고급 기능
네트워크 설정
시작하기
고급 설정
모듈러 네트워크
무선 네트워크
기능 추가
동적 관리


소스 코드 설치

주변에 빌드한 모든 배포판의 핵심은 리눅스 커널입니다. 이는 사용자 프로그램과 여러분의 시스템 하드웨어 사이에 있는 계층입니다. 젠투는 사용자에게 최대한 다양한 커널 소스코드를 제공합니다. 설명을 포함한 전체 목록은 커널 개요 페이지에 있습니다.

mips 기반 시스템에서 젠투는 sys-kernel/mips-sources 꾸러미를 추천합니다.

적당한 커널 소스를 선택하고 emerge로 설치하십시오:

root #emerge --ask sys-kernel/mips-sources

/usr/src를 들여다보면 설치한 커널 소스를 가리키는 linux 심볼릭 링크를 볼 수 있습니다:

root #ls -l /usr/src/linux
lrwxrwxrwx    1 root   root    12 Oct 13 11:04 /usr/src/linux -> linux-3.16.5-gentoo

이제 커널 소스를 설정하고 컴파일 할 차례입니다. 두가지 방식으로 접근할 수 있습니다:

  1. 직접 설정하고 빌드하는 방법, 또는
  2. genkernel 도구를 사용하여 자동으로 리눅스 커널을 빌드하고 설치하는 방법

환경을 최적화하는 기본적인 선택이자 최상의 방법인 직접 설정 방법을 설명하도록 하겠습니다.

기본: 직접 설정

도입부

커널을 직접 설정하는 방법은 리눅스 사용자가 해본 일중에 가장 어려운 과정으로 보입니다. 아니라고 하는것도 조금은 맞습니다 - 커널을 여러번 설정해본 사람중에는 이게 어려웠는지 기억하는 사람이 없습니다.

그러나 맞는 이야기이기도 합니다. 커널을 직접 설정했을 때 시스템을 알아둘 필요가 있습니다. 대부분의 정보는 lspci 명령이 들어있는 sys-apps/pciutils를 이머지하여 수집할 수 있습니다:

root #emerge --ask sys-apps/pciutils
참고
chroot를 하고 나면, lspci가 출력하는 (pcilib: cannot open /sys/bus/pci/devices와 같은) pcilib 경고를 무시하는게 안전합니다.

시스템 정보를 알아볼 수 있는 또 다른 부분은 설치 CD에서 사용하는 커널 모듈이 무엇인지 보여주는 lsmod를 실행했을 때 나타나는 활성화 할 모듈에 대한 바람직한 실마리입니다.

이제 커널 소스 디렉터리로 이동하여 make menuconfig를 실행하십시오. 메뉴 기반 설정 화면을 실행합니다.

root #cd /usr/src/linux
root #make menuconfig

리눅스 커널 설정에는 굉장히 많은 섹션이 있습니다. 반드시 활성화해야 할 몇가지 옵션 목록을 먼저 보도록 하겠습니다(그렇지 않으면 젠투가 제 기능을 못하거나, 추가 설정 없이 제대로 동작하지 않을지도 모릅니다). 또한 더 많은 도움을 줄 젠투 커널 설정 안내서도 젠투 위키에 있습니다.

필수 옵션 활성화

시스템을 부팅할 때 살아있는 모든 드라이버(SCSI 컨트롤러 등)가 모듈로 남아있지 않고 커널에 들어갔는지 확인하십시오. 아니면 부팅을 제대로 진행할 수 없습니다.

정확한 프로세서 형식을 선택하십시오. 사용자가 하드웨어 문제 알림을 받을 수 있도록 MCE 기능 활성화(가능할 경우)를 추천합니다. 일부 아키텍처(x86_64)에서는 dmesg로 나타나지 않지만 /dev/mcelog에 나타납니다. app-admin/mcelog 꾸러미가 필요한 부분입니다.

또한 Maintain a devtmpfs file system to mount at /dev(CONFIG_DEVTMPFSCONFIG_DEVTMPFS_MOUNT)를 선택하여 부팅 과정에 중요한 장치 파일을 미리 준비할 수 있게 하십시오.

커널 devtmpfs 지원 활성화
Device Drivers --->
  Generic Driver Options --->
    [*] Maintain a devtmpfs filesystem to mount at /dev
    [ ]   Automount devtmpfs at /dev, after the kernel mounted the rootfs

SCSI 디스크 지원(CONFIG_BLK_DEV_SD)을 활성화했는지 확인하십시오:

커널 SCSI 디스크 지원 활성화
Device Drivers --->
   SCSI device support  --->
      <*> SCSI disk support

이제 File Systems로 가서 사용할 파일 시스템 지원을 선택하십시오. 루트 파일 시스템에서 사용할 파일 시스템을 모듈로 컴파일하지 마십시오. 그렇지 않으면 젠투 시스템에서 파티션을 마운트할 수 없습니다. 또한 Virtual memory/proc file system도 선택하십시오. 시스템에서 필요한 옵션(CONFIG_EXT2_FS, CONFIG_EXT3_FS, CONFIG_EXT4_FS, CONFIG_MSDOS_FS, CONFIG_VFAT_FS, CONFIG_PROC_FS, CONFIG_TMPFS) 중 하나 이상을 선택하십시오:

커널 필요한 파일 시스템 선택
File systems --->
  <*> Second extended fs support
  <*> The Extended 3 (ext3) filesystem
  <*> The Extended 4 (ext4) filesystem
  <*> Reiserfs support
  <*> JFS filesystem support
  <*> XFS filesystem support
  <*> Btrfs filesystem support
  DOS/FAT/NT Filesystems  --->
    <*> MSDOS fs support
    <*> VFAT (Windows-95) fs support
 
Pseudo Filesystems --->
    [*] /proc file system support
    [*] Tmpfs virtual memory file system support (former shm fs)

인터넷에 연결할 때 PPPoE를 사용하거나 전화걸기 모뎀을 사용한다면 다음 옵션 (CONFIG_PPP, CONFIG_PPP_ASYNC, CONFIG_PPP_SYNC_TTY)을 활성화하십시오:

커널 PPPoE 필수 드라이버 선택
Device Drivers --->
  Network device support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

두 압축 옵션은 문제를 일으키진 않겠지만 꼭 필요하진 않으며, 커널 모드 PPPoE를 사용하도록 설정했을 때 PPP에서 사용하는PPP over Ethernet 옵션도 마찬가지입니다.

네트워크(유무선) 카드의 커널 지원 포함도 잊지 마십시오.

대부분의 시스템에는 구성에 따라 다중 코어를 지니고 있기도 하므로, Symmetric multi-processing support(CONFIG_SMP) 활성화도 중요합니다:

커널 SMP 지원 활성화
Processor type and features  --->
  [*] Symmetric multi-processing support
참고
멀티코어 시스템에서는 각 코어 갯수를 하나의 프로세서로 취급합니다.

USB 입력 장치(키보드, 마우스)또는 다른 USB 장치(CONFIG_HID_GENERIC, CONFIG_USB_HID, CONFIG_USB_SUPPORT, CONFIG_USB_XHCI_HCD, CONFIG_USB_EHCI_HCD, CONFIG_USB_OHCI_HCD)를 사용한다면 마찬가지로 활성화를 잊지 마십시오:

커널 입력 장치용 USB 지원 활성화
Device Drivers --->
  HID support  --->
    -*- HID bus support
    <*>   Generic HID driver
    [*]   Battery level reporting for HID devices
      USB HID support  --->
        <*> USB HID transport layer
  [*] USB support  --->
    <*>     xHCI HCD (USB 3.0) support
    <*>     EHCI HCD (USB 2.0) support
    <*>     OHCI HCD (USB 1.1) support


설정 준비

중요
Origin 200/2000, Indigo2 Impact (R10000), Octane/Octane2, O2 에서 시스템을 부팅하려면 64비트 커널이 필요합니다. 이 머신에서 64비트 커널을 빌드할 크로스컴파일러를 만들려면 sys-devel/kgcc64를 이머지하십시오.

대부분의 시스템에서는 커널 소스에 .configs 예제를 지원합니다. 모든 시스템에서 이런 방식으로 설정을 지원하진 않습니다. 이 설정은 아래 표에 언급한 명령으로 처리할 수 있습니다.

시스템 설정 명령
Cobalt Servers make cobalt_defconfig
Indy, Indigo2 (R4k), Challenge S make ip22_defconfig
Origin 200/2000 make ip27_defconfig
Indigo2 Impact (R10k) make ip28_defconfig
O2 make ip32_defconfig

모든 젠투 설치 이미지에서는 이미지 자체의 일부로 /proc/config.gz와 같이 접근할 수 있는 커널 설정 옵션을 제공합니다. 이 파일은 대부분의 경우 사용합니다. 커널 소스 코드가 현재 동작중인 커널과 거의 비슷하다면 최선의 선택일 수 있습니다. 이 파일을 추출하려면, 간단하게 아래와 같이 zcat 명령을 실행하십시오.

root #zcat /proc/config.gz > .config
중요
이 커널 설정은 netboot 이미지로 설정한 상태입니다. initramfs의 디렉터리 또는 initrd의 루프백 장치가 있는 곳에서 루트 파일시스템 이미지를 찾을 수 있습니다. make menuconfig를 실행할 때 General Setup으로 이동 후 initramfs 옵션 비활성화를 꼭 처리해주십시오.

개별 설정

설정을 찾았다면 커널 소스 디렉터리로 다운로드 후 .config로 이름을 바꾸십시오. 그 다음 위에서 언급한 대로 업데이트할 내용을 모두 가져오기 위해 make oldconfig를 실행하시고 컴파일하기 전에 설정을 개별적으로 바꾸십시오.

root #cd /usr/src/linux
root #cp /path/to/example-config .config
root #make oldconfig

현재의 기본값으로 처리하려면, 그냥 각 프롬프트에서 Enter(또는 Return)를 누르십시오...

root #make menuconfig
중요
Kernel Hacking 섹션에서 "Are You Using A Cross Compiler?"라는 옵션이 있습니다. 이 옵션은 커널을 컴파일 할 때 gcc에게 커널 Makefile을 "mips-linux-"(또는 mipsel-linux ... 등)과 명령으로 간주하라고 알려줍니다. 크로스 컴파일을 진행한다면 특히 이 옵션을 꺼야합니다. 크로스 컴파일러를 호출해야 한다면, 다음 절에서 보여드리는 바와 같이 CROSS_COMPILE 변수를 사용하여 접두사를 정의하십시오.
중요
Octane systems 중 ALSA가 동작하지 않는 곳에서 JFS와 ALSA를 같이 넣었을때 발생하는 문제가 있습니다. MIPS용 JFS 실험 환경을 시험삼아 활용하려 한다면, 이와 같은 경우에는 JFS 사용을 피하시는게 좋습니다.

컴파일 및 설치

이제 커널을 설정했고 컴파일 하고 설치할 차례입니다. 설정을 빠져나간 후 컴파일 과정을 시작하십시오:

참고
64비트 머신에서 64비트 컴파일러를 사용하려면 CROSS_COMPILE=mips64-unknown-linux-gnu-(리틀 엔디언 시스템에서는 mips64el-...)를 지정하십시오.

자체적으로 컴파일하려면:

root #make vmlinux modules modules_install

대상 머신에 컴파일 하려면 mips64-unknown-linux-gnu- 를 적절하게 적어넣으십시오:

root #make vmlinux modules modules_install CROSS_COMPILE=mips64-unknown-linux-gnu-

x86같은 다른 머신에서 컴파일할 때는 커널을 컴파일하고 특정 디렉터리로 모듈을 설치하여 대상 머신에 보낼 때 다음 명령을 사용하십시오.

root #make vmlinux modules CROSS_COMPILE=mips64-unknown-linux-gnu-
root #make modules_install INSTALL_MOD_PATH=/somewhere
중요
Indy, Indigo2 (R4k), Challenge S, O2에서 64비트 커널을 컴파일하면 vmlinux 대신 vmlinux.32 타겟을 사용하십시오. 그렇지 않으면 머신을 부팅할 수 없습니다. ELF64 형식을 해석할 수 없는 PROM에서 처리할 일입니다.
root #make vmlinux.32
참고
make -jX 명령을 사용하고 X에 실행 가능토록 허용할 빌드 프로세스 갯수를 넣어 병렬 빌드를 활성화 할 수 있습니다. 이는 앞서 언급한 /etc/portage/make.confMAKEOPTS 변수와 비슷합니다.

위 과정을 통해 최종 커널 vmlinux.32를 만듭니다.

커널 컴파일이 끝나면 /boot에 커널 이미지를 복사하십시오:

참고
Cobalt servers에서 부트로더는 압축 커널 이미지 형태로 나타납니다. gzip -9 할 파일은 /boot/에 있음을 기억해두십시오.
root #cp vmlinux /boot/kernel-3.16.5-gentoo

Cobalt servers 에서는 커널 이미지를 압축하십시오:

root #gzip -9v /boot/kernel-3.16.5-gentoo


선택: initramfs 빌드

대부분의 경우 초기 램 기반 파일 시스템 initramfs를 빌드해야 합니다. 중요한 파일 시스템 위치/usr/ 또는 /var/가 각각의 파티션으로 나누어져있을 경우가 대부분의 중요한 이유가 됩니다. initramfs로 initramfs내부의 도구를 활용하여 이 파티션을 마운트할 수 있습니다.

initramfs가 없으면, 파일 시스템에 있는 정보를 필요로 하는 파일 시스템 마운트 동작시 동작을 수행해야 하는 도구가 제대로 동작하지 않아 시스템 부팅이 제대로 동작하지 않는 큰 위험성이 있습니다. initramfs는 커널 부팅 후 바로 활용할 아카이브에 필요한 파일을 넣지만, 그 이전에 init 도구에 제어 권한을 넘깁니다. initramfs에 있는 스크립트는 시스템 부팅을 계속하기 전 파티션을 제대로 마운트했는지 확인합니다.

initramfs를 설치하려면, 우선 sys-kernel/genkernel을 설치하여 initramfs를 만들도록 하십시오:

root #emerge --ask sys-kernel/genkernel
root #genkernel --install initramfs

LVM또는 RAID 등의 initramfs의 지정 기능을 활성화하려면 genkernel에 적당한 옵션을 추가하십시오. 더 많은 내용은 genkernel --help를 참고하십시오. 다음 예제에서 LVM과 소프트웨어 RAID(mdadm)를 활성화겠습니다:

root #genkernel --lvm --mdadm --install initramfs

initramfs는 /boot/에 저장합니다. 간단히 initramfs로 시작하는 결과 파일을 찾아볼 수 있습니다:

root #ls /boot/initramfs*

이제 커널 모듈로 계속 진행하십시오.

대안: genkernel 사용

직접 설정이 상당히 벅차다면, genkernel을 추천합니다. 커널을 설정하고 빌드하는 과정을 자동으로 처리합니다.

genkernel은 설치 CD 커널이 설정한 방식과 거의 동일하게 커널을 설정하여 동작합니다. 커널을 빌드할 때 genkernel을 사용하면, 설치 CD에서 동작했던바와 같이 시스템에서 부팅 시간에 발견한 모든 하드웨어를 발견한다는 의미입니다. 왜냐면 genkernel은 직접적으로 커널을 설정할 필요가 없기 때문에 커널 컴파일을 귀찮아하는 사용자에게 이상적인 해결책입니다.

이제 genkernel을 사용하는 방법을 보겠습니다. 먼저 sys-kernel/genkernel 이빌드를 이머지하십시오:

root #emerge --ask sys-kernel/genkernel

다음 /etc/fstab 파일을 편집하여 두번째 필드에 /boot/가 들어있는 줄이 올바른 장치를 가리키도록 하십시오. 핸드북의 파티션 예제를 따라했다면 대부분 ext2 파일 시스템을 갖춘 /dev/sda1 입니다. 파일 내용은 다음과 같이 만들 수 있습니다:

root #nano -w /etc/fstab
파일 /etc/fstab/boot 마운트 지점 설정
/dev/sda1	/boot	ext2	defaults	0 2
참고
앞으로의 젠투 설치 과정에서 /etc/fstab을 다시 설정합니다. /boot설정은 이 설정 과정에서 genkernel프로그램이 읽어들이기 때문에 지금 바로 진행해야 합니다.

이제 genkernel all를 실행하여 커널 소스 코드를 컴파일하십시오. genkernel은 대부분의 하드웨어를 지원하는 커널을 컴파일 하므로 컴파일이 끝나기까지 상당한 시간이 걸린다는 사실을 알아두십시오!

참고
부트 파티션에서 ext2 또는 ext3 파일 시스템을 쓰지 않는다면 genkernel --menuconfig all 명령으로 커널을 직접 설정하고 커널에 각각의 지원 파일 시스템을 추가해야 합니다(예: 모듈 아님). LVM2 사용자는 마찬가지로 매개변수 --lvm을 넣어야겠습니다.
root #genkernel all

genkernel 동작이 끝나면, 모듈 전체 모음과 초기화 램 디스크(initramfs)를 만듭니다. 이 문서에서 나중에 부트로더를 설정할 때 이 커널과 initrd를 사용합니다. 부트로더 설정 파일을 편집할 때 정보로 사용하겠으니 커널과 initrd의 이름을 적어두십시오. "실제" 시스템을 시작하기 전에 하드웨어 자동 감지(설치 CD와 유사) 동작을 수행하는 즉시 initrd를 시작합니다.

root #ls /boot/kernel* /boot/initramfs*

커널 모듈

모듈 설정

참고
Hardware modules are optional to be listed manually. udev will normally load all hardware modules that are detected to be connected in most cases. However, it is not harmful for automatically detected modules to be listed. Sometimes exotic hardware requires help to load their drivers.

/etc/conf.d/modules에서 자동으로 불러와야 하는 모듈을 확인하십시오. 필요한 경우 추가 옵션을 모듈에 추가할 수 있습니다.

존재하는 모든 모듈을 보려면 다음과 같이 find 명령을 실행하십시오. 잊지 말고 "<kernel version>" 부분을 컴파일한 커널의 버전으로 바꾸십시오.

root #find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less

예를 들어 3c59x.ko 모듈(3COM 네트워크 카드 계열 드라이버)을 자동으로 불러오려면, /etc/conf.d/modules 파일을 편집하고 모듈 이름을 입력하십시오.

root #nano -w /etc/conf.d/modules
modules="3c59x"
파일 /etc/modules-load.d/network.confForce loading 3c59x module
3c59x

시스템 설정으로 설치 과정을 계속 진행하십시오.

선택: 펌웨어 설치

일부 드라이버는 동작하기 전에 시스템에 추가 펌웨어를 설치해야 합니다. 네트워크 인터페이스에 흔히 있는 경우이며 특히 무선 네트워크 인터페이스의 경우 그렇습니다. 대부분의 펌웨어는 sys-kernel/linux-firmware에 있습니다:

root #emerge --ask sys-kernel/linux-firmware




MIPS 핸드북
설치
설치 정보
매체 선택
네트워크 설정
디스크 준비
스테이지 3 설치
베이스 시스템 설치
커널 설정
시스템 설정
도구 설치
부트로더 설정
마무리
젠투 활용
포티지 소개
USE 플래그
포티지 기능
초기화 스크립트 시스템
환경 변수
포티지 활용
파일 및 디렉터리
변수
소프트웨어 브랜치 함께 사용하기
추가 도구
꾸러미 저장소 개별 설정
고급 기능
네트워크 설정
시작하기
고급 설정
모듈러 네트워크
무선 네트워크
기능 추가
동적 관리


파일 시스템 정보

fstab 정보

리눅스 시스템에서 사용하는 모든 분할 영역 정보는 /etc/fstab 에 있습니다. 이 파일에는 분할 영역의 마운트 지점(파일 시스템 구조를 볼 수 있는 곳), 마운트해야 할 방법, 특수 옵션(자동인지 아닌지, 사용자가 마운트를 할 수 있는지 없는지 등)이 들어있습니다

fstab 파일 만들기

/etc/fstab 파일은 표와 비슷한 문법을 사용합니다. 각 줄은 6개의 내용으로 채워져있으며 공백(단일 공백, 탭 또는 혼합)문자로 나눕니다. 각각의 필드는 자체적인 의미를 지니고 있습니다:

  1. 첫번째 내용은 마운트할 블록 특수 장치 또는 원격 파일 시스템을 나타냅니다. 대부분의 장치 식별자는 장치 파일 경로, 파일 시스템 레이블과 UUID, 분할 영역 레이블과 UUID와 같은 식으로 블록 특수 장치 노드에서 사용할 수 있습니다.
  2. 두번째 내용은 분할 영역을 마운트할 마운트 지점을 나타냅니다
  3. 세번째 내용은 분할 영역에서 사용하는 파일 시스템을 나타냅니다
  4. 네번째 내용은 분할 영역을 마운트할 때 mount에서 사용하는 마운트 옵션을 나타냅니다. 모든 분할 영역에는 자체 마운트 옵션이 있기에 옵션 전체 목록을 알아보려면 mount 맨 페이지(man mount)를 읽어보시는게 좋겠습니다. 여러가지 마운트 옵션은 콤마로 구분합니다.
  5. 다섯번째 내용은 분할 영역 덤프를 남겨둔지 여부를 나타냅니다. 보통 0(영)으로 남겨둡니다.
  6. 여섯번째 내용은 시스템을 제대로 된 과정을 거쳐 끄지 못했을 때 fsck에서 파일 시스템을 점검할 순서를 나타냅니다. 루트 파일 시스템은 1이어야 하며 나머지는 2가 되어야 합니다(점검이 필요하지 않다면 0으로 남겨둡니다).
중요
젠투에서 제공하는 기본 /etc/fstab 파일은 올바른 fstab 파일이 아니지만, 양식 내용이 좀 더 자세하게 들어있습니다.
root #nano -w /etc/fstab

나머지 부분에서는 기본 /dev/sd* 블록 장치 파일을 분할 영역으로 사용합니다.

파일 시스템 레이블과 UUID

MBR(BIOS)와 GPT 에는 파일 시스템 레이블과 파일 시스템 UUID가 있습니다. 이 속성은 블록 장치를 찾아 마운드할 때 mount 명령에서 대신 사용하여 /etc/fstab에 지정할 수 있습니다. 파일 시스템 레이블과 UUID는 앞에 LABELUUID를 붙여 식별 명칭을 부여하며, blkid 명령으로 확인할 수 있습니다:

root #blkid
경고
분할 영역의 파일 시스템을 날렸다면, 파일 시스템 레이블과 UUID 값도 바뀌거나 제거됩니다.

고유성을 확보하기 위해, MBR 방식 분할 영역 테이블을 사용하는 독자 여러분의 경우 /etc/fstab의 마운트 가능한 볼륨을 지정할 때는 레이블에 UUID를 사용하는 방식을 추천합니다.

분할 영역 레이블 및 UUID

GPT쪽으로 간 사용자는 /etc/fstab 에 분할 영역을 정의할 수 있는 '믿을 수 있는' 옵션을 더 넣습니다. 분할 영역 레이블과 분할 영역 UUID는 GPT 방식으로 포맷한 장치에 활용할 수 있는데 블록 장치의 개별 분할 영역을 분할 영역에 어떤 파일 시스템을 사용하든 상관 없이 유일하게 구별하려는 목적입니다. 분할 영역 레이블과 UUID는 PARTLABELPARTUUID로 지정하며, 터미널에서 blkid 명령을 실행하면 간단하고 편리하게 깔끔한 모양새로 볼 수 있습니다:

root #blkid

분할 영역 레이블에 대해서는 항상 그렇진 않지만, fstab에서 분할 영역을 UUID로 식별할 때는 개별 볼륨을 찾을 때, 심지어는 파일 시스템이 나중에 바뀌더라도 부트로더에서 햇갈리지 않게 합니다. fstab에 이전 방식으로 기본 블록 장치 파일(/dev/sd*N)을 활용할 경우, 보통 SATA 블록 장치를 추가/제거할 경우 종종 시스템을 다시 시작하는데, 이때 위험 부담이 있습니다.

블록 장치 파일 작명은 시스템에 디스크가 어떻게 어떤 순서로 붙어있나 등의 요인에 따라 다릅니다. 또한 앞서 부팅 과정에서 커널이 어떤 장치를 먼저 찾았냐에 따라 다른 순서로 보여줄 수 있습니다. 디스크 장착 순서를 계속 다루지 않는 이상, 기존 상태로는 기본 블록 장치 파일을 활용하는게 간단하고 직관적인 접근 방식입니다.


/boot/ 분할 영역에 대한 옵션을 적어가는 방법을 살펴보도록 하겠습니다. 단지 예제일 뿐이며 설치 과정에서 결정한 공간 분할 형태에 따라 바꾸어야합니다.

mips 분할 영역 예제에서, /boot/는 보통 ext2 파일 시스템을 쓰는 /dev/sda1 분할 영역입니다. 부팅 과정에 검사해야 하기 때문에 다음의 대용으로 적어내려가겠습니다:

파일 /etc/fstab/etc/fstab의 /boot 줄 예제
/dev/sda1 /boot ext2 defaults 0 2

어떤 사용자는 시스템의 보안을 개선하려는 이유로 /boot/ 분할 영역을 자동으로 마운트하려 하지 않습니다. 이러한 사용자는 defaultsnoauto로 바꾸어야합니다. 이 옵션은 해당 분할 영역을 사용하려고 할 때마다 직접 마운트해야 함을 의미합니다.

이전에 결정한 분할 영역 모양새에 따라 규칙을 추가하시고, CD-ROM 드라이브라든지, 물론, 다른 분할 영역과 드라이브도 사용한다면 해당 장치도 추가하십시오.

좀 더 내용을 추가한 /etc/fstab 파일 예제는 다음과 같습니다:


파일 /etc/fstab/etc/fstab 전체 예제
/dev/sda1   /boot        ext2    defaults,noatime     0 2
/dev/sda10   none         swap    sw                   0 0
/dev/sda5   /            ext4    noatime              0 1
  
/dev/cdrom  /mnt/cdrom   auto    noauto,user          0 0

세번째 내용에 auto를 사용하면 mount 명령에서 파일시스템에 처리해야 할 방식을 짐작하여 처리합니다. 여러 파일 시스템을 만들 수 있는 이동식 미디어에 추천합니다. 네번째에 user를 넣으면 비-루트 사용자도 CD에 마운트할 수 있습니다.

대부분의 사용자는 성능을 끌어올리려고 마운트 옵션에 접근 시간을 등록(어쨌든 평상시에 항상 필요하지 않습니다)하지 않아 시스템을 더욱 빠르게 하는 noatime을 넣습니다. 정적 상태 드라이브(SSD)를 쓰면서TRIM 명령을 실행하는 discard 마운트 옵션도 활성화할 사용자에게 추천합니다(현재는 ext4와 btrfs뿐).

/etc/fstab 파일을 다시 확인하시고, 저장하고 빠져나가서 다음 단계를 계속 진행하십시오.

네트워크 정보

호스트, 도메인 정보

사용자가 처리할 수 있는 선택중 하나는 PC의 이름을 부여하는 것입니다. 조금 쉬워보이긴 합니다만 리눅스 PC에 적당한 이름을 찾기란 대부분의 사용자에겐 어렵습니다. 빨리 넘어가기 위해 이 결정이 끝이 아님을 알아두십시오. 나중에 바꿀 수 있습니다. 아래 예제에서는 "homenetwork" 도메인에서 "tux" 호스트이름을 사용함을 보여줍니다.

root #nano -w /etc/conf.d/hostname
# Set the hostname variable to the selected host name
hostname="tux"

그 다음, 도메인 이름이 필요하다면 /etc/conf.d/net에 설정하십시오. ISP 또는 네트워크 관리자가 필요하다고 하거나 네트워크에 DHCP 서버가 아닌 DNS 서버를 가지고 있을 경우에만 필요합니다. 시스템에서 동적 IP 주소 할당 및 네트워크 설정에 DHCP를 사용한다면 DNS 또는 도메인 이름에 걱정하실 필요가 없습니다.

참고
기본적으로 /etc/conf.d/net 파일이 없으므로 만들어야합니다.
root #nano -w /etc/conf.d/net
# Set the dns_domain_lo variable to the selected domain name
dns_domain_lo="homenetwork"
참고
도메인 이름을 설정하지 않으면 로그인 화면에서 "This is hostname.(none)" 메시지가 뜹니다. /etc/issue를 편집하고 해당 파일에서 .\O 문자열을 지워서 고쳐야합니다.

NIS 도메인이 필요(잘 모르겠다면 필요하지 않음)하다면 NIS 도메인도 지정하십시오:

root #nano -w /etc/conf.d/net
# Set the nis_domain_lo variable to the selected NIS domain name
nis_domain_lo="my-nisdomain"
참고
DNS와 NIS 설정에 대한 더 많은 정보는 bzless로 읽을 수 있는 /usr/share/doc/netifrc-*/net.example.bz2 제공 예제를 살펴보십시오. 또한 DNS/NIS 설정 관리를 도와줄 net-dns/openresolv 설치도 괜찮습니다.

네트워크 설정

젠투 리눅스 설치 과정에서 네트워크를 거의 설정했습니다만 설치 CD 자체에서의 설정이었으며 설치한 환경에 대한 설정은 아니었습니다. 이제 네트워크 설정을 설치한 젠투 리눅스 시스템에 만들겠습니다.

참고
본딩, 브릿징, 802.1Q VLAN, 무선 네트워크를 다루는 네트워크에 대한 자세한 내용은 젠투 네트워크 설정 절에서 다룹니다.

모든 네트워크 정보를 /etc/conf.d/net에서 가져왔습니다. 별로 직관적이지 않은것 같은 간단한 문법을 사용합니다. 그러나 두려워 하실 일이 없습니다. 모든 내용은 아래에 설명해드립니다. 여러가지 설정을 다루는 자세한 설명 예제는 /usr/share/doc/netifrc-*/net.example.bz2에 있습니다.

먼저 net-misc/netifrc를 설치하십시오:

root #emerge --ask --noreplace net-misc/netifrc

기본적으로 DHCP를 사용합니다. DHCP를 동작하게 하려면 DHCP 클라이언트를 설치해야합니다. 필요한 시스템 도구 설치 편에서 설명하겠습니다.

DHCP 별개 옵션 때문이거나, DHCP를 모든 컴퓨터에서 쓸 수 있는게 아니어서 네트워크 연결을 설정해야한다면 /etc/conf.d/net 파일을 여십시오:

root #nano -w /etc/conf.d/net

config_eth0routes_eth0 변수에 IP 주소 정보와 라우팅 정보를 입력하여 설정하십시오:

참고
여기서는 eth0 네트워크 인터페이스로 가정합니다. 그러나 이 이름이 시스템에 따라 다릅니다. 설치 매체가 최근의 것이라면 설치 매체로 부팅했을 때 나타나는 인터페이스 이름과 동일하다고 가정함을 추천합니다.
파일 /etc/conf.d/net고정 IP 정의
config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"

DHCP를 사용하려면, config_eth0를 정의하십시오:

파일 /etc/conf.d/netDHCP 정의
config_eth0="dhcp"

존재하는 모든 옵션을 보려면 /usr/share/doc/netifrc-*/net.example.bz2를 읽어보십시오. DHCP 옵션을 설정해야 한다면 DHCP 클라이언트 맨 페이지도 읽어보십시오.

시스템에 여러가지 네트워크 인터페이스를 달고 있다면, config_eth1, config_eth2 등에 대해 위 과정을 반복하십시오.

이제 설정을 저장하고 빠져나간 후 다음 과정으로 계속 진행하십시오.

부팅 과정에서 네트워크 자동으로 시작하기

부팅 과정에서 네트워크 인터페이스를 활성화하려면, 기본 실행 레벨에 추가해야합니다.

root #cd /etc/init.d
root #ln -s net.lo net.eth0
root #rc-update add net.eth0 default

시스템에 여러가지 네트워크 인터페이스가 있다면 net.eth0 처럼 적당한 net.* 파일을 만들어야합니다.

다음에 시스템을 부팅하면 네트워크 인터페이스 이름(현재 문서에 남긴 이름은 eth0)의 가정이 틀렸음을 알아챌 것입니다. 이 문제를 바로잡으려면 다음 단계를 따라 처리하십시오:

  1. (eth0 대신 enp3s0같이) 올바른 인터페이스 이름으로 /etc/conf.d/net 파일을 업데이트하십시오
  2. 새 심볼릭 링크를 만드십시오(/etc/init.d/net.enp3s0)
  3. 이전 심볼릭 링크를 제거하십시오(rm /etc/init.d/net.eth0)
  4. 새로 만든 심볼릭 링크를 기본 실행 레벨에 추가하십시오
  5. 이전 심볼릭 링크를 rc-update del net.eth0 default 명령으로 제거하십시오

hosts 파일

다음은 네트워크 환경을 리눅스에 알려야 합니다. /etc/hosts 에서 정의하며, 이름 서버에서 해석할 수 없는 호스트에서 호스트의 이름을 IP 주소로 바꾸는 과정을 돕습니다.

root #nano -w /etc/hosts
파일 /etc/hosts네트워크 정보 채우기
# This defines the current system and must be set
127.0.0.1     tux.homenetwork tux localhost
  
# Optional definition of extra systems on the network
192.168.0.5   jenny.homenetwork jenny
192.168.0.6   benny.homenetwork benny

편집기에서 저장하고 빠져나가서 다음 과정을 계속 진행하십시오.

선택: PCMCIA 동작하게 만들기

PCMCIA 사용자는 sys-apps/pcmciautils 꾸러미를 설치해야합니다.

root #emerge --ask sys-apps/pcmciautils

시스템 정보

루트 암호

passwd 명령으로 루트 암호를 설정하십시오.

root #passwd

루트 리눅스 계정은 가장 강력한 계정이므로 강력한 암호를 선택해야 합니다. 나중에 매일 사용할 일반 사용자 계정을 추가로 만듭니다.

Init와 부팅 설정

(최소한 OpenRC를 쓸 때)젠투에서 서비스와 시스템의 시작과 마침 과정을 설정할 때 /etc/rc.conf 파일을 활용합니다. /etc/rc.conf 파일을 열고 파일의 모든 주석을 맘대로 제거하십시오. 필요한 부분의 설정을 다시 살펴보고 바꾸십시오.

root #nano -w /etc/rc.conf

그 다음 /etc/conf.d/keymaps 파일을 열어 키보드 설정을 처리하십시오. 해당 파일을 편집하여 올바른 키보드를 선택하고 설정하십시오.

root #nano -w /etc/conf.d/keymaps

keymap 변수는 특히 조심스럽게 다루십시오. 잘못된 키맵을 선택하면 키보드로 입력할 때, 이상한 결과가 나타납니다.

마지막으로 시계 옵션을 설정하려 /etc/conf.d/hwclock 파일을 편집하겠습니다. 개인 취향에 맞춰 편집하십시오.

root #nano -w /etc/conf.d/hwclock

하드웨어 클록에서 UTC 방식을 사용하지 않는다면, 파일에 clock="local"를 설정해야 합니다. 그렇지 않으면 시스템의 시계 동작이 꼬이는 일이 생깁니다.




MIPS 핸드북
설치
설치 정보
매체 선택
네트워크 설정
디스크 준비
스테이지 3 설치
베이스 시스템 설치
커널 설정
시스템 설정
도구 설치
부트로더 설정
마무리
젠투 활용
포티지 소개
USE 플래그
포티지 기능
초기화 스크립트 시스템
환경 변수
포티지 활용
파일 및 디렉터리
변수
소프트웨어 브랜치 함께 사용하기
추가 도구
꾸러미 저장소 개별 설정
고급 기능
네트워크 설정
시작하기
고급 설정
모듈러 네트워크
무선 네트워크
기능 추가
동적 관리


시스템 로거

스테이지 3 아카이브에서 몇가지 도구가 빠졌는데 대부분 꾸러미가 동일한 기능을 지니고 있기 때문입니다. 이제 설치할 도구를 선택하는건 사용자의 몫입니다.

첫번째로 결정해야 할 도구는 시스템 로깅 수단을 제공합니다. 유닉스 및 리눅스는 로깅 능력에 있어 멋진 역사를 지니고 있습니다 - 필요하다면, 로그 파일에 시스템에 일어나는 모든 일을 기록할 수 있습니다. 이 일은 시스템 로거가 처리합니다.

젠투는 선택할 다양한 시스템 로거를 제공합니다. 그 중 몇가지가 있다면:

  • app-admin/sysklogd - 시스템 로깅 데몬의 기존 모음입니다. 초보자를 배려하여 기본 로깅 설정으로도 그 자체로 특별하게 잘 동작합니다.
  • app-admin/syslog-ng - 최근의 시스템 로거입니다. 하나의 큰 파일이 아닌 다른 방식으로 로깅하려면 추가 설정이 필요합니다. 좀 더 능력있는 사용자라면 로깅 잠재 기능때문에 이 꾸러미를 사용합니다. 지능 로깅 동작은 추가 설정이 필요합니다.
  • app-admin/metalog - 매우 설정하기 쉬운 시스템 로거

마찬가지로 포티지에 다른 다양한 로거가 존재합니다. 수많은 꾸러미는 매일 늘어납니다.

요령
sysklogd 또는 syslog-ng를 사용하려 한다면, 시스템 로거가 로그 파일에 대한 순환 매커니즘을 제공하지 않으므로, 이들 꾸러미를 설치한 후 logrotate를 설치 및 설정하는 것이 좋습니다.
요령
systemd provides its own logging facility called the "journal". Installing a separate syslog provider is optional on systems running systemd, and may require additional configuration to have the syslog daemon read messages from the journal.

선택한 시스템 로거를 설치하려면, emerge후, rc-update를 사용하여 기본 런레벨에 추가해야합니다. 다음 예제에서는 app-admin/sysklogd를 설치합니다:

root #emerge --ask app-admin/sysklogd
root #rc-update add sysklogd default

선택: 크론 데몬

다음은 크론 데몬입니다. 설치를 해도 안해도 그만이며, 모든 시스템에서 설치할 필요는 없지만, 설치하는게 현명합니다.

크론 데몬은 일정별로 계획한 명령을 실행합니다. 규칙적으로(예를 들어 매일, 주별, 월별) 실행할 필요가 있는 명령에 대해 매우 간편합니다.

젠투는 sys-process/bcron, sys-process/dcron, sys-process/fcron, sys-process/cronie 등의 다양한 크론 데몬을 제공합니다. 이들 중 하나를 설치하는 건 시스템 로거를 설치할 때와 마찬가지입니다. 다음 예제에서는 sys-process/cronie를 설치합니다:

root #emerge --ask sys-process/cronie
root #rc-update add cronie default

dcron또는 fcron을 사용한다면, 추가 초기화 명령을 실행해야합니다:

root #crontab /etc/crontab

선택: 파일 색인

파일 시스템을 색인 처리하여 파일 탐색을 더 빠르게 하려면 sys-apps/mlocate를 설치하십시오.

root #emerge --ask sys-apps/mlocate

선택: 원격 접근

설치 후 시스템을 원격으로 접근하려면, 기본 런레벨에 sshd 초기화 스크립트를 추가하십시오:

root #rc-update add sshd default

직렬 콘솔 접근이 필요하다면 (원격 서버의 경우 가능) /etc/inittab에서 직렬 콘솔 섹션의 주석 표시를 빼십시오:

root #nano -w /etc/inittab
# SERIAL CONSOLES
s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100
s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100

파일 시스템 도구

사용하는 파일 시스템에 따라 필요한 파일 시스템 유틸리티를 설치해야 합니다(파일 시스템 무결성 검사, 추가 파일 시스템 만들기 등). ext2, ext3, ext4 파일 시스템(sys-fs/e2fsprogs)을 관리하는 도구는 이미 @system 세트의 일부로 설치했음을 참고하십시오.

다음 테이블 목록에서는 각각의 파일 시스템을 사용할 경우 설치할 도구를 보여줍니다:

파일 시스템 꾸러미
Ext2, 3, and 4 sys-fs/e2fsprogs
XFS sys-fs/xfsprogs
ReiserFS sys-fs/reiserfsprogs
JFS sys-fs/jfsutils
VFAT (FAT32, ...) sys-fs/dosfstools
Btrfs sys-fs/btrfs-progs
요령
자세한 젠투 파일 시스템 정보를 보려면 파일 시스템 게시글을 살펴보십시오.

네트워크 도구

추가 네트워크 도구가 필요하지 않으면 부트로더 설정으로 바로 계속 진행하십시오.

DHCP 클라이언트 설치

중요
여러분의 선택에 달려있긴 하지만, 네트워크에 접속하는 대부분의 사용자는 DHCP 서버에 연결하는 DHCP 클라이언트가 필요합니다. DHCP 클라이언트를 설치하십시오. 이 단계를 잊고 넘어간다면, 시스템이 네트워크에 참여할 수 없어, 나중에 DHCP 클라이언트를 다운로드하고 설치할 수 없습니다.

netifrc 스크립트로 시스템에 있는 하나 이상의 네트워크 인터페이스에서 IP 주소를 자동으로 가져오도록 하려면 DHCP 클라이언트를 설치해야합니다. 젠투 저장소상에 다른 DHCP 클라이언트도 있지만, net-misc/dhcpcd 클라이언트를 추천합니다:

root #emerge --ask net-misc/dhcpcd

dhcpcd에 대한 더 많은 내용은 dhcpcd 게시글en에서 알아보십시오.

선택: PPPoE 클라이언트 설치

인터넷에 연결할 때 PPP를 사용한다면 net-dialup/ppp 꾸러미를 설치하십시오:

root #emerge --ask net-dialup/ppp

Optional: Install wireless networking tools

If the system will be connecting to wireless networks, install the net-wireless/iw package for Open or WEP networks and/or the net-wireless/wpa_supplicant package for WPA or WPA2 networks. iw is also a useful basic diagnostic tool for scanning wireless networks.

root #emerge --ask net-wireless/iw net-wireless/wpa_supplicant

이제 부트로더 설정으로 계속 진행하십시오.




MIPS 핸드북
설치
설치 정보
매체 선택
네트워크 설정
디스크 준비
스테이지 3 설치
베이스 시스템 설치
커널 설정
시스템 설정
도구 설치
부트로더 설정
마무리
젠투 활용
포티지 소개
USE 플래그
포티지 기능
초기화 스크립트 시스템
환경 변수
포티지 활용
파일 및 디렉터리
변수
소프트웨어 브랜치 함께 사용하기
추가 도구
꾸러미 저장소 개별 설정
고급 기능
네트워크 설정
시작하기
고급 설정
모듈러 네트워크
무선 네트워크
기능 추가
동적 관리



실리콘 그래픽스 머신용 arcload

arcload는 64비트 커널이 필요하여 arcboot(64비트 바이너리로 쉽게 컴파일할 수 없음)를 쓸 수 없는 머신용으로 작성했습니다. 볼륨 헤더에서 커널을 직접 불러올 때 일어나는 특이한 현상을 처리할 수 있습니다. 이제 설치 과정을 진행해보겠습니다:

root #emerge arcload dvhtool

과정이 끝나면 /usr/lib/arcload/에서 arcload 바이너리를 찾아보십시오. 이제 두 파일을 찾아보실 수 있습니다:

  • sashARCS: Indy, Indigo2 (R4k), Challenge S, O2 시스템용 32비트 바이너리
  • sash64: Octane/Octane2, Origin 200/2000, Indigo2 Impact 시스템용 64비트 바이너리

볼륨 헤더에 적당한 시스템 바이너리를 설지하려면 dvhtool을 사용하십시오:

Indy/Indigo2/Challenge S/O2 사용자라면:

root #dvhtool --unix-to-vh /usr/lib/arcload/sashARCS sashARCS

Indigo2 Impact/Octane/Octane2/Origin 200/Origin 2000 사용자라면:

root #dvhtool --unix-to-vh /usr/lib/arcload/sash64 sash64
참고
부팅 CD의 볼륨 헤더로 sashARCS 또는 sash64를 설치하기 전에는 sashARCS 또는 sash64 이름을 사용할 수 없습니다. 하드디스크에서 일반 부팅 과정을 진행한다면 사용자가 원하는대로 이름을 지정할 수 있습니다.

이제 dvhtool 명령을 사용하여 바이너리가 볼륨 헤더에 있는지 확인해보겠습니다:

root #dvhtool --print-volume-directory
----- directory entries -----
Entry #0, name "sash64", start 4, bytes 55859

arc.cf 파일의 문법은 C와 비슷합니다. 이 파일을 설정하는 전체 세부 내용은 Linux/MIPS 위키의 arcload 페이지를 살펴보십시오. 간단하게 말해, OSLoadFilename 변수를 활용하여 부팅시 활성/비활성화 할 여러가지 옵션을 지정하십시오.

Filearc.cfarc.cf 예제

'"`UNIQ--pre-0000005F-QINU`"'

This is a deprecated template. Help us update this template!

arcload-0.5부터는 볼륨 헤더 또는 파티션에 arc.cf와 커널을 함께 넣어야 합니다. 새 기능을 활용하려면 /boot/ 파티션(또는 부팅 파티션을 따로 나누어놓지 않았다면 /)에 파일을 넣으십시오. arcload는 잘 알려진 grub 부트로더의 파일 시스템 드라이버 코드를 사용하기 때문에 grub과 동일하게 다양한 파일 시스템을 지원합니다.

root #dvhtool --unix-to-vh arc.cf arc.cf
root #dvhtool --unix-to-vh /usr/src/linux/vmlinux new

Cobalt MicroServers용 CoLo

CoLo 설치

Cobalt server에서는 칩에 설치한 펌웨어의 기능이 상당히 빈약합니다. Cobalt BOOTROM은 SGI PROM에 비교했을 때, 원시적이며, 여러가지 중요한 제한 사항이 있습니다.

  • 커널 크기는 675kB(평균)로 제한합니다. 리눅스 2.4의 현재 크기로는 이 커널 크기에 맞추기란 거의 불가능합니다. 리눅스 2.6과 3.x는 뭐 말할 것도 없습니다.
  • 64비트 커널은 내장 펌웨어에서 지원하지 않습니다(현재 Cobalt 머신에서 상당히 시험수준이긴 합니다만).
  • 최선의 기본은 쉘입니다

이 제한을 극복하려고 대체 펌웨어인 CoLo(Cobalt Loader)를 개발했습니다. CoLo는 Cobalt 서버의 플래시 칩에 굽거나 기존 펌웨어에서 불러올 수 있는 BOOTROM 이미지입니다.

참고
이 안내서는 CoLo 설정으로 진행하여 저장한 펌웨어로 불러옵니다. 이 방법이 사실 안전하며 CoLo를 설정하는 방법으로 추천합니다.
경고
원하는 경우 서버 플래시에 구워넣어 기존 펌웨어를 완전히 엎을 수 있습니다만, 여러분의 최선의 노력을 다해야합니다. 무엇인가 잘못되었다는 판단이 확실하다면, BOOTROM 칩을 빼내고 기존의 펌웨어를 다시 구워넣어야합니다. 끔찍한 이야기 같다면 머신의 플래시에 구워넣지 마십시오. 여러분이 충고를 무시하고 무슨 일을 진행하든 저희는 책임지지않습니다.

이제 CoLo 설치를 진행하겠습니다. 꾸러미 이머지로 시작하십시오.

root #emerge --ask sys-boot/colo

설치가 끝나면 /usr/lib/colo/ 디렉터리에서 다음 두개의 파일을 찾아보십시오:

  • colo-chain.elf (불러올 저장 펌웨어용 "커널")
  • colo-rom-image.bin (BOOT 롬에 구워넣을 ROM 이미지)

/boot/를 마운트하고 시스템에서 찾을 /boot/ 위치에서 colo-chain.elf의 압축 사본을 덤핑하여 과정을 시작하겠습니다.

root #gzip -9vc /usr/lib/colo/colo-chain.elf > /boot/vmlinux.gz

CoLo 설정

이제 시스템을 처음 부팅하면 LCD 배경에 메뉴를 띄우는 CoLo를 불러옵니다. 첫번째 옵션(그리고 5초간 기본값으로 대기)은 하드디스크로 부팅합니다. 시스템에서는 첫번째 리눅스 파티션을 찾아 마운트를 시도하고 default.colo를 실행합니다. 문법은 CoLo 문서(/usr/share/doc/colo-X.YY/README.shell.gz 에서 고르면 되며 X.YY는 설치 버전임)에 다 있으며 매우 간단합니다.

참고
그냥 단순히 요령입니다: 커널을 설치할 때 커널 이미지를 두개 만드는 것이 좋겠습니다. 동작하는 걸로 알려진 kernel.gz.working과 컴파일한 kernel.gz.new입니다. 현재 "새롭"고, "동작"하는 커널에 심볼릭 링크를 걸거나 그냥 커널 이미지의 이름을 바꾸기만 하면 됩니다.
Filedefault.coloCoLo 설정 예제

'"`UNIQ--pre-00000062-QINU`"'

This is a deprecated template. Help us update this template!

참고
CoLo는 #:CoLo:# 줄로 시작하지 않는 스크립트를 불러오지 않습니다. 쉘 스크립트의 #!/bin/sh 부분과 동일하게 생각하십시오.

어떤 커널과 설정을 부팅에 사용하고 기본 제한 시간을 어떻게 할지 물어볼 수 있습니다. 다음 설정에서는 어떤 커널을 쓸지, 어떤 이미지를 선택해서 실행할 지 물어보는 동작을 정확히 수행합니다. vmlinux.gz.new와 vmlinux.gz.working이 실제 커널이미지겠지만 디스크에 심볼릭 링크로 링크 걸어놓은 커널 이미지일 수도 있습니다. 50이라는 매개변수 값은 50/10 초 후 첫번째 옵션("Working")으로 과정을 진행하도록 설정합니다.

Filedefault.colo메뉴 기반 설정

'"`UNIQ--pre-00000065-QINU`"'

This is a deprecated template. Help us update this template!

더 자세한 내용은 /usr/share/doc/colo-VERSION의 문서를 살펴보십시오.

직렬 콘솔 설정

좋습니다. 이제 리눅스 설치 과정에서 부팅은 잘 진행이 되고 있습니다만, 실제 터미널에 사용자가 로그인 할 수도 있습니다. Cobalt 머신이라면 특히 바람직한 상황이 아닙니다. 실제 터미널에는 아무것도 없기 때문입니다.

참고
지원 비디오 칩셋으로 뭔가 화려한걸 해보려 하는 분은 원할 경우 이 절을 건너뛰시는게 좋습니다.

먼저 편집기를 띄우고 /etc/inittab를 뜯어고치겠습니다. 이 파일을 쭉 살펴보면 다음과 같은 내용이 나타납니다:

File/etc/inittabinittab 일부

'"`UNIQ--pre-00000068-QINU`"'

This is a deprecated template. Help us update this template!

먼저 c0 줄의 주석을 제거하십시오. 기본적으로 Cobalt 서버에서는 9600bps 보 레이트로 터미널을 사용합니다. BOOT ROM에서 결정한 보 레이트에 일치하려면 115200으로 맞춰야 합니다. 다음 내용은 조치 사항을 이행한 후의 해당 섹션의 모습을 나타냅니다. 헤드리스 머신(예: Cobalt 서버)에서는 로컬 터미널 라인(c1부터 c6)의 줄을 열 수 없을 경우(/dev/ttyX) 동작이 잘못될 수 있으므로, 해당 줄의 주석 처리를 권합니다.

File/etc/inittabinittab 일부 예제

'"`UNIQ--pre-0000006B-QINU`"'

This is a deprecated template. Help us update this template!

이제 마지막으로 ... 보안 터미널 처럼 신뢰할 수 있는 로컬 직렬 포트로 시스템을 불러와야 합니다. 건드려야 할 파일은 /etc/securetty 입니다. 믿을만한 시스템의 터미널 목록이 여기에 있습니다. 단순히 루트 로그인에 사용할 직렬라인만 허용하도록, 두 줄의 내용만 더 넣겠습니다.

root #echo 'ttyS0' >> /etc/securetty

마지막으로 리눅스에서 /dev/tts/0도 호출합니다. 따라서 이 부분도 추가하겠습니다:

root #echo 'tts/0' >> /etc/securetty

SGI PROM 고급 설정

일반 PROM 설정

부트로더를 설치하고 다시 부팅하면(잠시 후에 진행합니다), 시스템 관리 메뉴로 진입 후 시스템을 넷부팅할 때 처음 했던것과 마찬가지로 명령 모니터(5)를 선택하십시오.

Code부팅 진행 후 메뉴

'"`UNIQ--pre-0000006E-QINU`"'

This is a deprecated template. Help us update this template!

볼륨 헤더 위치를 입력하십시오:

>>setenv SystemPartition scsi(0)disk(1)rdisk(0)partition(8)

젠투를 자동으로 부팅하십시오:

>>setenv AutoLoad Yes

시간대를 설정하십시오:

>>setenv TimeZone EST5EDT

직렬 콘솔을 사용하십시오 - 그래픽 어댑터 사용자는 "d1"(하나) 대신 "g"를 넣어야 합니다:

>>setenv console d1

직렬 전송률을 설정하십시오. 9600 값이 기본값이며, 원한다면 38400까지 사용할 수도 있겠지만, 설정 하지 않아도 그만입니다:

>>setenv dbaud 9600

이제 시스템을 부팅하는 방법에 따라 다음 설정을 계속 진행하겠습니다.

직접 볼륨 헤더 부팅 설정

참고
여기서는 ,완벽함을 다룹니다. arcload를 대신 설치하는 방법을 추천합니다.
참고
Indy, Indigo2 (R4k), Challenge S 에서만 동작합니다.

루트 장치를 /dev/sda3와 같은 젠투 루트 파티션으로 지정하십시오:

>>setenv OSLoadPartition <root device>

존재하는 커널을 보려면 "ls"를 입력하십시오.

>>setenv OSLoader <kernel name>
>>setenv OSLoadFilename <kernel name>

전달할 커널 매개변수를 선언하십시오:

>>setenv OSLoadOptions <kernel parameters>

커널 매개변수를 넣지 않고 커널을 사용하려면 boot -f PROM 명령을 사용하십시오:

root #boot -f new root=/dev/sda5 ro

arcload 설정

arcload는 OSLoadFilename 옵션을 사용하여 arc.cf에서 어떤 옵션을 설정할지 지정합니다. 설정 파일은 본질적으로 스크립트이며 최상위 레벨 블록에서는 각각의 시스템에서 사용할 부팅 이미지를 정의하고, 해당 내용을 뒤져보면 추가 설정이 있습니다. 따라서 OSLoadFilename=mysys(sefial) 설정으로 mysys 블록의 설정을 가져온 후, 직렬 연결상에서 그 밖의 옵션을 중복 적용합니다.

위의 예제 파일에서, 시스템 블록을 정의했고 동작하는 ip28, 새로운 옵션과 디버그 옵션을 확보했습니다. 다음과 같이 PROM 변수를 정의하겠습니다:

arcload를 부트로더로 선택하십시오:- sash64 또는 sashARCS:

>>setenv OSLoader sash64

arc.cf의 "ip28" 섹션에 나타난 "동작하는" 커널 이미지를 사용하십시오:

>>setenv OSLoadFilename ip28(working)

arcload-0.5부터 볼륨 헤더에 파일을 더이상 놓을 필요가 없습니다 -- 대신 파이션에 넣으면 됩니다. 설정 파일과 커널을 어디에서 찾아야 하는지 arcload에 알려주려면 OSLoadPartition PROM 변수를 반드시 설정해야 합니다. 어떤 SCSI 버스에 디스크를 붙였느냐에 따라 정확한 값이 달라집니다. SystemPartition PROM 변수를 보조 안내용도로 사용하십시오 -- 파티션 번호만 바꿔야합니다.

참고
리눅스에서와 같이 파티션 번호가 1부터 시작하는 것이 아니라 0부터 시작합니다.

볼륨 헤더에서 불러오려면 8번 파티션을 활용하십시오:

>>setenv OSLoadPartition scsi(0)disk(1)rdisk(0)partition(8)

그렇지 않으면 파티션과 파일 시스템 형식을 지정하십시오:

>>setenv OSLoadPartition scsi(0)disk(1)rdisk(0)partition(0)[ext2]


시스템 다시 부팅

chroot로 진입한 환경을 빠져나가고 모든 파티션의 마운트를 해제하십시오. 그 다음 대미를 장식할 마법의 명령을 입력하여, 실제로 시험해보십시오: reboot.

root #exit
cdimage ~#cd
cdimage ~#umount -l /mnt/gentoo/dev{/shm,/pts,}
cdimage ~#umount -R /mnt/gentoo
cdimage ~#reboot

물론 부팅 CD를 제거하는걸 잊지 않으면 새 젠투 시스템 대신 CD로 부팅합니다.

새로 설치한 젠투 환경으로 다시 부팅하고 나면, 젠투 설치 마무리로 끝내십시오.




MIPS 핸드북
설치
설치 정보
매체 선택
네트워크 설정
디스크 준비
스테이지 3 설치
베이스 시스템 설치
커널 설정
시스템 설정
도구 설치
부트로더 설정
마무리
젠투 활용
포티지 소개
USE 플래그
포티지 기능
초기화 스크립트 시스템
환경 변수
포티지 활용
파일 및 디렉터리
변수
소프트웨어 브랜치 함께 사용하기
추가 도구
꾸러미 저장소 개별 설정
고급 기능
네트워크 설정
시작하기
고급 설정
모듈러 네트워크
무선 네트워크
기능 추가
동적 관리


사용자 관리

매일 사용할 사용자 추가

유닉스/리눅스 시스템에서의 루트 계정 취급은 위험하며, 가능한한 피해야 합니다. 따라서 매일 사용할 사용자의 추가를 강력히 권합니다.

그룹은 사용자가 구성원으로서 실행할 수 있는 활동을 정합니다. 다음 표 목록은 몇가지 중요한 그룹을 나타냅니다:

그룹 설명
audio 오디오 장치에 접근할 수 있습니다
cdrom 광 장치에 접근할 수 있습니다
floppy 플로피 장치에 접근할 수 있습니다
games 게임을 할 수 있습니다
portage 포티지 제한 자료에 접근할 수 있습니다
usb USB 장치에 접근할 수 있습니다
video 비디오 캡처 하드웨어에 접근할 수 있으며 하드웨어 가속을 사용할 수 있습니다
wheel su 명령을 사용할 수 있습니다

wheel, users, audio그룹의 구성원 larry를 만들려면 root로 우선 로그인한 후(루트 사용자만 사용자 계정을 만들 수 있음) useradd 명령을 실행하십시오.

Login:root
Password: (Enter the root password)
root #useradd -m -G users,wheel,audio -s /bin/bash larry
root #passwd larry
Password: (Enter the password for larry)
Re-enter password: (Re-enter the password to verify)

사용자가 루트 권한으로 몇가지 작업을 수행할 필요가 있다면, 임시로 루트 권한을 받기 위해 su - 명령을 사용할 수 있습니다. 다른 방법은 sudo 꾸러미를 사용하는 방법인데, 올바르게 설정했다면 매우 안전합니다.

디스크 정리

타르볼 제거

젠투 설치가 끝나고 시스템을 다시 부팅한 후 모든 부분이 잘 끝났다면 이제 다운로드한 스테이지 3 타르볼을 하드 디스크에서 제거할 수 있습니다. / 디렉터리에 다운로드했음을 기억하십시오.

root #rm /stage3-*.tar.bz2*

이제 어디로 갈까요

문서

어디로 갈까요? 선택지가 뭐죠? 어디부터 볼까요? 젠투는 다양한 가능성을 사용자에게 제공하기 때문에, 문서화한(그리고 내용은 적은) 다양한 특징을 제공합니다.

Definitely take a look at the next part of the Gentoo Handbook entitled Working with Gentoo which explains how to keep the software up to date, install additional software packages, details on USE flags, the OpenRC init system, etc.

이 핸드북 외에도 커뮤니티 기반으로 문서를 제공하는 젠투 위키에서 추가적으로 찾아보셔야 합니다. 젠투 위키 팀은 위키 글을 쉽게 찾을 수 있도록 주제별 문서 개요en를 제공합니다. 시스템을 편하게 다룰 수 있도록 하는 지역화 안내서도 있습니다.

젠투 온라인

물론 젠투 포럼en 또는 젠투 IRC 채널en중 어디든지라도 모든이들을 언제든 환영합니다.

모든 사용자에게 열린 여러가지 메일링 리스트en 가 있습니다. 해당 페이지에는 메일링 리스트에 참여하는 방법도 있습니다.

즐기세요! :)




Warning: Display title "젠투 리눅스 mips 핸드북: 젠투 설치" overrides earlier display title "Handbook:MIPS/Full/Installation/ko".