sysresccd 복구

Cent OS 2013. 7. 22. 21:42
Version: 0.1


 

작성자: 이돈현(환골탈태) [http]http://blog.easysw.net


 


 

1 Partimage란

파티션 별로 백업 및 복구를 가능하게 해 주는 프로그램이다. 프로그램을 설치해서 사용해도 되고, partimage 개발자가 만든 복구용 종합선물 세트인 systemrescuecd의 iso 파일을 다운받아서 복구 CD를 만드는 것도 좋다.일반적으로 두번째 HDD에 백업을 하기도 하지만, 네트워크를 통해서도 가능하므로 partimage 백업서버를 구축해서 백업/복구를 하는 것도 좋겠다.이 하우투 문서에서는 서버 상황을 고려한 예제나 스크립트를 다루고자 한다.


2 Partimage 사용 시나리오

몇가지 예를 들어봤는데 더 다양한 상황이 있을 거라 생각된다.
  • 사용자 과실로 인한 데이타 손실 복구
  • 파티션 장애로 인한 파티션 복구
  • HDD 장애로 인한 시스템 HDD 교체와 복구
  • H/W 및 기타 재해로 인해 다른 H/W에 시스템 복구

3 Partimage 준비

wget http://jaist.dl.sourceforge.net/sourceforge/systemrescuecd/systemrescuecd-x86-1.0.2.iso
wget http://nchc.dl.sourceforge.net/sourceforge/systemrescuecd/systemrescuecd-x86-1.0.2.iso
  • 레코딩
  • 추가 HDD 장착
  • CD 삽입후 서버 재부팅


4 Partimage로 백업

4.1 백업 HDD 파티셔닝 및 포맷

fdisk /dev/sdb
mkfs.ext3 /dev/sdb1

4.2 MBR 백업

MBR을 백업한다.
mkdir /mnt/sdb1
mount -t ext3 /dev/sdb1 /mnt/sdb1
mkdir /mnt/sdb1/080329
cd /mnt/sdb1/080329
dd if=/dev/sda of=/mnt/sdb1/080329/080329-sda.mbr count=1 bs=512

4.3 파티션 정보 백업

파티션 정보를 백업한다.
cd /mnt/sdb1/080329/
sfdisk -d /dev/sda > 080329-sda.sf


4.4 파티션 별 백업

* Partition to save/restore
 sda1 선택
* Image file to create/use
 /mnt/sdb1/080329/080329-sda1.partimg.gz
* Action to be done: 
 (*) Save partition into a new image file

* Compression Level 
 (*) Gzip (.gz; medium speed + small image file)
* Options
 [X] Check partition before saving
 [X] Enter Description 
* Image split mode
 (*) Into files whose size is:...... 2037 MiB
* If finished successfully: 
 (*) Wait

4.5 백업한 이미지 확인

partimage imginfo /mnt/sdb1/080329/080329-sda.partimg.gz.000


5 Partimage로 복구

5.1 MBR 복구

필요하다면 MBR을 복구한다.
mount -t ext3 /dev/sdb1 /mnt/sdb1
dd if=/mnt/sdb1/080329/080329-sda.mbr of=/dev/sda

5.2 파티션 정보 복구

파티션이 깨졌거나 HDD가 교체되었을 경우에는 파티션을 복구/생성한다.
mount -t ext3 /dev/sdb1 /mnt/sdb1
sfdisk /dev/sda < /mnt/sdb1/080329/080329-sda.sf
만약 파티션을 복구했다면 재부팅 하도록 한다.

5.3 파티션 별 복구

* Partition to save/restore
 복구할 sda1 선택
* Image file to create/use
 /mnt/sdb1/080329/080329-sda1.partimg.gz.000
* Action to be done:
 (*) Restore partion from an image file
* Options
 복구 테스트를 원한다면 시물레이션 모드로 한다.
 [  ] Simulation of the restoration (nothing is written)
 [  ] Erase free blocks with zero values
* If finished successfully:
 (*) Wait
 ( ) Halt 
 ( ) Reboot
 ( ) Quit


6 자동화

6.1 백업 스크립트 (pisave.sh)

여러개의 디스크들과 파티션들을 한꺼번에 백업하는 스크립트이다.보통 서버구축이 완료된 후에 한번 해 놓으면 좋다.

