http://redmine.nehome.net/redmine/projects/chef/wiki/Install_Chef-Server_010x_on_Ubuntu_1204


Install Chef-Server 010x on Ubuntu 11.04/12.04

Edit

apt 저장소 등록

  • Chef는 현재 세부 기능의 차이로 0.9.x와 0.10.x 2종류로 나뉜다.
  • 본 문서에서는 0.10.x를 사용하는 것으로 한다.
Edit

apt source.list 등록

  • Ubuntu for Chef 0.9.x
    echo "deb http://apt.opscode.com/ `lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/opscode.list
    
  • Ubuntu for Chef 0.10.x
    echo "deb http://apt.opscode.com/ `lsb_release -cs`-0.10 main" | sudo tee /etc/apt/sources.list.d/opscode.list
    
Edit

GPG Key 등록

  • 패키지의 무결성 보장을 위해 Opscode GPG키 등록
    sudo mkdir -p /etc/apt/trusted.gpg.d
    gpg --keyserver keys.gnupg.net --recv-keys 83EF826A
    gpg --export packages@opscode.com | sudo tee /etc/apt/trusted.gpg.d/opscode-keyring.gpg > /dev/null
    
  • (Note) keyserver timeout 에러 발생시 아래 방법을 통해 Opscode로부터 직접 Key를 다운로드.
    gpg --fetch-key http://apt.opscode.com/packages@opscode.com.gpg.key
    gpg --export packages@opscode.com | sudo tee /etc/apt/trusted.gpg.d/opscode-keyring.gpg > /dev/null
    
Edit

저장소 목록 update 및 Opscode-keyring 설치

sudo apt-get update
sudo apt-get install opscode-keyring
Edit

Chef의 원활한 설치를 위해, 라이브러리들을 비롯해 배포본을 최신으로 upgrade

sudo apt-get upgrade
Edit

chef-server 패키지 설치

  • chef와 chef-server 패키지만으로도 충분하나, web-ui를 필요로 한다면, 확장 패키지들이 필요하다.
  • 설치 중, 하기와 같은 입력값을 요구 받을 수 있다.
Edit

chef-server 설치

  • chef-server core 설치
    sudo apt-get install chef chef-server
    
    • 상세 수행 내역
      • Install all the dependencies for Chef Server, including Merb, CouchDB, RabbitMQ, etc.
      • Starts CouchDB (via the couchdb package).
      • Starts RabbitMQ (via the rabbitmq-server package).
      • Start chef-server-api via /etc/init.d/chef-server, running a merb worker on port 4000
      • Start chef-server-webui via /etc/init.d/chef-server-webui, running a merb worker on port 4040
      • Start chef-solr-indexer via /etc/init.d/chef-solr-indexer, connecting to the rabbitmq-server
      • Start chef-solr via /etc/init.d/chef-solr, using the distro package for solr-jetty
      • Start chef-client via /etc/init.d/chef-client
      • Add configuration files in /etc/chef for the client, server, solr/solr-indexer and solo
      • Create all the correct directory paths per the configuration files
  • web-ui 설치
    sudo apt-get install chef chef-server-api chef-expander
    
Edit

설치 상태 확인

  • 설치가 끝나면 하기 표에 열거된 프로세스들의 작동 상태를 확인 해야 한다.
Edit

Chef Server 구성요소 및 응답포트 안내

  • Chef Server WebUI는 Chef시스템 운영에서 필수 요소는 아니다. (Optional)
  • 혹, Chef Server WebUI가 작동되지 않는다면, /var/run/chef/server-webui.main.pid 파일이 이미 존재해서 일 가능성이 있다. 해당 파일을 삭제하고 다시 Start시도를 해본다.
