OS : CentOS 5.7

1. 사건 개요

테스트서버 부팅 중 GRUB 로딩 에러 발생.
SATA 케이블 변경 후 부팅 성공.

2. 파일시스템 점검을 위해 umount 시도

[root@test02 ~]# umount /dev/mapper/VolGroup01-LogVol00
umount: /: device is busy
umount: /: device is busy

3. /etc/inittab 파일 수정 후 single user mode 로 재부팅

id:1:initdefault:

4. umount 를 위한 조치

1) 해당 디렉토리 사용자 또는 프로세스 확인
[root@test02 ~]# fuser -cu /dev/mapper/VolGroup01-LogVol00

2) 강제로 죽이기
[root@test02 ~]# fuser -ck /dev/mapper/VolGroup01-LogVol00

3) umount 재시도
[root@test02 ~]# umount /dev/mapper/VolGroup01-LogVol00 

5. 파일시스템 체크

[root@test02 ~]# e2fsck -fv /dev/mapper/VolGroup01-LogVol00

 6. /etc/inittab 파일 원복

id:5:initdefault:

'STS' 카테고리의 다른 글

리눅스) 읽기전용 파일 시스템  (0) 2012.02.07
ar 사용법 : archive 파일 생성  (0) 2011.01.07

OS : CentOS 5.7

1. 사건 개요

테스트서버 점검 중 로그가 쌓이지 않음을 발견.
파일을 작성하거나 수정할 수 없음.
vi 에서 [읽기전용 파일 시스템]이란 문구를 발견

2. 점검

1) 파티션 확인
[root@test01 ~]# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      448G   55G  370G  13% /
/dev/sda1              99M   25M   70M  26% /boot
tmpfs                1014M     0 1014M   0% /dev/shm

2) readonly 확인
[root@test01 ~]# hdparm /dev/mapper/VolGroup00-LogVol00
/dev/mapper/VolGroup00-LogVol00:
 IO_support   =  0 (default 16-bit)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 0/0/0, sectors = 968294400, start = 0

3) 배드블럭 검사
[root@test01 ~]# badblocks -v /dev/mapper/VolGroup00-LogVol00
Checking blocks 0 to 484147200
Checking for bad blocks (read-only test): done                               
Pass completed, 0 bad blocks found.

3. 문제해결

1) 리부팅
[root@test01 ~]# shutdown -r now
Broadcast message from root (pts/1) (Tue Feb  7 10:11:36 2012):
The system is going down for reboot NOW!

2) 파일시스템 체크 중 수동으로 파일시스템을 체크하라는 메시지 출현

3) e2fsck -cfv /dev/mapper/VolGroup00-LogVol00


4. e2fsck 옵션

Emergency help:
 -p                   Automatic repair (no questions)
 -n                   Make no changes to the filesystem
 -y                   Assume "yes" to all questions
 -c                   Check for bad blocks
 -f                   Force checking even if filesystem is marked clean
 -v                   Be verbose
 -b superblock        Use alternative superblock
 -B blocksize         Force blocksize when looking for superblock
 -l bad_blocks_file   Add to badblocks list
 -L bad_blocks_file   Set badblocks list

-p : 질문 없이 자동으로 넘어 간다(화면에 않뿌려줌)
-n : 치료가 아닌 검사 용이다.
-y : 질문이 나오면 무조건 YES 한당.
-c : 배드 섹터가 있는지 확인 해 준당
-f : 파일 시스템에 문제 없어도 강제로 검사(바보같은 옵션인듯)
-v : 메세지를 자세히 나오게 한다         
-l bad_blocks_file 배드 섹터 있는 자룔르 파일로 만든당

'STS' 카테고리의 다른 글

리눅스) umount : device is busy  (0) 2012.02.07
ar 사용법 : archive 파일 생성  (0) 2011.01.07

[sts@test01 ar]$ ls
bslib.c  bslib.h

[sts@test01 ar]$ gcc -c bslib.c

[sts@test01 ar]$ ls
bslib.c  bslib.h  bslib.o

[sts@test01 ar]$ ar r libbs.a bslib.o
ar: creating libbs.a

[sts@test01 ar]$ ar t libbs.a
bslib.o


* Makefile 에 아래옵션 추가

LIBS=-L경로 -lbs


-----------------------------------------------------------------------------------------------------------------
아래글의 원문  : http://kldp.org/node/1087

제가 무지하게 초보인디...어제..제가 공부한게 있길래..한번씁니다..ㅡㅡV

/usr/lib 에 보면 라이브러리들이 무지하게 많지요

정적라이브러리 .a 와 동적라이브러리 .so 가 있습니다.

이들은 ar 명령어로 내용을 확인할수 있는데..

우선 습관적으로 man ar 을 쳐보십시요..^^*

거기에 ar(archive) 은 묶음파일을 만들고 조작하고 추출한다라고
써있습니다.

음...우선 구경하나 하면..

$> ar t libc.a | less

이걸로 해당 .o 파일들이 묶어져있음을 알수있습니다.

라이브러리를 만들려면 우선 오브젝트파일이 필요함을 알수있지요

$> gcc -c test_lib.c
이렇게 하면 test_lib.o 파일이 만들어 집니다.

ar 의 r 옵션은 오브젝트를 추가하는거구여 s 옵션은 인덱스를 만든답니다.

$> ar rs libc.a test_lib.o

이렇게 하면 C 표준 라이브러리파일에 집어넣어주는게 됩니다.
오브젝트 파일을 한꺼번에 쭈~욱 쓰셔서 집어넣으셔두 됩니다.

아 ~ 물론 r 옵션으로 libc.a 말구 새로운걸 만드셔두 됩니다.

$> ar rs libhuk.a test_lib.o
이정도로 하죠

그러면 libhuk.a 가 생깁니다.

gcc -o huk_test_lib huk_test.c -lhuk -L.

이정도로 하시면 됩니다.

-lhuk 은 libhuk.a 를 사용하겠다는 의미이고
-L. 은 현재디렉에서 찼겠다는 겁니다. (이거 안해주면 /usr/lib 에서 libhuk.a 를 찾습니다.)

다시 라이브러리를 고치시구 싶으시면 새로 컴파일 하시구

ar rs 로 라이브러리를 갱신 시키시면 됩니다.

대충 이정도 입니다.

공부를 제대로 했나 모르겟군요...ㅡ.ㅡ;;
(나이먹구 책보구 독학하려니 힘들군요...아~ 전 생업은 있고 프밍을 취미인지라..)

나머지 부분은 man 페이지를 한번 보시는게...^^*


'STS' 카테고리의 다른 글

리눅스) umount : device is busy  (0) 2012.02.07
리눅스) 읽기전용 파일 시스템  (0) 2012.02.07

+ Recent posts