BackupDisksBackupParts, SaveDir1만 수정해서 사용하면 된다.
# by try365
## 수정할 부분 ####################################
# MBR과 파티션 덤프할 디스크들 (ex: sda sdb...)
BackupDisks="sda"
# 백업할 파티션들 (ex: sda1 sda2 sda5 sda6 sda7 sda8 sda9 sda10 sda11 sdb1 sdb2 sdb5....)
BackupParts="sda1 sda2 sda5"
# 백업한 이미지가 저장될 디렉토리 (ex: /mnt/sdc1) : 년월일로 디렉토리가 생성되고 그 안에 백업됨
SaveDir1="/mnt/sdb1"

## 수정이 불필요한 부분 #############################
DATE=`date +%y%m%d`
SaveDir2="${SaveDir1}/$DATE"
# -b : batch mode: the GUI won't wait for an user action
# -z1 : compress using gz
# -o : overwrite the existing image file without confirmation
# -d : don't ask any description for the iamge file
PM="partimage -b -z1 -o -d "

#####################################################
if [ ! -d $SaveDir1 ]; then
  echo "$SaveDir1 not found"
  exit
else
  mkdir -p $SaveDir2 
  chmod 700 $SaveDir2
fi

# MBR 백업
for i in $BackupDisks; do
 dd if=/dev/${i} of=$SaveDir2/${DATE}-${i}.mbr count=1 bs=512
done

# 파티션 정보 덤프
for i in $BackupDisks; do
 sfdisk -d /dev/${i} >  $SaveDir2/${DATE}-${i}.sf
done

# 파티션 백업
for i in $BackupParts ; do 
  echo "$PM save /dev/${i} ${SaveDir2}/$DATE-${i}.partimg.gz"
  $PM save /dev/${i} ${SaveDir2}/$DATE-${i}.partimg.gz
done

# 백업된 이미지 정보 보기
for i in $BackupParts ; do 
  echo "partimage imginfo ${SaveDir2}/$DATE-${i}.partimg.gz.000"
done

# vi: set ts=2 sts=2 sw=2

백업 확인
[root@localhost root]# ls -l /mnt/sdb1/080329/
-rw-r--r--  1 root root      512  3월 29 17:54 080329-sda.mbr
-rw-r--r--  1 root root      514  3월 29 17:54 080329-sda.sf
-rw-------  1 root root 36631185  3월 29 17:54 080329-sda1.partimg.gz.000

6.2 복구 스크립트 (pirestore.sh)

장애복구시 여러개의 파티션을 빠른 시간내에 복구하기 위한 스크립트로서 이미지 백업시 날짜를 참조하여 미리 복구 스크립트를 세팅해 두면 장애시 도움이 될 거 같다.

RestoreDisks, RestoreParts, Date, ImageDir을 수정해서 사용하면 된다.

만약 sfdisk를 사용하여 파티션을 복구했다면 재부팅 하도록 한다.
# by try365 
## 수정할 부분 ####################################
# MBR과 파티션을 복구할 디스크들 (ex: sda sdb...)
RestoreDisks="sda"
# 복구할 파티션들 (ex: sda1 sda2 sda5 sda6 sda7 sda8 sda9 sda10 sda11 sdb1..)
RestoreParts="sda1"

# 백업된 날짜 (디렉토리 이름과 파일명의 구분자로 쓰임)
Date="080329"
# 백업된 이미지가 저장되어 있는 디렉토리
ImageDir="/mnt/sdb1/$Date"

# Partimage의 복구 옵션 (-S : simulation of restoration mode)
# 복구를 시뮬레이션 하고자 한다면 -S 옵션을 추가하면 된다.
PM="partimage -b"

# MBR 복구 여부 [0|1]
RestoreMBR="0"

# 파티션 복구 여부 [0|1]
RestoreSFDISK="0"

#####################################################

if [ ! -d $ImageDir ]; then
  echo "$ImageDir not found"
  exit
fi

# MBR 복구 (ex: dd if=/mnt/sdb1/080329/080329-sda.mbr of=/dev/sda)
if [ "x${RestoreMBR}" = "x1" ]; then
  for i in $RestoreDisks; do
    echo "dd if=$I{mageDir}/${Date}-${i}.mbr of=/dev/${i}"
    dd if=${ImageDir}/${Date}-${i}.mbr of=/dev/${i}
    sleep 1
  done
fi