NameListen Portps 수행결과 출력 샘플
Chef Server4000merb : chef-server (api) : worker (port 4000)
Chef Server WebUI(Optional)4040merb : chef-server-webui : worker (port 4040)
CouchDB5984beam.smp -Bd -K true – -root /usr/local/lib/erlang -progname erl – -noshell -noinput -couch_ini /usr/local/etc/couchdb/default.ini /usr/local/etc/couchdb/local.ini -s couch
RabbitMQ5672{{beam.smp -W w -K true -A30 – -root /usr/local/lib/erlang -progname erl – -noshell -noinput -s rabbit -sname rabbit -rabbit tcp_listeners [{"0.0.0.0", 5672}]}}
Chef Solr8983/usr/bin/java -Xmx250M -Xms250M -Dsolr.data.dir=/opscode/chef/features/data/solr/data -Dsolr.solr.home=/opscode/chef/features/data/solr/home -jar /opscode/chef/features/data/solr/jetty/start.jar
Chef Expandernoneruby ./chef-solr/bin/chef-expander -c /etc/chef/solr.rb -l debug
Edit

설정/구성

  • 이제부터는 Chef 시스템에서 가장 중요한 "설정/구성"단계로서, Client와 Server간의 식별을 위한 인증서/인증키 생성 및 Chef Server에 대한 설정을 수행해야 한다.
  • knife라는 도구를 통해 필요한 값을 입력함으로 자동으로 구성해주는 방법과, 설정 파일을 수동으로 기술하는 방법 2가지 모두 가능.
  • 본 가이드에서는 Opscode에서 권장하는 knife 도구를 이용한 정석적 방법으로 설명한다.
Edit

Chef 환경 디렉토리 생성

  • (Note) Certificates Read Only
mkdir -p ~/.chef
sudo cp /etc/chef/validation.pem /etc/chef/webui.pem ~/.chef
sudo chown -R $USER ~/.chef
Edit

knife 도구를 이용한 Chef Server 환경 구성

  • knife : Chef-Server의 API 호출을 지원하는 CLI.
  • 처음 접하면 난해한 면이 있다.
  • Chef-Server입장에서 아무 Client나 Chef-Server의 Role/Recipe를 적용하도록 허용되어서도 안되고, Chef-Client입장에서도 아무 Chef-Server에서 제공되는 Role/Recipe를 받아서도 안되기 때문에 인증 체계가 중요하다.
  • 설치후, knife.rb파일에 cookbooks 디렉토리 경로를 지정하는 설정을 추가한다.
    • cookbook_path [ "/var/lib/chef/cookbooks" ]
