Ubuntu에 ffmpeg 및 x264 설치하기
개인2011. 1. 20. 11:57
참조글 : http://ubuntuforums.org/showthread.php?t=786095
1. x264 installation
2. ffmpeg installation
0. prepare
# sudo apt-get update
# sudo apt-get install sudo apt-get install build-essential git-core checkinstall yasm texi2html libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libvorbis-dev libvpx-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev
# sudo apt-get install sudo apt-get install build-essential git-core checkinstall yasm texi2html libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libvorbis-dev libvpx-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev
1. x264 installation
# cd
# git clone git://git.videolan.org/x264.git
# cd x264
# ./configure
# make
# sudo checkinstall --pkgname=x264 --pkgversion="2:0.$(grep X264_BUILD x264.h -m1 | \
cut -d' ' -f3).$(git rev-list HEAD | wc -l)+git$(git rev-list HEAD -n 1 | \
head -c 7)" --backup=no --deldoc=yes --fstrans=no --default
# git clone git://git.videolan.org/x264.git
# cd x264
# ./configure
# make
# sudo checkinstall --pkgname=x264 --pkgversion="2:0.$(grep X264_BUILD x264.h -m1 | \
cut -d' ' -f3).$(git rev-list HEAD | wc -l)+git$(git rev-list HEAD -n 1 | \
head -c 7)" --backup=no --deldoc=yes --fstrans=no --default
2. ffmpeg installation
# cd
# git clone git://git.ffmpeg.org/ffmpeg.git
# cd ffmpeg
# ./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc \
--enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \
--enable-libopencore-amrwb --enable-libtheora --enable-libvorbis \
--enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
# make
# sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(./version.sh)" --backup=no \
--deldoc=yes --fstrans=no --default
# hash x264 ffmpeg ffplay ffprobe
# git clone git://git.ffmpeg.org/ffmpeg.git
# cd ffmpeg
# ./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc \
--enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \
--enable-libopencore-amrwb --enable-libtheora --enable-libvorbis \
--enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
# make
# sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(./version.sh)" --backup=no \
--deldoc=yes --fstrans=no --default
# hash x264 ffmpeg ffplay ffprobe
Ubuntu 10.10 Maverick Meerkat에서 Intel GMA 945를 사용해서 듀얼모니터 사용하기
Linux2010. 10. 11. 16:46
IBM Thinkpad X60에서 Ubuntu 10.04에서 10.10으로 업그레이드를 완료하고 리부팅을 한후에 사용하려고 보니, 화면이 이상하게 나오고 있었다.
10.04에서도 intel driver 관련하여 문제가 있었는데 또 발생했다. ㅠ.ㅜ
이번에는 지난번에 발생한 문제와 상황이 좀 다른듯하여 구글님의 도움을 받아보기로 하였다.
관련 페이지는 아래 참조 링크.
결론은 xorg-edgers PPA를 추가하고 패키지를 업데이트하면 된다는 것이다.
다음의 명령 몇개 입력해주고 재부팅하면 끝.
만약 위의 방법으로 패키지를 업데이트 했는데도 문제가 해결이 안되었을 경우, 일단 업데이트한 패키지를 제거하기 위해서 다음의 명령을 입력해준다.
참조 : https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/619663
10.04에서도 intel driver 관련하여 문제가 있었는데 또 발생했다. ㅠ.ㅜ
이번에는 지난번에 발생한 문제와 상황이 좀 다른듯하여 구글님의 도움을 받아보기로 하였다.
관련 페이지는 아래 참조 링크.
결론은 xorg-edgers PPA를 추가하고 패키지를 업데이트하면 된다는 것이다.
다음의 명령 몇개 입력해주고 재부팅하면 끝.
$ sudo apt-add-repository ppa:xorg-edgers/ppa
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get update
$ sudo apt-get upgrade
만약 위의 방법으로 패키지를 업데이트 했는데도 문제가 해결이 안되었을 경우, 일단 업데이트한 패키지를 제거하기 위해서 다음의 명령을 입력해준다.
$ sudo ppa-purge xorg-edgers
참조 : https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/619663
세금 및 공과금 카드로 납부하기
개인2010. 9. 29. 19:00
한국전력 전기요금 수납
http://cyber.kepco.co.kr/cyber/common/popup/pop_card_pay.jsp?gubun=C
지방세 및 수도요금 수납
http://etax.seoul.go.kr/
http://cyber.kepco.co.kr/cyber/common/popup/pop_card_pay.jsp?gubun=C
지방세 및 수도요금 수납
http://etax.seoul.go.kr/
iptables와 swatch로 ssh brute force attack 막기
Linux2010. 5. 19. 23:27
/etc/init.d/iptables를 다음과 같이 만든다. (permission은 775)
/etc/init.d/swatch 파일이 없다면 다음의 내용으로 생성한다. (permission은 775)
swatch.conf에는 다음을 추가한다.
swatch에서 실행할 스크립트를 만든다.
/root/swatch-ssh 파일의 내용은 다음처럼 구성한다. (역시 permission은 775)
(다른 기능도 같이 하는 스크립트에서 일부만 발췌함)
이제 모든 준비는 완료되었습니다.
iptables 스크립트를 실행시키고 swatch를 restart하면 끝.
위에서 설정한 내용은 다음과 같습니다.
1. iptables를 설정하여 ssh 연결이 1분에 6번 이상 연결되면 kernel에 log를 남기게 됩니다.
2. swatch에서는 iptables가 남긴 kernel log를 발견하게 되면 /root/swatch-ssh 스크립트를 실행시킵니다.
3. /root/swatch-ssh 스크립트에서는 해당 IP Address를 /tmp/ssh_evil 파일에 남기는 동시에 /etc/init.d/iptables 스크립트를 실행시켜서 발견된 IP Addreess를 통해서 들어오는 연결을 차단합니다.
위의 1,2,3 과정을 반복하면서 ssh brute force attack이 발견되면 해당 IP Address를 지속적으로 차단합니다.
작성자 : 저입니다. ^^
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: iptables
# Required-Start: networking ifupdown $local_fs
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
IPTABLES=/sbin/iptables
EXT_ETH=eth0
${IPTABLES} -F
${IPTABLES} -t nat -F
${IPTABLES} -X BLACKLISTCHECK
${IPTABLES} -P INPUT ACCEPT
${IPTABLES} -P OUTPUT ACCEPT
${IPTABLES} -P FORWARD ACCEPT
${IPTABLES} -A INPUT -j ACCEPT -i lo
${IPTABLES} -A INPUT -j ACCEPT -p icmp --icmp-type any
${IPTABLES} -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
${IPTABLES} -N BLACKLISTCHECK
${IPTABLES} -A INPUT -j BLACKLISTCHECK -i ${EXT_ETH} -m state --state NEW -p tcp --dport 22
for x in `cat /tmp/ssh_evil`; do
${IPTABLES} -I BLACKLISTCHECK -s $x -j DROP
done
# 80, 22번 포트만 오픈
${IPTABLES} -A INPUT -j ACCEPT -i ${EXT_ETH} -m state --state NEW -p tcp --dport 22
${IPTABLES} -A INPUT -j ACCEPT -i ${EXT_ETH} -m state --state NEW -p tcp --dport 80
${IPTABLES} -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
${IPTABLES} -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 6 -j LOG --log-prefix "SSH_brute_force "
${IPTABLES} -A INPUT -j REJECT --reject-with icmp-host-prohibited
### BEGIN INIT INFO
# Provides: iptables
# Required-Start: networking ifupdown $local_fs
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
IPTABLES=/sbin/iptables
EXT_ETH=eth0
${IPTABLES} -F
${IPTABLES} -t nat -F
${IPTABLES} -X BLACKLISTCHECK
${IPTABLES} -P INPUT ACCEPT
${IPTABLES} -P OUTPUT ACCEPT
${IPTABLES} -P FORWARD ACCEPT
${IPTABLES} -A INPUT -j ACCEPT -i lo
${IPTABLES} -A INPUT -j ACCEPT -p icmp --icmp-type any
${IPTABLES} -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
${IPTABLES} -N BLACKLISTCHECK
${IPTABLES} -A INPUT -j BLACKLISTCHECK -i ${EXT_ETH} -m state --state NEW -p tcp --dport 22
for x in `cat /tmp/ssh_evil`; do
${IPTABLES} -I BLACKLISTCHECK -s $x -j DROP
done
# 80, 22번 포트만 오픈
${IPTABLES} -A INPUT -j ACCEPT -i ${EXT_ETH} -m state --state NEW -p tcp --dport 22
${IPTABLES} -A INPUT -j ACCEPT -i ${EXT_ETH} -m state --state NEW -p tcp --dport 80
${IPTABLES} -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
${IPTABLES} -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 6 -j LOG --log-prefix "SSH_brute_force "
${IPTABLES} -A INPUT -j REJECT --reject-with icmp-host-prohibited
/etc/init.d/swatch 파일이 없다면 다음의 내용으로 생성한다. (permission은 775)
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: swatch
# Required-Start: networking ifupdown $local_fs
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
PATH="/sbin:/bin:/usr/sbin:/usr/bin"
NAME="swatch"
DAEMON="/usr/bin/swatch"
DESC="simple watcher"
CONFFILE="/etc/swatch.conf"
#LOGFILE="/var/log/secure"
LOGFILE="/var/log/syslog"
PIDFILE="/var/run/swatch.pid"
OPTS="--config-file=$CONFFILE --tail-file=$LOGFILE --pid-file=$PIDFILE --awk-field-syntax --tail-args='-F' --daemon"
test -x $DAEMON || exit 0
start() {
if [ ! -f "$CONFFILE" ]; then
echo "Error: $CONFFILE does not exist."
exit 1
fi
if [ ! -f "$LOGFILE" ]; then
echo "Error: $LOGFILE does not exist."
exit 1
fi
if [ -f "$PIDFILE" ]
then
echo "Error: $NAME is already running."
else
$DAEMON $OPTS >/dev/null 2>&1
fi
}
stop() {
if [ -f "$PIDFILE" ]
then
PID=`cat $PIDFILE`
if ps h $PID > /dev/null
then
pkill -P $PID
kill $PID
else
echo "Error: $NAME is not running, but PID file exists. Deleting it."
fi
rm -f $PIDFILE
else
echo "Error: $NAME is not running."
fi
}
case "$1" in
start)
echo "Starting $DESC: $NAME"
start
;;
stop)
echo "Stopping $DESC: $NAME"
stop
;;
restart)
echo "Restarting $DESC: $NAME"
stop
sleep 1
start
;;
*)
echo "Usage: $0 start|stop|restart"
exit 1
;;
esac
exit 0
### BEGIN INIT INFO
# Provides: swatch
# Required-Start: networking ifupdown $local_fs
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
PATH="/sbin:/bin:/usr/sbin:/usr/bin"
NAME="swatch"
DAEMON="/usr/bin/swatch"
DESC="simple watcher"
CONFFILE="/etc/swatch.conf"
#LOGFILE="/var/log/secure"
LOGFILE="/var/log/syslog"
PIDFILE="/var/run/swatch.pid"
OPTS="--config-file=$CONFFILE --tail-file=$LOGFILE --pid-file=$PIDFILE --awk-field-syntax --tail-args='-F' --daemon"
test -x $DAEMON || exit 0
start() {
if [ ! -f "$CONFFILE" ]; then
echo "Error: $CONFFILE does not exist."
exit 1
fi
if [ ! -f "$LOGFILE" ]; then
echo "Error: $LOGFILE does not exist."
exit 1
fi
if [ -f "$PIDFILE" ]
then
echo "Error: $NAME is already running."
else
$DAEMON $OPTS >/dev/null 2>&1
fi
}
stop() {
if [ -f "$PIDFILE" ]
then
PID=`cat $PIDFILE`
if ps h $PID > /dev/null
then
pkill -P $PID
kill $PID
else
echo "Error: $NAME is not running, but PID file exists. Deleting it."
fi
rm -f $PIDFILE
else
echo "Error: $NAME is not running."
fi
}
case "$1" in
start)
echo "Starting $DESC: $NAME"
start
;;
stop)
echo "Stopping $DESC: $NAME"
stop
;;
restart)
echo "Restarting $DESC: $NAME"
stop
sleep 1
start
;;
*)
echo "Usage: $0 start|stop|restart"
exit 1
;;
esac
exit 0
swatch.conf에는 다음을 추가한다.
perlcode my $sshscript = '/root/swatch-ssh';
watchfor /([a-zA-Z]{3})\s+([0-9]{1,2}) ([0-9]{2}:[0-9]{2}:[0-9]{2}) ([a-zA-Z0-9_-]+) kernel: \[.*\] SSH_brute_force .*SRC=(.*) DST=/
exec "$sshscript '$*' >> /var/log/swatch.log"
throttle 00:00:30
watchfor /([a-zA-Z]{3})\s+([0-9]{1,2}) ([0-9]{2}:[0-9]{2}:[0-9]{2}) ([a-zA-Z0-9_-]+) kernel: \[.*\] SSH_brute_force .*SRC=(.*) DST=/
exec "$sshscript '$*' >> /var/log/swatch.log"
throttle 00:00:30
swatch에서 실행할 스크립트를 만든다.
/root/swatch-ssh 파일의 내용은 다음처럼 구성한다. (역시 permission은 775)
(다른 기능도 같이 하는 스크립트에서 일부만 발췌함)
#!/usr/bin/ruby1.8
if ARGV.length==0 && ARGV.length < 2
puts "Error!! Argument must more than 1 words!!"
puts "ex) swatch-ssh message"
exit 1
else
begin
message = ""
argv_msg = ARGV[0].split
host = argv_msg[3]
beginflag = false
for qs in argv_msg do
message = message + (message!=""?" ":"") + qs if beginflag == true
beginflag = true if qs == host
end
# for 3ware modules message
message.sub!(/kernel: \[[0-9\s]+\.[0-9]+\] /, '')
message.sub!(/\(.*\)/, '')
smsmessage = sprintf("[%s]%s\n", host, message)
# smsmessage.gsub!(' ', '_')
smsmessage.sub!(/\[mgm\]/, '')
smsmessage.sub!(/SSH_brute_force .* SRC=/, '')
smsmessage.sub!(/ DST=.*/, '')
File.open("/tmp/ssh_deny", 'a') {|f| f.write(smsmessage) }
command = sprintf("cat /tmp/ssh_evil /tmp/ssh_deny | sort -u > /tmp/ssh_uniq_evil ; rm /tmp/ssh_deny ; cp /tmp/ssh_uniq_evil /tmp/ssh_evil ; /etc/init.d/iptables")
# printf("%s\n", command)
system(command)
end
end
exit 0
if ARGV.length==0 && ARGV.length < 2
puts "Error!! Argument must more than 1 words!!"
puts "ex) swatch-ssh message"
exit 1
else
begin
message = ""
argv_msg = ARGV[0].split
host = argv_msg[3]
beginflag = false
for qs in argv_msg do
message = message + (message!=""?" ":"") + qs if beginflag == true
beginflag = true if qs == host
end
# for 3ware modules message
message.sub!(/kernel: \[[0-9\s]+\.[0-9]+\] /, '')
message.sub!(/\(.*\)/, '')
smsmessage = sprintf("[%s]%s\n", host, message)
# smsmessage.gsub!(' ', '_')
smsmessage.sub!(/\[mgm\]/, '')
smsmessage.sub!(/SSH_brute_force .* SRC=/, '')
smsmessage.sub!(/ DST=.*/, '')
File.open("/tmp/ssh_deny", 'a') {|f| f.write(smsmessage) }
command = sprintf("cat /tmp/ssh_evil /tmp/ssh_deny | sort -u > /tmp/ssh_uniq_evil ; rm /tmp/ssh_deny ; cp /tmp/ssh_uniq_evil /tmp/ssh_evil ; /etc/init.d/iptables")
# printf("%s\n", command)
system(command)
end
end
exit 0
이제 모든 준비는 완료되었습니다.
iptables 스크립트를 실행시키고 swatch를 restart하면 끝.
iptables -N BLACKLISTCHECK
touch /tmp/ssh_evil
update-rc.d iptables defaults 20
update-rc.d swatch defaults 20
/etc/init.d/iptables
/etc/init.d/swatch restart
touch /tmp/ssh_evil
update-rc.d iptables defaults 20
update-rc.d swatch defaults 20
/etc/init.d/iptables
/etc/init.d/swatch restart
위에서 설정한 내용은 다음과 같습니다.
1. iptables를 설정하여 ssh 연결이 1분에 6번 이상 연결되면 kernel에 log를 남기게 됩니다.
2. swatch에서는 iptables가 남긴 kernel log를 발견하게 되면 /root/swatch-ssh 스크립트를 실행시킵니다.
3. /root/swatch-ssh 스크립트에서는 해당 IP Address를 /tmp/ssh_evil 파일에 남기는 동시에 /etc/init.d/iptables 스크립트를 실행시켜서 발견된 IP Addreess를 통해서 들어오는 연결을 차단합니다.
위의 1,2,3 과정을 반복하면서 ssh brute force attack이 발견되면 해당 IP Address를 지속적으로 차단합니다.
작성자 : 저입니다. ^^
OpenLDAP에 계정 추가하기
작업2010. 4. 19. 15:59
- OpenLDAP에 계정추가하기
먼저 ldif 파일을 다음과 같이 만든다.
다음 명령으로 위의 파일에 있는 계정을 추가한다.
crypt 패스워드를 얻기 위해서는 다음과 같이 입력한다.
먼저 ldif 파일을 다음과 같이 만든다.
dn: uid=ldapaddtest,ou=people,dc=domain,dc=com
uid: ldapaddtest
cn: ldapaddtest
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: e2NyeXB0fSQxJG4wOXM0N3FFJE9JUlI4R1pJNjduZ2Q3UXJ5VThPZDE=
loginShell: /bin/bash
uidNumber: 10067
gidNumber: 100
homeDirectory: /home/ldapaddtest
uid: ldapaddtest
cn: ldapaddtest
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: e2NyeXB0fSQxJG4wOXM0N3FFJE9JUlI4R1pJNjduZ2Q3UXJ5VThPZDE=
loginShell: /bin/bash
uidNumber: 10067
gidNumber: 100
homeDirectory: /home/ldapaddtest
다음 명령으로 위의 파일에 있는 계정을 추가한다.
ldapadd -x -D "cn=admin,dc=domain,dc=com" -W -h localhost -f useradd.ldif
위 명령을 실행시키면 비밀번호를 물어본다. /etc/ldap.secret 파일에 있는 비밀번호를 입력한다.
- 이제 비밀번호를 변경할 차례
luma를 설치하고 실행한다.
sudo aptitude install luma
crypt 패스워드를 얻기 위해서는 다음과 같이 입력한다.
openssl passwd -crypt 1234
luma에서 위에 추가한 계정으로 이동한 후에 패스워드 필드를 수정을 선택하고 'crypt' 방식으로 패스워드를 변경해준다.
이렇게하면 계정 추가 끝
** 위에 ldapadd 명령에 -x가 붙어있다. -x는 sasl을 사용하지 않게 해준다.
위에 계정이 제대로 추가되었는지 확인하려면
ldapsearch -x -D "cn=admin,dc=domain,dc=com" -W -L "uid=ldapaddtest"
MySQL Proxy
작업2010. 3. 29. 14:15
MySQL Proxy is a simple program that sits between your client and MySQL
server(s) that can monitor, analyze or transform their communication.
https://launchpad.net/mysql-proxy
http://forge.mysql.com/wiki/MySQL_Proxy
MySQL에 fail-over와 load balancing(round-robin)을 하기 위한 가장 쉬운 도구.
https://launchpad.net/mysql-proxy
http://forge.mysql.com/wiki/MySQL_Proxy
MySQL에 fail-over와 load balancing(round-robin)을 하기 위한 가장 쉬운 도구.
키보드 보안 ActiveX들 최소버전 또는 바이패스로 설치하기
개인2010. 2. 5. 09:50
ClientKeeper KeyPro 최소버전
http://keypro.clientkeeper.co.kr/support/newsafe/
또는
http://keypro.clientkeeper.co.kr:8080/faq/safe.jsp
SoftCamp Secure KeyStroke 바이패스
http://www.softcamp.co.kr/scsk/bypass/install.asp
또는
http://www.softcamp.co.kr/scsk/bypass/
http://keypro.clientkeeper.co.kr/support/newsafe/
또는
http://keypro.clientkeeper.co.kr:8080/faq/safe.jsp
SoftCamp Secure KeyStroke 바이패스
http://www.softcamp.co.kr/scsk/bypass/install.asp
또는
http://www.softcamp.co.kr/scsk/bypass/
MySQL에서 특정 Thread가 "Sending data" 상태에서 오랜시간 머무른다면..
작업2009. 11. 26. 00:55
MySQL에 MyISAM으로 DB를 운영중에 간혹 "Sending data" 상태에서 1분이상 시간이 소요되는 경우가 있다.
이 때문에 Table에 Lock이 걸려 다른 Query들이 다 대기상태가 된다.
MySQL의 Query Caching 시스템에 문제가 있을 수 있으니 query cache를 off해 보란다.
http://bugs.mysql.com/bug.php?id=45544
뭐.. 나아지기만 바란다 ㅠㅠ
PS. 그러나 제일 중요한건 Slow Query가 발생하는 원인이 되는 Query를 수정하는 것이지 않을까. ㅎㅎ
이 때문에 Table에 Lock이 걸려 다른 Query들이 다 대기상태가 된다.
MySQL의 Query Caching 시스템에 문제가 있을 수 있으니 query cache를 off해 보란다.
http://bugs.mysql.com/bug.php?id=45544
뭐.. 나아지기만 바란다 ㅠㅠ
PS. 그러나 제일 중요한건 Slow Query가 발생하는 원인이 되는 Query를 수정하는 것이지 않을까. ㅎㅎ
BSD 방화벽 PF & DDoS 방어
작업2009. 11. 24. 17:16
FreeBSD에서 PF 사용할 방법을 찾던 중 한글로 보기 쉽게 정리된 페이지를 찾았다.
http://mix1009.net/entry/BSD-방화벽-PF-DDoS방어
요즘 FreeBSD를 자주 손대게 되는게 참.. 알면 알수록 어려운 OS란 생각이 든다.
http://mix1009.net/entry/BSD-방화벽-PF-DDoS방어
요즘 FreeBSD를 자주 손대게 되는게 참.. 알면 알수록 어려운 OS란 생각이 든다.
openafs 사용시 sysctl_check_dir: failed: /afs .1 ref: /kernel .1 와 같은 에러가 발생하면....
Linux2009. 10. 1. 20:51
현재 openafs를 사용하는 시스템이 xen위에 올라와 있어서 가끔 이상동작을 하기는 하지만 이번에는 다음과 같은 에러가 발생해서 좀 알아보았다.
현재 운영중인 OS는 Ubuntu 8.04 LTS Hardy Heron이며 다음과 같이 작업하여 문제를 해결하였다. 64bit amd64를 사용중이다.
원인은 아마 Ubuntu 8.04와 openafs 1.4.6이 호환성이 좋지 않아서가 아닐까하는 추측만 남았다.
Found system call table at 0xc03226c0 (pattern scan)
sysctl_check_dir: failed: /afs .1 ref: /kernel .1
sysctl table check failed: /afs .1 Inconsistent directory names
sysctl_check_dir: failed: /afs .1 ref: /kernel .1
sysctl table check failed: /afs .1 Inconsistent directory names
현재 운영중인 OS는 Ubuntu 8.04 LTS Hardy Heron이며 다음과 같이 작업하여 문제를 해결하였다. 64bit amd64를 사용중이다.
cd /usr/src
wget http://mirrors.kernel.org/ubuntu/pool/universe/o/openafs/openafs-modules-source_1.4.11+dfsg-4_amd64.deb
mv modules modules.old
dpkg -i openafs-modules-source_1.4.11+dfsg-4_amd64.deb
## module-assistant를 실행해서 openafs-modules를 build하고 설치
m-a -t a-i openafs-
원인은 아마 Ubuntu 8.04와 openafs 1.4.6이 호환성이 좋지 않아서가 아닐까하는 추측만 남았다.