# 파티션 테이블 복구 (ex: sfdisk /dev/sda < /mnt/sdb1/080329/080329-sda.sf)
if [ "x${RestoreSFDISK}" = "x1" ]; then
  for i in $RestoreDisks; do
    echo "sfdisk /dev/${i} < ${ImageDir}/${Date}-${i}.sf"
    sfdisk /dev/${i} < ${ImageDir}/${Date}-${i}.sf
    sleep 1
  done
  echo -n "If you finished an extended partitions recovery, "
  echo "you will have to reboot your computer."
  echo -n "reboot ? (y/n) : "
  read yesorno
  if [ "x$yesorno" = "xy" ]; then
    echo "Do the unmounting and rebooting directly."
    exit
  else
    echo "continue"
  fi
fi

# Partimage로 파티션 복구
for i in $RestoreParts ; do
  if [ -f ${ImageDir}/$Date-${i}.partimg.gz.000 ]; then
    #partimage -b -S restore /dev/sda1 /PATH/080329-sda1.partimg.gz.000
    echo "$PM restore /dev/${i} ${ImageDir}/$Date-${i}.partimg.gz.000"
    $PM restore /dev/${i} ${ImageDir}/$Date-${i}.partimg.gz.000
  else
    echo "error : ${ImageDir}/$Date-${i}.partimg.gz.000 not found"
  fi
done

# vi: set ts=2 sts=2 sw=2

7 기타 기능

7.1 백업한 이미지 정보 확인

partimage imginfo 200080330-sda5.partimg.gz.000

7.2 네트워크 백업

  • partimaged


7.3 보안전송

  • partimage-ssl

'Cent OS' 카테고리의 다른 글

네트워크 아이피 수동설정  (0) 2013.08.07
파티션 포멧 라벨 마운트 설정  (0) 2013.08.06
네트워크 설정 및 파티션 라벨  (0) 2013.07.23
ftp 설정  (1) 2013.07.23
telnet 키기  (0) 2013.07.23
Posted by wakira
,

 

 


자 다시 ASR 을 키고 Path 에는 치트엔진 경로를 적어주고 Whole Words 에 체크를 해준뒤

찾는 단어에는 cheat engine 그리고 바꿀 단어에는 자신이 원하는 엔진 이름을 적는다

(여기서 engine이 감지 단어인지 확인이 되지 않아서 부득이하게 searcher 라고 바꾸게 되었다)




아까는 cheat engine 지금은 cheatengine 즉 띄어쓰기를 하지 않고 검색해 준다

바꿀 단어도 마찬가지..


여기서 매우 중요한 점!

cheatengine.lpr 이란 파일의 이름을 수동으로 바꾼엔진이름.lpr 로 바꿔줘야 한다

바꾸지 않으면 라자루스로 실행 시킬때 오류가 발생하게 된다

위처럼 수정을 끝냈다면




요놈을 실행시켜준다




shift + F9 를 눌러서 컴파일 시킨다



이렇게 결과가 나오면 성공!


혹여 inc(modulelistpos); 이 부분에서 컴파일 오류가 난다면 쿨하게

앞부분에 //라고 적어서 주석처리 해버리면 된다

//inc(modulelistpos); <이렇게

bin 폴더에 가보면 다음과 같이 컴파일된 파일을 볼 수 있다

'Cheat Engine' 카테고리의 다른 글

치트엔진 튜토리얼 9번  (0) 2017.04.21
치트엔진 만들기 (6.2 기반) -3-  (0) 2013.05.26
치트엔진 만들기 (6.2 기반) -2-  (0) 2013.05.26
치트엔진 만들기 (6.2 기반) -1-  (1) 2013.05.26
우회 치트엔진!  (2) 2013.05.26
Posted by wakira
,

 


다음은 설치했던 WDK 를 실행시켜준다



cd 라고 적은 뒤에 한칸을 띄고 자신의 치트엔진 소스 경로를 적는다




그 뒤에 ce 라고 적으면 자신만의 sys 파일을 생성할 수 있다



문제가 발생하지 않았다면 이런 문구가 나와야 한다


bin 이라는 폴더에 가보면 다음과 같이 치트엔진이름.sys의 파일을 볼 수가 있다

'Cheat Engine' 카테고리의 다른 글

치트엔진 튜토리얼 9번  (0) 2017.04.21
치트엔진 만들기 (6.2 기반) -4-  (2) 2013.05.26
치트엔진 만들기 (6.2 기반) -2-  (0) 2013.05.26
치트엔진 만들기 (6.2 기반) -1-  (1) 2013.05.26
우회 치트엔진!  (2) 2013.05.26
Posted by wakira
,