2008/09/12

오픈 솔라리스에서의 (커널 포함 전체) 이미지 업데이트

오픈 솔라리스 정식 발매 CD를 설치하게 되면 빌드가 86임을 알 수가 있습니다.
화면 상단의 메뉴에 있는 시스템->관리->패키지 매니저를 통해서 이미지 전체를 업데이트할 수 가 있는데, 업데이트를 하고 났더니, 부팅을 하지 않더군요.

그 이유는 커널은 업데이트가 되어 있는데, GRUB은 변경된 MBR의 위치를 인지하지 못해서 발생하는 일입니다.
다음은 전체 이미지 업데이트하는 법과 추후 GRUB 업데이트 하는 과정을 포함합니다.
사용하는 빌드가 96이후 이면 일단 다음과 같은 사전 작업을 준비하셔야 합니다.

$
BUILD=`uname -v | sed s/snv_//` ; build 숫자를 저장합니다.
$echo $BUILD ; 빌드 확인
$pfexec pkg refresh ; 전체 패키지 갱신한번 하고
$pfexec pkg install
SUNWipkg at 0.5.11-0.$BUILD ; 설치된 빌드의 최신 패키지 모듈을 일단 설치하고

모두 정상적으로 되었으면, 이제 전체 패키지를 업데이트합니다.
$ pfexec pkg install entire at 0.5.11-0.$BUILD ; 전체 빌드를 설치합니다.

정상적으로 이루어졌으면, 다음과 같이 해서 오픈 솔라리스 이미지를 업데이트합니다.
$pfexec pkg image-update

정상적으로 설치가 모두 되었는 지 확인해보기 위해서 다시 재부팅을 해봅니다.

만약 $BUILD가 93이전이면 다음과 같은 작업으로 진행하도록 합니다. (live upgrade 방식입니다)

$ pfexec beadm create opensolaris- ; 새로운 솔라리스 이미지가 설치될 새 부팅환경(BE)를 만들어줍니다. "opensolaris-"로 이름을 주게 되면, 자동적으로 그 뒤에 정수가 붙어서 이름이 지어집니다. opensoalris-1, opensolaris-2와 같이 만들어집니다.
$ pfexec beadm list ; 만들어진 부트환경(be)을 나열합니다. 가장 최근에 만들어진 부트환경을 확인합니다.
$ pfexec beadm mount opensolaris-1 /mnt ; 가장 최근에 만들어진 새부트환경을 /mnt로 마운트합니다.
$ pfexec pkg -R /mnt image-update ; 마운트한 /mnt를 대상으로 오픈 솔라리스 이미지 업데이트를 실행합니다.
$ pfexec beadm activate opensolaris- ; 다음 부팅시 새 부팅환경(BE)으로 부팅하도록 활성화를 시켜줍니다.

만약, 빌드넘버가 86이면 여기에서 GRUB을 수동적으로 업데이트해주어야 합니다. 86보다 크고 93이전이면 그냥 재부팅을 해서 정상적으로 새부팅환경으로 부팅하는 지 확인하면 됩니다.

다음은 빌드가 86인 경우 재부팅하기 전에 GRUB을 업데이트하는 법입니다.
$ pfexec /mnt/boot/solaris/bin/update_grub -R /mnt

재부팅을 해보아서, 정상적으로 재부팅되는 지 확인합니다.

Reference : http://mail.opensolaris.org/pipermail/opensolaris-help/2008-August/011864.html

댓글 없음: