초록
KIWI를 사용하면 운영 체제 이미지를 생성할 수 있습니다. 이 장에서는 비어 있는 클라이언트 시스템에 시스템 이미지를 배포하는 프로세스를 설명합니다. 이를 위해, 부팅 가능한 RAW 이미지가 포함된 사전 로드 이미지를 생성해야 합니다. 이 파일에는 파티션 테이블과 실제 운영 체제의 두 개의 중요한 부분이 포함됩니다. 이 RAW 이미지는 빈 하드 디스크에 기록되고 운영 체제는 처음 부팅 시 남아 있는 디스크 공간으로 확장됩니다.
이러한 이미지를 생성하려면 17.4.2절 “이미지 생성”을 참조하십시오. ISO 이미지를 작성하는 경우 대상 폴더에서 RAW 파일을 찾을 수 있습니다. RAW 이미지를 디스크에 덤프할 수 있는 방법은 다양합니다.
디스크를 배포 서버에 연결하고 이미지를 RAW 장치에 복사합니다.
HTTP 또는 FTP 서버를 통해 RAW 이미지를 제공하고 이 이미지를 클라이언트 시스템의 디스크에 덤프합니다.
이미지를 가져오는 netboot 이미지를 생성하여 디스크에 덤프합니다. 이는 일괄 배포 시 유용한 방법입니다.
복구 디스크를 부팅하고 복구 이미지에서 덤프를 수동으로 수행합니다.
빠른 시작의 경우 22.1절 “복구 이미지에서 수동으로 시스템 배포”에서 설명된 방법 중 하나를 사용하는 것이 좋습니다.
KIWI 작성 프로세스에서 가져온 ISO 이미지를 굽습니다. CD/DVD에서 17.4.2절 “이미지 생성”을 참조하십시오.
이 매체에서 클라이언트 시스템으로 부팅합니다.
설치를 위해 하드 디스크를 선택합니다.
클라이언트 시스템을 다시 시작하고 하드 디스크에서 부팅합니다.
복구 시스템으로 클라이언트 시스템을 부팅합니다. 이러한 시스템은 모든 SUSE 설치 CD 또는 DVD에서 사용할 수 있습니다.
root
로 로그인합니다. 비밀번호는 입력하지 마십시오.
네트워크를 구성합니다. 네트워크에서 DHCP를 사용할 수 있으려면 ifup-dhcp eth0 명령이면 됩니다. 이를 수동으로 수행하려면 ip 명령을 사용하여 네트워크를 구성합니다. DHCP로 시작하는 출력도 컴퓨터의 IP 주소를 알려줍니다.
1234
와 같이 네트워크의 사용되지 않은 포트를 수신 대기하고, 다음 명령을 사용하여 들어오는 데이터를 디스크에 덤프합니다.
netcat -l -p 1234 > /dev/sda
이미징 서버에서 다음 명령을 사용하여 RAW 이미지를 클라이언트 시스템에 전송합니다.
netcat <IP of client> 1234 < $HOME/preload_image/<image_name>
이미지가 전송되면 CD 또는 DVD 드라이브에서 복구 시스템을 제거하고 클라이언트 시스템을 종료합니다. 재부팅 시 부팅 로더 GRUB
는 클라이언트에서 시작해야 하고 처음 부팅 시스템이 대신하게 됩니다.
유사한 하드웨어에서 운영 체제를 여러 번 설치하는 경우 운영 체제의 일괄 배포를 준비하는 약간의 작업을 수행하여 실제 배포에 필요한 시간을 최소화하는 것이 좋습니다. 이 장에서는 이러한 프로세스에 대해 설명합니다. 이 장의 목표는 컴퓨터의 플러그를 꽂고 네트워크에 연결한 다음 네트워크 부팅을 시작하고 전원이 꺼질 때까지 기다리는 것입니다.
그러려면 다음 작업을 수행해야 합니다.
사전 로드 이미지를 제공하기 위한 FTP 또는 웹 서버를 비롯하여 PXE 부팅을 제공하기 위해 준비해야 하는 전용 시스템이 필요합니다. 필요한 모든 설치 데이터를 메모리에 보관하려면 시스템에 메모리가 충분해야 합니다. 기본 설치에는 4GB 이상의 메모리가 필요합니다. 필요한 모든 작업은 SUSE Linux Enterprise Server에서 수행할 수 있습니다. 자세한 내용은 22.2.1절 “부팅 설정 및 서버 설치”를 참조하십시오.
실제 설치를 수행하려면 운영 체제의 RAW 이미지를 새 하드 디스크에 복사합니다. 모든 기능과 설정은 신중하게 준비하고 테스트해야 합니다. 이러한 이미지를 제공하기 위해 KIWI가 사용될 수 있습니다. KIWI는 SUSE Linux Enterprise 운영 체제의 SDK에서 제공됩니다. KIWI를 사용한 이미지 생성에 대한 자세한 내용은 17장 KIWI에서 확인할 수 있습니다. 사전 로드 이미지의 요구사항에 대한 자세한 내용은 22.2.2절 “사전 로드 이미지 생성”을 참조하십시오.
이 작업에는 일부 Linux 전문 지식이 필요합니다. 설치 예제를 통해 이 작업을 수행할 수 있는 방법에 대한 설명은 22.2.3절 “사전 로드 이미지를 배포할 초기 시스템 생성”에서 확인할 수 있습니다.
PXE 부팅은 설치 시스템을 부팅하도록 알려야 합니다. 그러면 차례로 서버에서 사전 로드 이미지를 가져와서 하드 디스크에 복사합니다.
SUSE Linux Enterprise Server 설치 후에 이 작업을 수행하려면 다음과 같은 4가지 단계를 완료해야 합니다.
14.2절 “설치 원본을 보유하는 서버 설정”에서 설명한 대로 설치 원본을 설정합니다. HTTP 또는 FTP 네트워크 서버를 선택합니다.
이후 단계에서 생성할 부팅 이미지를 보관하도록 TFTP 서버를 설정합니다. 방법은 14.3.2절 “TFTP 서버 설정”에 기술되어 있습니다.
모든 시스템에 IP 주소를 지정하도록 DHCP 서버를 설정하고 대상 시스템에 TFTP 서버의 위치를 알려줍니다. 방법은 14.3.1절 “DHCP 서버 설정”에 설명되어 있습니다.
설치 서버 PXE 부팅을 준비합니다. 자세한 내용은 14.3.3절 “PXE 부팅 사용”에서 설명됩니다.
실제 설치 프로세스는 이 시스템에 사전 로드 이미지를 보관할 메모리가 충분한 경우 최대의 효과를 얻을 수 있습니다. 또한 기가비트 이더넷을 사용하면 속도가 더 느린 네트워크에 비해 배포 프로세스 속도가 더 빨라집니다.
KIWI를 사용한 이미지 생성 프로세스는 17.4.2절 “이미지 생성”에서 설명합니다. 그러나 일괄 배포를 위해 유용한 이미지를 생성하기 위해서는 몇 가지 사항을 고려해야 합니다.
일반적인 사전 로드 이미지는 다음과 같은 유형을 사용합니다.
<type primary="true" filesystem="ext3" boot="oemboot/suse-SLES11">vmx</type>
사전 로드 이미지를 설정하는 동안 이미지 생성 프로세스는 여러 번 실행됩니다. 이미지를 작성하는 데 필요한 리포지토리는 로컬 컴퓨터에서 사용할 수 있어야 합니다.
원하는 사전 로드의 용도에 따라 처음 부팅을 구성하는 데 약간의 작업이 필요합니다. 처음 부팅에 대한 자세한 내용은 20장 사용자 정의된 사전 설치 배포에서 설명합니다. 이 방법을 사용하면 시스템의 처음 부팅 시 초기 구성을 수행해야 할 수도 있습니다.
많은 추가 기능은 리포지토리 업데이트 추가 또는 처음 부팅 시 업데이트 등에서와 같이 이미지로 구성할 수 있습니다. 그러나 모든 가능성을 이 설명서에서 설명할 수는 없으며, 사전 로드 이미지의 생성에는 요구사항에 따라 이미징 시스템 KIWI에 대한 상세한 지식 외에도 SUSE Linux Enterprise Server에서 사용된 여러 다른 기술이 필요합니다.
배포할 실제 이미지는 설치 서버에서 제공한 ftp 또는 http 서버에서 사용할 수 있어야 합니다.
자동 배포를 실행하려면 대상 컴퓨터에서 초기 Linux 시스템을 시작해야 합니다. 일반적인 설치 동안 커널 및 초기 RAM 파일 시스템은 일부 부팅 매체에서 읽고 BIOS에서 시작합니다. 필요한 기능은 커널과 함께 초기 시스템으로 제공하는 RAM 파일 시스템에서 구현할 수 있습니다.
초기 시스템에서 제공해야 하는 기본 기능은 하드 디스크에 대한 액세스를 활성화하는 기능과 네트워크 연결을 사용할 수 있는 기능입니다. 이 두 기능은 배포할 하드웨어의 영향을 받습니다. 원칙적으로는, 초기 시스템을 처음부터 생성할 수 있지만 이 작업을 손쉽게 수행하도록 부팅 중에 시스템에서 사용된 초기 RAM 파일 시스템을 수정할 수도 있습니다.
다음 절차는 필요한 초기 RAM 파일 시스템을 생성하는 방법에 대한 한 가지 예일 뿐입니다.
대상 시스템에서 SUSE Linux Enterprise Server의 표준 설치를 수행합니다.
시스템에서 busybox
패키지를 설치합니다.
다음 명령으로 새 RAM 파일 시스템을 생성합니다.
mkinitrd -f busybox -D eth0
eth0은 네트워크 케이블이 연결된 이더넷 장치를 나타냅니다. -f busybox
파라미터는 다중 호출 바이너리 busybox
를 RAM 파일 시스템에 추가합니다. 이 작업 후에는 많은 표준 Unix 명령을 이 시스템 내에서 사용할 수 있습니다.
다음 명령으로 새 RAM 파일 시스템과 커널을 부팅 서버에 복사합니다.
scp /boot/initrd /boot/vmlinuz pxe.example.com:
pxe.example.com을 로컬 부팅 서버 또는 IP 주소의 이름으로 바꿉니다.
사용자 root
로 부팅 서버에 로그인하고 RAM 파일 시스템을 수정할 수 있는 디렉토리를 생성합니다.
mkdir ~/bootimage
cd ~/bootimage 명령으로 작업 디렉토리를 이 디렉토리로 변경합니다.
다음 명령으로 이전에 복사한 초기 RAM 파일 시스템의 압축을 풉니다.
zcat ../initrd | cpio -i
run_all.sh
파일을 편집합니다.
다음 행을 검색하고 이 행과 나머지 파일을 삭제합니다.
[ "$debug" ] && echo preping 21-nfs.sh
run_all.sh
파일의 끝에 다음 행을 추가합니다.
[ "$debug" ] && echo preping 92-install.sh [ "$debug" ] && echo running 92-install.sh source boot/92-install.sh [ "$modules" ] && load_modules
다음 컨텐트로 새 스크립트 boot/92-install.sh
를 생성합니다.
#!/bin/bash if [ "$(get_param rawimage)" ]; then rawimage=$(get_param rawimage) if [ "$(get_param rawdevice)" ]; then rawdevice=$(get_param rawdevice) echo "wget -O ${rawdevice} ${rawimage}" wget -O ${rawdevice} ${rawimage} sync sleep 5 echo "DONE" fi fi # /bin/bash /bin/poweroff -f
컴퓨터를 끄기 전에 디버그 셸을 설정하려면 /bin/bash
앞에 있는 주석 기호를 제거합니다.
chmod 755 boot/92-install.sh 명령을 사용하여 이 스크립트를 실행 가능하도록 설정합니다.
다음 명령으로 새 초기 RAM 파일 시스템을 생성합니다.
mkdir -p /srv/tftpboot find . | cpio --quiet -H newc -o | gzip -9 -n > \ /srv/tftpboot/initrd.boot
커널을 이 디렉토리에 복사합니다.
cp ../vmlinuz /srv/tftpboot/linux.boot
이제 초기 RAM 파일 시스템이 두 개의 새 커널 명령줄 파라미터를 가져오도록 준비됩니다. rawimage=<URL>
파라미터는 사전 로드 이미지의 위치를 식별하는 데 사용됩니다. wget에서 인식되는 모든 URL을 사용할 수 있습니다. rawdevice=<device>
파라미터는 대상 시스템에서 하드 디스크의 블록 장치를 식별하는 데 사용됩니다.
부팅 서버의 구성은 22.2.1절 “부팅 설정 및 서버 설치”에 나열된 대로 여러 장에 걸쳐 자세히 설명됩니다. 이 절에서는 시스템을 구성하는 데 필요한 단계를 다루는 점검 목록을 제공해야 합니다.
dhcp 서버를 설정합니다. 시스템이 설치된 서브넷에는 추가 행이 필요합니다.
filename "pxelinux.0"; next-server 192.168.1.115;
이 예에서 192.168.1.115는 PXE 서버 pxe.example.com의 IP 주소입니다.
14.3.3절 “PXE 부팅 사용”에서 설명한 대로 PXE 서버를 구성합니다. /srv/tftpboot/pxelinux.cfg/default
를 편집할 경우 다음 항목을 추가합니다.
default bootinstall label bootinstall kernel linux.boot append initrd=initrd.boot \ rawimage=ftp://192.168.1.115/preload/preloadimage.raw rawdevice=/dev/sda
FTP 서버를 설정하고 준비된 사전 로드 이미지를 /srv/ftp/preload/preloadimage.raw
에 복사합니다.
PXE 네트워크 부팅으로 대상 시스템을 부팅하여 설정을 테스트합니다. 준비된 사전 로드 이미지가 하드 디스크에 자동으로 복사되고 준비되면 시스템이 꺼집니다.