젠투 리눅스를 각종 컴퓨터와 좀 특이하게 vmware 등에 깔아봤지만, 이번 프로라인언트 DL380에 까는 것은 만만치 않았다. 그래서 각종 업무와 술자리가 일정을 더디게 하여 걸린 기간 딱 10일!!
암튼 그 비법을 소개할터이니 10일의 고통을 한큐에 공개하는게 아깝긴 하지만, 이 괴물 만드는 법을 여러분에게 알려드리겠다.
대충의 서버 스펙
서버명 : Compaq Proliant DL380-G4
프로세서 : Intel® Xeon™ 프로세서 3.06GHz * 2
메모리 : 2GB
칩셋 : ServerWorks GC-LE 칩셋
네트워크 컨트롤러 : Broadcom Tigon3 Gigabit NIC * 2
스토리지 컨트롤러 : 스마트 어레이 5i 플러스 컨트롤러
하드 디스크 : 72.8GB 15,000 rpm U320 범용 핫 플러그 * 2
그래픽 : 8MB SDRAM 비디오 메모리와 통합된 ATI RAGE XL
첨엔 팀장에게 좋은 서버 사야 된다고 졸랐지만, 리눅스를 깔아야 한다는 특명을 감지하고선 대충하면 되겠지 했다. 그러나 그 괴물이 내 눈앞에 있자, 대충 살껄이란 후회가 막심했다.
이유는? 바로 Compaq서버들에게 독특하게 존재하는 스마트 어레이란 넘때문에 그런다. 대충 눈치로 보니 이 컨트롤러는 분리되어있는 scsi하드 디스크를 하나로 만들어주고 잡다한 좋은 기능들이 들어가 있는 것 같다.
윈도야 대충 깔면 되지만, 리눅스란 넘은 하나 하나 잡아줘야 함에 바로 문제가 있다.
암튼 가보자!!
1.
먼저 Gentoo 최신 씨디를 구하자. http://www.gentoo.org/main/en/mirrors.xml 가서 minimal 버젼을 구하면 되겠다.(이 포스트에서 쓰이는 젠투 버젼은 "Gentoo x86 minimal 2004.3"이요)
대충 씨디를 굽고, 다시 한번 Gentoo Handbook을 한번은 읽어보자!!
2.
스마트 어레이 or Laid를 설정하고(72기가 하드를 둘을 통 하나로 만들었다.) BIOS 셋업 들어가서 기본적인 것들을 셋팅하면 들어다 보자. (이부분은 잘모른다. -_-a)
특히 날짜는 잘 잡아주자. 그리곤 서버에 씨디를 넣고 부팅을 하자.
다행이도 젠투로 부팅이 된다. ^^
3.
2004. 1버젼이전에는 스마트 어레이를 자동으로 잡아주지 못했던 것 같다. 해외의 각종 포스트를 검색해 본 결과 수동으로 잡아주는데, 2004. 3버젼은 운수좋게도 자동으로 잡힌다. 아싸~~
허나 에러를 동반하고 있다.
특히 이런 문구로 "/dev/cciss/part0/~~"로 에러가 나오는데...
걍 무시하자. cciss 드라이버가 자동 하드디스크를 잡는데 약간의 문제를 동반하고 있다. 후에 언급하겠다.
4.
서버실이 졸라 추우므로 네트워킹을 설정하고 sshd를 초기화 하자.
서버실을 나와 사무실로~~
젠투가 가장 맘에 이유중의 하나는 원격 설치가 가능하기 때문이다.
# net-setup eth0
# passwd <-- 비밀번호 생성
# /etc/init.d/sshd start
5.
먼저 파티션을 잡아줘야 하는데, 이거 스마트 어레이라서 어떤 디바이스를 대상으로 할지 도통 아리송하다.
이때 /dev 폴더를 보면 cciss폴더가 있다.
그안에 아마도 "c0d0"이란 파일 뿐이다. 그전까지 보통 하드디스크나, scsi 하드디스크로 깔았을텐데 /dev/hda, /dev/sda 등등을 사용했던 사람들에겐 무지 쌩뚱맞다.
허나 그 cciss폴더에 "c0d0"이 바로 스마트 어레이 의 디바이스 파일이다.
잠깐 설명 : /dev/cciss/cXdXpX 의 파일 형식
첫번째 X : controller number
두번째 X : logical disk number
세번째 X : partition number
걍 그대로 사용하면 된다.
# fdisk /dev/cciss/c0d0
경고문이 나오는데 이것도 걍무시하자. 대충 몇기가안에 부트로더를 둬야 하는가 그런 얘기인듯 싶다.
파티션은 그전에 하던데로 핸드북에 있는데로 설정하자.
swap파티션은 대충 램용량과 같은 2기가를 잡았다. 잘 기억이 나지 않는데, 보통 2배정도 잡으라는 건데, 램이 빵빵하니 2기가만 잡았다.(부족할까?)
# fdisk /dev/cciss/c0d0
# mke2fs /dev/ccisss/c0d0p1 <-- /boot
# mke2fs -j /dev/ccisss/c0d0p3 <-- /
# mke2fs -j /dev/ccisss/c0d0p4 <-- home 이다.
# mkswap /dev/ccisss/c0d0p2
# swapon /dev/ccisss/c0d0p2
각각 마운트도 하자
# mount /dev/ccisss/c0d0p3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mkdir /mnt/gentoo/home
# mount /dev/ccisss/c0d0p1 /mnt/gentoo/boot
# mount -t proc none /mnt/gentoo/proc
6.
# date MMDDhhmmYYYY <--시간도 맞춰주고...
# cd /mnt/gentoo
# links2 http://www.gentoo.org/main/en/mirrors.xml
# tar -xvjpf /mnt/cdrom/stages/stage1-????-2004.3.tar.bz2
원래 하던데로 stage1을 받아오자...
# nano -w /etc/make.conf ->컴파일옵션들을 설정해주고 기본적인 플래그들도 설정하자
# mirrorselect -a -s4 -o |grep 'GENTOO_MIRRORS=' >> /mnt/gentoo/etc/make.conf
cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
make.conf 기본적인 USE옵션도 설정하자.
따로 x-window를 안깔것이기때문에...
USE="-X -kde -gtk -gtk2 -qt -gnome"
이렇게 설정했다.
그리고 미러 가져오는게 꽤 걸린다. 알아서 빠른쪽으로 가져오는 작업을 하는 것 같은데...믿어보자. 좀 기둘리면서 차 한잔씩 하시라.
# chroot /mnt/gentoo /bin/bash
# env-update
# source /etc/profile
원래 하던데로 계속 하면 된다. 아주 잘 깔릴뿐더러, stage1으로 시작해서 커널 컴파일 전까지 약 1시간 이내 끝남을 알수 있다. 이넘 괴물일 수 밖에 없다. (숙련일 경우 이 서버에 젠투를 까는 시간은 대략 약 4시간 안팎이다.)
# cd /usr/portage
# scripts/bootstrap.sh
# emerge system
7.
# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
# emerge gentoo-sources
# genkernel --menuconfig all
보통 genkernel할때 all옵션만 줘서하는 사람들이있는데, 이 기회에 커널에 친숙할수 있도록 menuconfig옵션을 사용하자. 대충 handbook에 있는 것들은 다 설정해주고...
특히 HT를 지원하는 제온 cpu를 위해 아래를 설정하고
Processor type and features --->
[*] Symmetric multi-processing support
Block devices --->
[*] Compaq SMART2 support
block device에 compaq smart array 부분에도 *을 찍어주자
(그리고 걍 이상태로 커널 컴파일을 하면 SCB2 BIOS 어쩌고 에러가 나오는데, BIOS flash chip on Intel SCB2 boards을 [ ]으로 하자)
Mapping drivers for chip access -->
[ ]BIOS flash chip on Intel SCB2 boards
Network device support --->
Ethernet (1000 Mbit) --->
<*> Broadcom Tigon3 support
블루투스 같이 대충 필요없다 싶은것은 지워고...대부분은 모듈로 남겨두자. 세이브 하고 나가는 척을 하면 알아서 컴파일된다.
물론 컴파일 시간은 상상에 맡기겠다.
# emerge coldplug
# rc-update add coldplug default
쓰던 버릇으로 hotplug를 걍 쓰는 사람들이 있는데, 버젼업한 coldplug를 써주자!!
8.
# nano -w /etc/fstab
자!! 여기서 중요한것은 2.4대 커널과 2.6대 커널 특히 devfs와 udev를 사용하는 것으로 dev node이름이 달라진다.
Gentoo x86 minimal 2004.3 에서는 커널 2.6과 udev를 써서 /dev/cciss/cXdXpX 형식으로 쓰여지나, 커널 2.4에 devfs는 /dev/cciss/discX/partX 형식으로 쓰여진다...-_-
그러니 대충 유추해서 사용하자!! 아래와 같이
/dev/cciss/disc0/part1 /boot ext2 noauto,noatime 1 2
/dev/cciss/disc0/part3 / ext3 noatime 0 1
/dev/cciss/disc0/part2 none swap sw 0 0
/dev/cciss/disc0/part4 /home ext3 noatime 0 1
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
이런식으로 설정하면 되겠다.
9.
또 기본적인 것들도 설정하자.
# echo xxx > /etc/hostname
# echo xxx.xxx.com> /etc/dnsdomainname
# rc-update add domainname default
# nano -w /etc/conf.d/net <-- 네트웍 설정
# rc-update add net.eth0 default
# nano -w /etc/hosts <-- 현재 쓰고 있는 host를 추가하자
# passwd
# emerge metalog
# rc-update add metalog default
# emerge vixie-cron
# rc-update add vixie-cron default
10.
앗 문제는 드디어 생긴다. grub을 emerge하고 설정을하자.
default 0
timeout 30
splashimage=(hd0,0)/grub/splash.xpm.gz
title=Gentoo Linux 2.4.26-r13
root (hd0,0)
kernel /kernel-2.4.26-gentoo-r13 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/cciss/disc0/part3 vga=788
initrd /initrd-2.4.26-gentoo-r13
# emerge grub
# grub
real_root를 devfs방식으로 적자!
보통 하던데로 grub 하고 root (hd0,0)하면 "Error 21: Selected disk does not exist" 에러만 나온다...
헥? 선택한 디스크가 없다고? 이기 무슨...
몇몇 사이트를 돌아댕겨 보니 grub에서 자동적으로 하드웨어를 인식 못하는 모양이다. 그럴땐...
# grub --device-map=device.map
하고 들어갔다 나오면 /boot/grub 폴더에 device.map파일이 생긴다 그 안을보면...
(fd0) /dev/fd0
되어있는데, "(hd0) /dev/cciss/c0d0"를 추가해주자!!
그리고 해봐도...안된다. 또 열라 웹등을 뒤져서 나온 정보를 토대로 해보자. 아마도 device.map을 가지고 mtab파일을 참조하는 것 같다.
# grep ext /proc/mounts > /etc/mtab
# grub-install --root-directory=/boot /dev/cciss/c0d0
Installation finished. No error reported.
This is the contents of the device map /boot/boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(fd0) /dev/fd0
(hd0) /dev/cciss/c0d0
아 기쁨과 동시에 몇 일간의 삽질을 이렇게 공개하는 것이 배가 아플뿐이다.
10.
나가자!!
# exit
# cd
# umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
# reboot
대략 이정도인데, 가끔씩 부팅하다가 커널패닉이 생기는 이유는 커널 옵션 설정내지는 grub설정이 실패했기 때문이다. 잘살펴보고 하시라.
참고 쟁점 포스트들
http://forums.gentoo.org/viewtopic.php?t=10380&highlight=hp
http://www.mail-archive.com/sisuite-users@lists.sourceforge.net/msg00881.html
Posted by 엽기민원