커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 시스템 관리 / 서버운영 도움말
검색 : 사이트 WHOIS 웹서버 종류

최적화 / 튜닝 / 성능개선 (6, 글 1, 자료 3)
디스크 쿼터(quota) (3, 글 1, 자료 3)
디스크 관리 / 파일시스템 / mount (34, 글 13, 자료 12)
백업(backup) / 시스템 복구 (14, 글 6, 자료 11)
서버운영 (8, 글 2, 자료 9)
프린터 관리 / 프린팅 (7)
패키지 관리 / 패치 / rpm (10, 글 5, 자료 1)
부팅, boot / LILO / GRUB (10, 글 5, 자료 9)
서버 모니터링 (10, 글 5, 자료 2)
로그인 / 로그아웃 (1)
로그(log) / syslog (5, 글 3, 자료 3)
메모리, 스왑(swap), 램디스크(ramdisk) (3, 글 2)
사용자 관리(계정 관리) (1, 자료 1)

  나만의 FreeBSD ISO 이미지 만들기 작성일 : 2013/02/04 18:34
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 7337
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      제  목 : 나만의 FreeBSD ISO 이미지 만들기
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2012.7.11(수)
    수정일 : 2013.1.28(월) FreeBSD 9 환경 추가


    FreeBSD 9에서는 generate-release.sh 스크립트의 등장으로 FreeBSD 8버전과는 ISO파일 만드는 방법이 다르다.
    FreeBSD 9는 다음 두가지 방법 중에 하나를 선택한다.

    1. FreeBSD 9에서 make release로 CD 이미지 만들기

    1) buildworld와 buildkernel 하기

     
    root@fb91:/root # cd /usr/src
    root@fb91:/usr/src # make buildworld buildkernel
     


    build하기 전에 /usr/src/ 아래에 패치할 소스를 넣어두면, 패치가 적용된 나만의 ISO 버전을 얻을 수 있다.

    ※ 서버에 있는 소스가 아닌 새롭게 받아와서 release 이미지를 만드려면 buildworld 전에 다음과 같이 실행한 후에 진행한다.
       svn co svn://svn.freebsd.org/base/stable/9 /usr/src

    2) release 생성
     
    root@fb91:/usr/src # cd release
    root@fb91:/usr/src/release # make release
    root@fb91:/usr/src/release # make install DESTDIR=/data/release91
     


    /data/release91/ 디렉토리에 나만의 release 버전이 생성되어 있다.

     
    -rw-r--r--  1 root  wheel  149882880 Jan 28 18:58 bootonly.iso
    drwxr-xr-x  2 root  wheel        512 Jan 28 18:56 ftp
    -rw-r--r--  1 root  wheel  700948480 Jan 28 18:58 memstick
    -rw-r--r--  1 root  wheel  655753216 Jan 28 18:57 release.iso
     



    2. FreeBSD 9에서 generate-release.sh 스크립트로 CD 이미지 만들기

    release용 스크립트 /usr/src/release/generate-release.sh 가 있다. generate-release.sh은 subversion(SVN)을 사용하므로 스크립트 실행전에 설치되어 있어야 한다. /usr/ports/devel/subversion/ 에서 make install clean.

    1) buildworld 할 때와 buildkernel할 때 make 옵션에 -j8을 포함시킨다.
       그리고 ports 와 doc는 빌드에서 제외한다.

    [ g.sh ]
     
    #!/bin/sh

    export WORLD_FLAGS=-j8
    export KERNEL_FLAGS=-j8
    export NOPORTS=1
    export NODOC=1

    cd /usr/src/release
    sh -x ./generate-release.sh stable/9 /data/release91 > /data/make_release_result.txt
     


    위 스크립트를 실행하면 SVN으로 svn://svn.freebsd.org/base/stable/9 소스를 /data/release91/ 아래로 받아온다. 그리고, build -> release -> install 과정을 한번에 처리해준다. ISO 이미지는 /data/release91/R/ 아래에 생성된다.

    2) generate-release.sh 실행중에 다음과 같은 에러가 난다면.

     
    + make installworld distribution DESTDIR=/data/release91
    ERROR: Required auditdistd user is missing, see /usr/src/UPDATING.
    *** [installcheck_UGID] Error code 1

    Stop in /data/release91/usr/src.
    *** [installworld] Error code 1

    Stop in /data/release91/usr/src.
     


    auditdistd ID를 생성한 후 generate-release.sh를 다시 실행해주면 된다.

     
    # pw useradd -n auditdistd -u 78 -g audit -c "Auditdistd unprivileged user" -d /var/empty -s /usr/sbin/nologin
     



    3. FreeBSD 8에서 ISO CD 이미지 만들기

    1) FreeBSD cvs 받아오기

    /usr/share/examples/cvsup/cvs-supfile 파일을 복사해서 수정한다. cvsup 서버는 개인적으로 cvsup.freebsd.org 또는 cvsup.jp.freebsd.org 사용하고 있다.

     
    # cp -p /usr/share/examples/cvsup/cvs-supfile cvs-supfile2
     


    [ cvs-supfile2 일부 ]
     
    *default host=
    *default base=/data/db
    *default prefix=/data/ncvs
    *default release=cvs
    *default delete use-rel-suffix

    src-all
    ports-all
    doc-all
    cvsroot-all

    # 다음 2개는 주석 처리
    ## www
    ## projects-all
     


    cvsup -g -L 2 cvs-supfile2 명령으로 FreeBSD 소스를 받아온다.

    2) buildworld

     
    # cd /usr/src
    # make buildworld
     


    3) make release

     
    # cd /usr/src/release
    # make release CHROOTDIR=/data/release83 CVSROOT=/data/ncvs RELEASETAG=RELENG_8_3 KERNEL_FLAGS=-j8 WORLD_FLAGS=-j8 NOPORTS=1 NODOC=1 MAKE_ISOS=1
     


    FreeBSD 8.3소스로 빌드(8.x 최신으로 하려면 RELENG_8) 한다. 그리고 make kernel할 때 -j8 옵션을, make buildworld할 때 -j8 옵션을 사용한다. ports와 doc는 빌드하지 않으며 CD 이미지를 생성한다. MAKE_ISOS= 옵션이 없으면 CD이미지를 생성하지 않는다. make release가 완료되면 /data/release83/R/ 아래에 나만의 배포판이 생성되어 있다.

     
    # ls -al R/
    total 10
    drwxr-xr-x   5 root  wheel   512 Jul 11 13:21 .
    drwxr-xr-x  18 root  wheel   512 Jul 11 12:25 ..
    drwxr-xr-x   8 root  wheel  1024 Jul 11 13:22 cdrom
    drwxr-xr-x  14 root  wheel   512 Jul 11 13:21 ftp
    drwxr-xr-x   9 root  wheel   512 Jul 11 13:21 stage
    ... 생략 ...
    # ls -al R/cdrom/
    total 1530356
    drwxr-xr-x   8 root  wheel       1024 Jul 11 13:22 .
    drwxr-xr-x   5 root  wheel        512 Jul 11 13:21 ..
    -rw-r--r--   1 root  wheel   58738688 Jul 11 13:21 FreeBSD-8.3-20120711-SNAP-amd64-bootonly.iso
    -rw-r--r--   1 root  wheel  427085824 Jul 11 13:21 FreeBSD-8.3-20120711-SNAP-amd64-disc1.iso
    -rw-r--r--   1 root  wheel     354304 Jul 11 13:21 FreeBSD-8.3-20120711-SNAP-amd64-disc2.iso
    -rw-r--r--   1 root  wheel     354304 Jul 11 13:22 FreeBSD-8.3-20120711-SNAP-amd64-disc3.iso
    -rw-r--r--   1 root  wheel  724948992 Jul 11 13:22 FreeBSD-8.3-20120711-SNAP-amd64-dvd1.iso
    -rw-r--r--   1 root  wheel        501 Jul 11 13:22 FreeBSD-8.3-20120711-SNAP-amd64-iso.CHECKSUM.MD5
    -rw-r--r--   1 root  wheel        711 Jul 11 13:22 FreeBSD-8.3-20120711-SNAP-amd64-iso.CHECKSUM.SHA256
    -rw-r--r--   1 root  wheel  356595712 Jul 11 13:22 FreeBSD-8.3-20120711-SNAP-amd64-livefs.iso
    drwxr-xr-x   3 root  wheel        512 Jul 11 13:21 bootonly
    drwxr-xr-x   4 root  wheel        512 Jul 11 13:21 disc1
    drwxr-xr-x   2 root  wheel        512 Jul 11 13:21 disc2
    drwxr-xr-x   2 root  wheel        512 Jul 11 13:21 docs
    drwxr-xr-x  18 root  wheel       1024 Jul 11 13:21 dvd1
    drwxr-xr-x  17 root  wheel        512 Jul 11 13:21 livefs
     



    4. 관련 자료

    * 맨페이지 man release
      http://www.freebsd.org/cgi/man.cgi?query=release&apropos=0&sektion=0&manpath=FreeBSD+9.1-RELEASE&arch=default&format=html

    * FreeBSD Release Engineering : Release Building
      http://www.freebsd.org/doc/en/articles/releng/release-build.html

    * auditdistd user is missing in make kernel
      http://forums.freebsd.org/showthread.php?t=36454
      커피닉스 카페 최근 글
    [07/22] 관리자에 의해 삭제
    [07/15] 관리자에 의해 삭제
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Mobile 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Web Front 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Server 개발 팀장을 모십니다.
    [12/21] 브라우저별 SHA1 퇴출 시점
    [09/15] [구인] 시스템엔지니어 (경력)
    [08/05] Re: 칼리리눅스 텔넷관련
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~