가치 있는 정보 준비 중
3초만 투자해 보세요!
Preparing valuable information
Just invest three seconds!
본문 바로가기
IT/OS

UNIX FSCK 장애블록 복구 부팅과정

by 콰나 | Quanna 2024. 1. 16.

<FSCK (File System Check)>

- 파일 시스템에서 시스템 비정상 종료나 정전, 하드웨어 장애 등으로 인해 발생하는 파일시스템에 손상을 데이터 점검을 통해 불일치를 해결하여 복구하는 기능을 가진 명령어

 

<fsck 사용시 주의사항>

- 마운트가 상태에서 하는 것은 좋지 않다.

 

<fsck 기능>

데이터 불일치 검사 모든 데이터들의 불일치 유형을 검사한다.
슈퍼 블록 일관성 슈퍼 블록에 있는 정보를 다시 확인
실린더 그룹 블록 일관성 i-node , 디렉토리 수, 데이터블록
i-node 일관성 링크 수, 수정시간, 링크 수가 0 파일을 복구
데이터 블록 일관성 파일의 내용 다시 확인
lost+found 디렉토리 fsck명령어를 통해 복구되는 파일들을 해당 디렉토리에 복구
비대화형 모드 사용자에게 묻지 않고 알아서 다 해결, 심각한 에러 발생시 fsck 종료
대화형 모드 문제가 발생하면 사용자에게 계속 진행할지 않을지 yes/no 묻는다.

 

 

<참조되어지지 않은 파일 복구>

- unlink [디렉토리명] : 해당디렉토리 링크제거

- fsck [장치명] : 장치에 있는 파일복구 (lost+found안에 i-node값으로 존재)

 

 

<디렉토리 복구>

 

1)/dev/dsk/c1t1d0s0의 파일시스템 선택

2)unlink aaa 디렉토리의 링크를 없앤다.

3) fsck 디스크의 파일복구

4) 복구파일의 I-node번호로 디렉토리 복구

 

 

 

 

<슈퍼블록 장애복구>

- dd if=/dev/zero of=/dev/rdsk/c1t1d0s0 bs=512 count=32 : 장애발생

- fsck F ufs o b=32 /dev/rdsk/c1t1d0s0 : 복구

 

<솔라리스의 부팅 과정>

X86 SPARC
BIOS Boot PROM
GRUB ufs boot
kernel 초기화
init(리눅스는 여기까지)
SMF(솔라리스 10버전부터 생김)

 

1) Boot PROM / BIOS

Boot PROM 시스템의 하드웨어를 점검, POST (Power of Self Test)
BIOS POST 과정 수행, 부트 장치의 번째 섹터 MBR 읽어온다.

 

2)부트 로더 (ex. GRUB, ufs boot)

*GRUB

- GNU프로젝트에서 만든 부트 로더(부트 프로그램)이다.

- 다양한 운영체제를 불러올 있다.

Stage 1 : 파일시스템의 종류를 확인, 확인   1.5 또는 2 넘어감
Stage 1.5 : 특정 파일시스템을 해석하고 2 넘어감
Stage 2 : 커널을 어떻게 불러올 것인지와 관련된 파일을 읽어서 사용자에게 출력

 

3)kernel 초기화

- /etc/system이라는 구성 파일을 읽어온다.

(/etc/system : 커널이 로드해야 하는 모듈에 대한 내용이 들어있다.)

- 커널은 자체적으로 초기화 모듈을 시작 (/etc/init 데몬을 시작)

4)init단계 (/etc/inittab)

- init 데몬은 각각의 서비스를 시작, 또는 중지하도록 하는 svc.startd 데몬을 구동

*svc.startd 데몬 SMF : 각각의 서비스를 시작 또는 중지

 

<Run Level>

- 시스템의 상태를 숫자 또는 문자로 나타낸 것으로 서비스와 사용자가 사용할 있는 자원들에 대해서 정의한 것

- who r : 런레벨 확인

1 : 현재 레벨
2 : 마지막으로 레벨이 변경된 날짜
3 : 현재 레벨
4 : 마지막 재부팅 현재 레벨까지 변경된
5 : 이전 레벨

 

< 레벨 종류>

런 레벨 기능
0 시스템이 PROM 모니터를 실행하고 있는 상태, ok프롬프트
s 싱글 사용자 모드, 중요 파일시스템이 마운트 되어진 상태
1 싱글 사용자 모드, 모든 파일시스템이 마운트 되어진 상태
2 시스템이 다중 사용자 동작으로 지원하고, 일부 네트워크 자원을 사용할 없음
3 가장 기본, 시스템이 다중사용자 동작으로 지원하고, 네트워크 자원을 사용가능
4 현재는 사용하지 않는 런 레벨
5 종료
6 OS 종료하고 기본 레벨 재부팅

5)SMF

- 레벨에 맞는 서비스를 시작, 또는 중지

/etc/rc[숫자].d
 
숫자에 해당하는 런 레벨에서 시작 또는 중지되어야 하는 서비스들의 스크립트 파일이 모여 있는 디렉토리
(시작 – S로 시작하는 파일, 중지 – k로 시작하는 파일)
/sbin/rc[숫자] svc.startd 데몬에 의해서 실행되는 스크립트를 실행하는 파일

 

 

< 레벨 변경 (재부팅 or 종료)>

1) init (종료 스크립트 실행)

- 레벨번호 부여하여 모드전환 (종료)

 

2) shutdown (종료 스크립트 실행)

- 로그인 중인 사용자에게 시스템 종료를 알리고 종료합니다.

- 기본적으로 60 후에 종료

shutdown 단일 사용자모드 전환
i 런 레벨 지정
y 묻는 응답에 y 대답
g 시간 지정

 

3) halt / poweroff / reboot (종료 스크립트 실행없이 강제)

 

 

 

<명령어>

-종료-

init 5
shutdown i5 y g0
halt
poweroff

 

-재부팅-

init 6
shutdown i6 y g0
reboot