knife configure -i
> WARNING: No knife configuration file found
> Where should I put the config file? [/root/.chef/knife.rb] 
> Please enter the chef server URL: [http://ubuntu:4000] http://localhost:4000
> Please enter a clientname for the new client: [root] 
> Please enter the existing admin clientname: [chef-webui] 
> Please enter the location of the existing admin client's private key: [/etc/chef/webui.pem] /root/.chef/webui.pem
> Please enter the validation clientname: [chef-validator] 
> Please enter the location of the validation key: [/etc/chef/validation.pem] /root/.chef/validation.pem
> Please enter the path to a chef repository (or leave blank): 
> Creating initial API user...
> Created client[root]
> Configuration file written to /root/.chef/knife.rb
  • WARNING: No knife configuration file found
    • 최초 구성시 Chef Server 설정 파일(knife.rb)이 없어서 생기는 경고.(무시)
  • Where should I put the config file? [/root/.chef/knife.rb]
    • knife.rb 파일의 위치 입력
  • Please enter the chef server URL: [http://ubuntu:4000]
    • Chef Server 호출 URI 입력
  • Please enter a clientname for the new client: [root]
    • 새로운 Client 하나를 생성. (불필요하면 추후 삭제 가능할 듯...)
  • Please enter the location of the existing admin client's private key: [/etc/chef/webui.pem]
    • 이미 존재하는 관리용(admin) Client의 pem 파일 위치 입력
  • Please enter the validation clientname: [chef-validator]
    • chef-validator라는 client는 특별한 계정으로서, 신규 노드의 자동등록을 위해 사용된다.
  • Please enter the location of the validation key: [/etc/chef/validation.pem]
    • chef-validation client용도의 pem 파일 위치 입력
  • Please enter the path to a chef repository (or leave blank):
    • Chef 저장소에 대한 위치 입력 (Defautl 유지)
Edit

설정/구성 상태 확인 테스트

  • 복수의 Client를 생성(개별 인증/pem 운영)하여 Chef시스템을 운영 할 수도 있다. 관련 내용은 도입부의 참조 문서 내용에 상세히 기술되어 있음.
  • 본 문서는 chef-validation.pem 하나로 Chef-Client를 등록/식별하는 용도로 작성되었으므로, Client 에게 배포할 인증서는 validation.pem이다. (보안 문제가 있을 수 있다. 검토중...)
  • Client 목록 조회 테스트
    knife client list
    > chef-validator
    > chef-webui
    > root
    > ubuntu
    
  • Node 목록 조회 테스트
    knife node list
    > ubuntu
    
Edit

[END] Chef-Sever 구축 완료.

Posted by 사랑줍는거지
,

Linux 설치시 설치상태나, 설치 단계에서부터 몇가지 체크하고 모니터링 할게 있어서, SSH로 접근 하면 좀 편하지 않을까 싶어서, Ananconda가 Load되면서 SSH를 뛰울 수 있는 방법이 없나~ 하다가... 아주 썩 깔끔한 방법은 아니지만, 우선 급한대로 원하는 결과만(?) 만들어 내어 일단 메모해둔다. (보안같은 부분은 추가적으로 해줘야 한다.. SSH가 root로 비번도 없이 로그인 되니... pass를 미리 설정하던지, Allow인자를 활용하던지.. 아무튼, 꼭 보안은 별도로 신경 써줘야 한다...)


1. 환경

TFTP/PXE로 isolinux 이미지들을 바탕으로 설치

isolinux중에서 initrd.img 이미지를 편집하는 것으로 처리.


2. initrd.img 풀어 해치기~

# cd <initrd.img가 있는 디렉토리>

# mkdir initrd

# cd initrd

# zcat ../initrd.img | cpio -idv

# ls -al

drwxr-xr-x 15 root root 4096 Apr  8 19:54 .

drwxr-xr-x  4 root root 4096 Apr  8 19:53 ..

-rw-r--r--  1 root root  134 Apr  8 19:54 .bash_history

lrwxrwxrwx  1 root root    4 Apr  8 19:54 bin -> sbin

-rw-r--r--  1 root root   78 Apr  8 19:54 .buildstamp

drwxr-xr-x  2 root root 4096 Apr  8 19:54 dev

drwxr-xr-x 16 root root 4096 Apr  8 19:54 etc

drwxr-xr-x 18 root root 4096 Apr  8 19:54 firmware

lrwxrwxrwx  1 root root   10 Apr  8 19:54 init -> /sbin/init

drwxr-xr-x  3 root root 4096 Apr  8 19:54 lib

drwxr-xr-x  4 root root 4096 Apr  8 19:54 lib64

drwxr-xr-x  3 root root 4096 Apr  8 19:54 modules

drwxr-xr-x  2 root root 4096 Apr  8 19:54 proc

-rw-r--r--  1 root root  157 Apr  8 19:54 .profile

drwxr-xr-x  2 root root 4096 Apr  8 19:54 sbin

drwxr-xr-x  2 root root 4096 Apr  8 19:54 selinux

drwxr-xr-x  2 root root 4096 Apr  8 19:54 sys

drwxr-xr-x  2 root root 4096 Apr  8 19:54 tmp

drwxr-xr-x  7 root root 4096 Apr  8 19:54 usr

drwxr-xr-x  7 root root 4096 Apr  8 19:54 var


3. ssh 데몬 실행을 위한 준비
(다행이 Anaconda 이미지에 sshd 바이너리나 기본적인 설정파일은 미리 준비되어 있었다.)

# cd <이전 단계에서 initrd.img를 풀어둔 디렉토리>

# ssh-keygen -b 1024 -f etc/ssh/ssh_host_key -N "" -t rsa1

# ssh-keygen -d -f etc/ssh/ssh_host_rsa_key -N "" -t rsa

# ssh-keygen -d -f etc/ssh/ssh_host_dsa_key -N "" -t dsa

# cp -a etc/ssh/sshd_config.anaconda etc/ssh/sshd_config

# cat etc/ssh/sshd_config
(Port를 변경하고 싶으면 변경하면 되고, 기타 옵션 조정을 원하면 알아서....)

Port 22

HostKey /etc/ssh/ssh_host_key

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key

PermitRootLogin yes

IgnoreRhosts yes

StrictModes yes

X11Forwarding yes

X11DisplayOffset 10

PrintMotd yes

XAuthLocation /sbin/xauth

KeepAlive yes

SyslogFacility AUTHPRIV

RSAAuthentication yes

PasswordAuthentication yes

PermitEmptyPasswords yes

PermitUserEnvironment yes


4. Anaconda 로딩 시, sshd 자동 실행 처리
(이부분이 참... 원래 init 스크립트가 그냥 bash 쉘 스크립트였는데, CentOS6부터 바꼈는지, 컴파일 되어 있다..ㅡ.ㅡ;; 어쨌든, 훼이크성 편법이지만, 부팅중 실행되는 바이너리 중 하나를 바꿔치기 해서 /usr/sbin/sshd가 실행되도록 임시 처리 했다.... 만만한게 auditd 였다.. 추후 정상적인 init프로세스에 추가 할수 있는 방법을 찾으면 수정..)

# cd <이전 단계에서 initrd.img를 풀어둔 디렉토리>

# cd sbin

# mv auditd auditd.orig

# cat > auditd << EOF

#!/bin/bash

/sbin/sshd

/sbin/auditd.orig

EOF

# chmod 755 auditd


5. SSH 설정작업은 끝... 작업했던 디렉토리 내용을 다시 initrd.img로 묶어준다.

# cd <이전 단계에서 initrd.img를 풀어둔 디렉토리>

# find . | cpio -H newc -o | gzip -9 > ../initrd.img


6. 이제 다시 설치를 시도해서, 설치 과정중 해당 서버로 SSH접속을 시도해본다.

- Password는 없이 바로 로그인 된다.

- 다른 사전 작업이 필요하다면, 각자 처리 해둔다.


이상, 끝..... 서두에 이야기 했듯이... sshd를 실행하는 것이 정상적이진 않다... 시간이 되는대로 CentOS 6 Anaconda의 init과정을 좀 파봐야 겠다... 뭔가 나오면 그때 문서 업데이트하기로 하고 오늘은 이정도로만....

Posted by 사랑줍는거지
,
얼마전 클라우드 프론티어에 OpenStack CEO 앤드류~어쩌구~저쩌구가 OpenStack발표하는 말미에 이런 이야기를 하더군요...

"사람들이 종종 묻기를...“OpenStack은 클라우드 코어로서 사용될 준비가 되어 있는지요?”라고 묻는다... 그런데, 이 질문은 조금 잘못된 것 같다. 나는 이렇게 되 묻고 싶다. “그게 OpenStack이든 뭐든,... 그것들을 사용할 '준비'가 되어 있는가??” 여기서 제가 말하는 '준비'는 전문성이나 기술력이 되겠죠... OpenStack은 현재 여러모로 부족합니다. 그러나, 가능성은 대단합니다. Linux가 처음에 그러했 듯이 OpenStack도 그러할 것입니다."

Cloud한다는 분들은 곱씹어 볼 내용이지요.... '준비'가 되어있는지.... 아무튼 그날 들은 내용중 젤 인상 깊게 남는듯......
Posted by 사랑줍는거지
,
원문 : http://www.cyberciti.biz/tips/centos-linux-6-download-cd-dvd-iso.html


CentOS Linux version 6 has been released. It is a community-supported operating system based on Red Hat Enterprise Linux (RHEL) version 6. CentOS Linux is considered as the most popular Linux distribution for web servers with almost 30% of all Linux servers using it.

CentOS Linux 6 Desktop Screenshot

Fig.03: CentOS Linux 6 Desktop Screenshot


From the release notes:

The CentOS team is pleased to announce the immediate availability of CentOS-6.0 for i386 and x86_64 Architectures. CentOS-6.0 is based on the upstream release EL 6.0 and includes packages from all variants. All upstream repositories have been combined into one, to make it easier for end users to work with.

CentOS Linux 6 Screenshots

CentOS 6 Download

You can download CentOS Linux 6 via the web/ftp server or via BitTorrent (recommended) client.

CentOS 6 DVD ISO download

CentOS Linux 6 DVD ISO Torrents

Torrent files for the DVD's are available at the following location:

A Note About CentOS Linux version 6.1

From the mailing list:

Since upstream has a 6.1 version already released, we will be using a Continous Release repository for 6.0 to bring all 6.1 and post 6.1 security updates to all 6.0 users, till such time as CentOS-6.1 is released itself. There will be more details about this posted within the next 48 hours.

Featured Articles:

Posted by 사랑줍는거지
,
Chef의 Server/Client 구성을 위해 이래저래 구글 돌아다니다가 우연히 접한 OS인데, 너무 너무 끌리는 OS였다. 일단 설치 ISO이미지 용량이....330MB정도로 무지~무지~ 쬐끔이다~ 정말 Frame OS??????


아래는, 이 OS를 찾게된 링크 내용인데, FrameOS의 특징에 대한 설명이 잘되 있다. 개인적인 이유지만, 컴팩트 하면서도 RHEL(CentOS)와 100%호환되고(즉, 무지 컴팩트 하지만, yum으로 얼마든지 원하는 서비스 설치/추가가 가능 하다는..), 더군다나, Chef가 이미 적재되어 있어, 자동화 요소도 기본적으로 가지고 있다. 좀더 확인해봐야 겠지만, 가상화 인프라 구축에서 지금 해야할일이 엄청 줄어들지도 모르겠다~ (+.+)

다른 문서에서는, KVM기반의 Hypervisior 구축시, Host-OS로도 많이 이용하는듯 하다. 커널도 최신 및 부수적인 패키지들이 모두 최신이었다. 현재 FrameOS 버전이 6인걸로 추정하는데, 아마도 RHEL6 SRPM을 가져다 만들었다면,,, 큭...ㅋㅋㅋ CentOS6를 기다릴 필요가 그닥.....없어질지도.... (좀더 확인을 해봐야 할 사항임)
 


원문 : http://support.frameos.org/discussions/questions/3-why-should-i-use-frameos-instead-of-centos

Why should I use FrameOS instead of CentOS?

  1. SUPPORT STAFF2 Posted by rubiojr on February 25, 2011 @ 06:24 PM

    rubiojr's Avatar

    Good question.

    To be honest, moving existing RHEL/CentOS/SL/OL hosts to FrameOS doesn't make much sense. You can always fetch the packages you need from FrameOS repositories if you need an up2date Ruby/Chef stack.
    FrameOS tries to be 100% compatible with RHEL. You should be able to install FrameOS packages in CentOS.

    FrameOS is a Ruby/Chef flavored RHEL distribution. 99% of the packages come from Red Hat source RPMs. They key differences are:

    • Comes with Ruby Enterprise and Chef pre-installed.
    • FrameOS updates policy (with regard to Ruby/Chef) is less conservative than CentOS's. We follow Chef and Ruby upstream. If upstream doesn't break backwards compatibility, we upgrade (i.e. we will upgrade from jruby 1.5 to jruby 1.6).
    • Core install footprint is smaller. Great for fast provisioning virtual/automated environments.

    It all comes down to having an up to date ruby stack and saving a few steps after the install without having to resort to writing your own kickstart config file right now.

    Let me know if that helps ;)


ㅁㄴㄹㅇㅁㄴㄹ

아래는 ESXi 에서 설치 스크린샷이다.

부팅 초기화면이다. 눈에 뛰는건 Kickstarted Install 이다. Tap을 눌러 cmdline를 살펴보니, ks=cdrom:/frameos.ks 라고 되어 있었다. 아마도 일반적인 설정값으로 자동으로 설치가 완료되게끔 되어 있는듯.. 아직 ks파일 내용은 보지는 못했음. (본 설치는 첫번째 메뉴로 진행..)

ESXi에서 OS종류로 RHEL6(64bit)로 선택했으며, 메모리는 1GB를 할당하지 않으면, 텍스트모드로만 설치가 지원된다. (정말 RHEL6 클론인가...?? +.+)













패키지그룹 선택화면이다. 없....다...ㅡㅡ;;ㅋㅋㅋ Core하나 달랑.... 그만큼 날씬~하단 얘긴가...










설치정보 입력시간을 포함해서, 총 소요시간은 5분도 채 안걸린듯 하다. 뭐 보시다시피 전체 패키지 개수가 180여개 뿐이다... 시간이 걸릴게 딱히.... 아무튼, SSH외에는 거의 서비스도 떠있는게 없고, 정말.. 가볍다 못해, 성의 없이 느껴질 정도다.. ㅋㅋㅋㅋ

암튼 이놈으로 간단히 Chef도 해결될듯하고, VM의 템플릿OS로 잡는것도 검토해봐야 겠다.

아무튼, 정말 날씬한 몸매(?)의 OS를 원하신다면 꼭 사용해보시길.... 




(추가) FAQ 페이지를 뒤적거렸더니, ks내용도 친절히 안내되어 있음..ㅎㅎ 그리고, RHEL6 기반이 맞다...와우~
 

http://mirror.frameos.org/kickstart/frameos6.ks

cdrom
lang en_US.UTF-8
text
keyboard us

#
# Configure the network
#
#network --bootproto=query
#network --bootproto=static --ip=10.0.2.15 --netmask=255.255.255.0 --gateway=10.0.2.254 --nameserver=10.0.2.1 --hostname=frameos
network --bootproto=dhcp 

zerombr yes
clearpart --all
autopart
bootloader --location=mbr --append="rhgb quiet"

timezone Europe/Madrid
rootpw frameos
authconfig --enableshadow --enablemd5
selinux --disabled
firewall --disabled
skipx
reboot

%packages --nobase
@core





[사이트내 기타 문서들]
 

FrameosOS 6


Experimental Features





Binary RPMS included in the ISO

acl
attr
audit
audit-libs
authconfig
basesystem
bash
binutils
bzip2
bzip2-libs
ca-certificates
chkconfig
coreutils
coreutils-libs
cpio
cracklib
cracklib-dicts
cronie
cronie-anacron
crontabs
curl
cyrus-sasl
cyrus-sasl-lib
dash
db4
db4-utils
dbus-libs
device-mapper
device-mapper-event
device-mapper-event-libs
device-mapper-libs
dhclient
dracut
dracut-kernel
e2fsprogs
e2fsprogs-libs
efibootmgr
elfutils-libelf
ethtool
expat
file-libs
filesystem
findutils
fipscheck
fipscheck-lib
frameos-logos
frameos-release
gamin
gawk
gdbm
glib2
glibc
glibc-common
gmp
gnupg2
gpgme
grep
grub
grubby
gzip
hwdata
info
initscripts
iproute
iptables
iptables-ipv6
iputils
kbd
kbd-misc
kernel
kernel-firmware
keyutils-libs
krb5-libs
less
libacl
libattr
libblkid
libcap
libcap-ng
libcom_err
libcurl
libdrm
libedit
libffi
libgcc
libgcrypt
libgpg-error
libidn
libnih
libselinux
libsepol
libss
libssh2
libstdc++
libudev
libusb
libuser
libutempter
libuuid
libxml2
logrotate
lua
lvm2
lvm2-libs
MAKEDEV
mingetty
module-init-tools
mysql-libs
ncurses
ncurses-base
ncurses-libs
net-tools
newt
newt-python
nspr
nss
nss-softokn
nss-softokn-freebl
nss-sysinit
nss-util
openldap
openssh
openssh-clients
openssh-server
openssl
pam
passwd
pciutils-libs
pcre
pinentry
plymouth
plymouth-core-libs
plymouth-scripts
popt
postfix
procps
psmisc
pth
pygpgme
python
python-iniparse
python-libs
python-pycurl
python-urlgrabber
readline
rootfiles
rpm
rpm-libs
rpm-python
rsyslog
ruby-ee
sed
setup
shadow-utils
slang
sqlite
sudo
sysvinit-tools
tar
tcp_wrappers-libs
tzdata
udev
upstart
util-linux-ng
vim-minimal
wget
which
xz-libs
yum
yum-metadata-parser
zlib

















Posted by 사랑줍는거지
,
커널 컴파일을 해야할 일이 생겼다. 실용단계에 있는 건 아니지만, 분산파일시스템으로서 2.6.34부터 kernel 베이스 라인에 포함된 ceph라는 걸 테스트 해보라는 Order가 떨어진 관계로.. 그런데!!!! 지난주 목요일 부터, CentOS 5.5 x86_64의 커널을 최신으로 올릴려고 하는데, 이게 컴파일도 에러 없고, 설치 완료하고 부팅만 하면 아래 에러와 함께 Kernel Panic에 빠져 버린다.

Mounting root filesystem.mount: could not find filesystem '/dev/root'
Setting up other filesystems.
Setting up new root fssetup
root: moving /dev failed: No such file or directory
no fstab.sys, mounting internal defaults
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
Switching to new root and running init.
unmounting old /devunmounting old /procunmounting old /sysswitchroot: mount failed: No such file or directory
Kernel panic - not syncing: Attempted to kill init!

 
구글링 해봐도, 해결책 찾기가 쉽지 않았다. 뭐 root 파일시스템 지정을 LABEL로 하지말고, /dev/sda3등과 같은 실제 장치명으로 하라는... 뻔한 이야기들만.........
VMware에서 진행했던거라, 혹시, VMware SCSI모듈쪽 문제인가 싶어, 커널에 VMware관련 모듈도 포함시켜 봤지만 소용없었음.

별짓을 다 해봤지만, 해결이 되지 않던 와중, 역시 구글 형님께서 해결의 실마리를 주셨음.
(링크 : http://funky-dennis.livejournal.com/3290.html)
문제는, 커널 컴파일 설정중 CONFIG_SYSFS_DEPRECATED_V2=y 가 활성화 되어 있어야 했다.
실제 적용해보니 그렇게 실패했던 것이 한방에 성공했다.
허무하다...ㅡㅡ;; 그러고 보니 커널 컴파일을 해본지가 너무 오래됐넹... 예전에 호스팅회사 있을때는 커널 컴파일 건수가 자주 있어 그럭저럭 대처했었는데, 하나도 기억이 안난다. 메롱이다 ㅡㅡ;;


적용방법은, make menuconfig 상에서 아래와 같이 체크 해줌
General setup ->
[*] enable deprecated sysfs features to support old userspace tools
[*]   enabled deprecated sysfs features by default 


최종적으로 .config 내용에서 아래와 같이 되어 있어야 한다.
# grep CONFIG_SYSFS_DEPRECATED .config
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y


 위 옵션의 역할에 대해서 현재 나로선 정확히 모른다. enable/disable에 따라 뭐가 다른지 분명히 해야 하는데.. 관련 정보는 나중에 구글에서 좀더 찾아봐야 겠다. 


(내용 추가)
하나 해결되니, 다른게 또 튀어 나오는군...;;;
커널 부팅은 정상이나, 부팅중 fail 하나 발견...ㅡ.ㅡ Udev관련된것 같긴 한데, 자세한건 또 손가락 품팔이 할수 밖에... 잇힝;; 이거 말고도 할거 많은데, 시작부터~

  -> 급히 검색해본 결과로는  CONFIG_SYSFS_DEPRECATED 옵션 y일경우, 발생함. 그렇다고 해당 옵션을 끌수는 없는 상황(끄면 부팅이 안되므로..ㅡㅡ;)이라, 우선은 이 메세지는 무시하기로 함. (자세한 조사는 뒤로...뒤로..뒤로...;;;)
Posted by 사랑줍는거지
,