'linux rescue'에 해당되는 글 1건

  1. 2010.02.02 linux kernel panic에러시 복구
OS/LINUX2010. 2. 2. 16:37
반응형
테스트 서버중 하나인 Linux9 장비가 FTP가 먹통이 되어 시스템을 아예 reboot 함.

재 부팅중 아래와 같은 오류 발생

Error Messages ::

                 VFS: Mount root (ext2 filesystem)

                 Red Hat nash version 3.4.42 starting

                 Mounting /proc filesystem

                 Creating bloack devices

                 failed to read /proc/partitions: 0

                 Creating root device

                 mkrootdev: label /not found

                 Mounting root filesystem

                 Mount: error 2 Mounting ext3

                 pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2

                 umount /initrd/proc failed: 2

                 Freeing unused kernel memory: 132k freed

                 kernel panic : No init found. Try passing init= option to kernel.


Problem Cause ::

                 root에 존재하는 initrd라는 디렉토리가 지워졌을때 발생됨

                 (init 프로세서가 존재하지 않거나 잘못된 경우)

                 Kernel이 손상된 경우도 포함된다.

 

Solution ::

      만약, Single모드로 부팅이 가능하다면

      ex) fsck.ext3 -y /dev/hda1 로 ext3를 체크해주면 해결이 가능하다.
          (오류가 난 디스크 파티션이 hda1 일 경우)

      만약, Single모드가 부팅이 불가능하다면

      1) Linux 설치 CD를 넣고

      2) linux rescue 로 입력하여 부팅을 한다음

      3) # 에 커서가 뜨면 chroot /mnt/sysimage 해서 root 모드로 들어가서

      4) root에서 mkdir /initrd 를 해준다.

       * initrd라는 디레토리는 RAM mount , pivot_root system call의
         명령을 수행하는 디렉토리로 수행후에 안에 파일은 지워짐
         그렇기 때문에 파일이 존재하지 않는다고 지우면 부팅이 불가해진다.

      5) init 6 또는 reboot라는 명령어로 재부팅을 해주면 복구 완료.

위 상태로도 안되면

      또,  리눅스CD linux rescue nomount 로 복구하기

      현재 상태에서는 장치파일명이 생성되어있지 않으며 마운트도 되어있지 않기 때문에 현재 시스템의 어떠한 수정작업도 할
      수 없는 상황이다.  먼저 필요할 것 같은 장치명들을 임의대로 생성한다.

# mknod /dev/sda -> /dev/sda  장치명 생성 (sda 는 SCSI 하드인 경우, hda 는 일반 하드디스크를 의미)
# mknod /dev/sda1 -> /dev/sda1 장치명 생성
# mknod /dev/sda2 -> /dev/sda2 장치명 생성
생성한 장치와 마운트할 마운트포인트(디렉토리)를 생성한다.
# mkdir /temp
# mkdir /temp1
# mkdir /temp2
위에서 생성한 각 장치명과 각 디렉토리들을 마운트한다.
# mount /dev/sda1 /temp1
# mount /dev/sda2 /temp2

 #fdisk -l    //          이 명령을 통해 올라와있는 파일시스템을 모두 체크한다.

#e2fsck -j ext3 /dev/sda1        //    ext3 시스템을 점검할때에는 -j 플래그를 사용한다.

※ e2fsck를 사용할때 주의점 :: 파일시스템이 마운트되어 있는 상태에서 사용하면 심각한 오류를 가져올 수 있다.

 

위의 상황이라면 간단하지만..  아예 부팅이 되지않는 상황이라면..리눅스 CD linux rescue 모드를 이용해야 한다.

boot : linux rescue

 

Rescue 설정상황

 - Continue         현재 시스템의 마운트정보를 찾아서 /mnt/sysimage 디렉토리로 마운트한다.

 - Read-Only       파일시스템을 마운트 할때 읽기전용모드로 마운트 한다.

 - Skip                바로 리눅스 쉘을 획득한다.

 

위의 3가지를 통해 복구모드로 들어 가려 할때 에러가 발생하면  다음으로 조치를 취할 수 있는 방법은 linux rescue nomount 모드가 있다.

boot : linux rescue nomount



/mnt/sysimage 를 /로 만들어서 사용
chroot /mnt/sysimage

cd-rom으로 복구
linux rescue

linux rescue nomount

직접 파일시스템을 마운트한다.

mknod /dev/sda
mknod /dev/sda2

mkdir /temp
mkdir /temp2

mount /dev/sda2 /temp2
chroot /temp2

시스템 업그레이드 방법으로 복구하기

linux text 모드에서 이미설치되어 있는 파티션을 선택해서 진행(reinstall아님)
반응형
Posted by [PineTree]