본문 바로가기
Linux/Pogoplug

포고플러그 시리즈4에 아치리눅스 사용하기 (7) - 부팅 USB 메모리 백업해두기

by 달토끼남편 2022. 10. 4.

그동안 이것저것 설치를 하면서 시스템이 꼬여서 처음부터 다시 재설치를 해야할 경우가 더러 생기는 바람에 아예 백업용으로 USB 메모리를 하나 더 구입했는데, Mac을 사용하는지라 매번 Windows에서 USB 메모리에 백업 이미지를 뜰 수도 없고 해서 고민하다가 tar 명령으로 백업을 할 수 있다기에 이것저것 알아보다가 결국 포고리눅스 카페의 도움을 받아 dd 명령으로 백업을 하기로 했다.

 

원본 : http://cafe.naver.com/pogolinux/52 

 

먼저 fdisk 로 내 USB 메모리가 어디에 마운트 되어 있는지 확인.

 

fdisk -l

그럼 아래처럼 /dev/sda 에 8GB USB 메모리가 장착되어 있다.

 

 

 

 

 

mkdir /media/pogo/ethan/backup (backup 디렉토리를 하나 만들어주었다.)

dd if=/dev/sda of=/media/pogo/ethan/backup/[백업할 파일명].img

위에 /media/ 로 시작하는 부분은 내 외장하드 경로이다.

각자 사용환경이 다르니 경로 확인 후 실행.

 

 

처음에는 dd 명령 실행 후 한동안 응답이 없길래 잘못 된 줄 알았는데, 8GB 이미지로 만드는데도 10여분 이상 걸린 것 같다.

메모리에 차지하고 있는 공간만 백업하는게 아니라 용량 전체를 이미지로 뜬다고 한다.

 

 

이렇게 만들어둔 이미지는 복원하려면 위의 명령어를 거꾸로 하면 된다.

 

dd if=/media/pogo/ethan/backup/[백업할 파일명].img of=/dev/sda 

주의할 점은 LG 8GB 메모리를 USB image tool(usit)로 백업해 둔 뒤에 나중에 샌디스크 8GB에 복원하려니 용량이 안맞는다는 에러 때문에 실패한 경험이 있다.

똑같은 8GB이고 포맷도 다시 해줬지만 복원을 할 수 없었다.

dd 명령어로 용량은 같지만 기종이 다른 USB 메모리에도 복원이 될지는 모르겠다.

 

동일한 USB 메모리를 사용하거나 동일 기종의 새 USB 메모리를 사용하는게 안전할지도...

 

 

 --------------------------

 

 

[2013.08.12 업데이트]

 

복구하기

 

## 절대 부팅 USB가 작동하고 있는 상태에서 부팅 USB에 바로 복구하지 말자. ##

(아무 생각없이 했다가 망했다...)

 

아마도 가장 안전한 방법은 다른 USB 메모리에 복구한 후 그걸로 부팅하는 것이다.

시리즈 4에는 후면에도 USB 포트가 있으므로 그 중 하나에 꽂고 어디에 마운트되었는지 확인 후 그 USB 메모리로 복구하면 된다.

반드시 df -h 명령으로 복구할 USB가 어디있는지 꼭 확인해야 한다.

 

df -h

 

/dev/sdb1       7.4G  4.1M  7.0G   1% /media/hd-sdb1

 

후면에 있는 USB 포트 중 맨 하단에 꽂았더니 /dev/sdb1으로 나온다.

그 때 그 때 마운트위치가 바뀌므로 꼭 확인.

 

dd if=/media/pogo/ethan/backup/[백업할 파일명].img of=/dev/sdb1

dd 명령을 내리면 8GB를 하드디스크에 백업하는데도 약 15분 정도가 걸리니 반대로 느린 USB에 복구하는데는 더 많은 시간이 걸린다.

(대략 1시간 20분 정도 걸렸다...

 게다가 Input/Output 에러까지 나버렸다.)

 

결국 가장 안전하고 확실하고 빠른 방법은 이전에 아치리눅스 설치에 사용했던 USB Image Tool이다. (포고리눅스 카페 유산균님 제보)

리눅스에서 만든 이미지도 이 프로그램에서 불러와 복원이 가능하므로 리눅스에서 직접 다른 USB 메모리에 복원하기 보다 Windows에서 백업파일만 가져와서 USB Image Tool에서 복원하자.

 

 

 [2013-9-14 업데이트]

 

http://cafe.naver.com/pogolinux/1997

 

여기에 보면 nova님의 좀더 고급스러운 백업방법이 있다.

그러나, 아직 쉘스크립트를 잘 모르겠다.

그래서, 위의 dd 명령어를 매번 외워서 입력하는 것도 어려운 것 같아서 단순무식한 방법으로 간단한 쉘 스크립트를 하나 만들었다.

(backup.sh 에 있는 date 앞과 .img 앞에 있는 홑따옴표의 방향이 반대인 것임에 유의하자.)

 

원래 사용하던 스크립트를 아래와 같이 조금 개선했다.

시작시간과 종료시간 그리고 전체 걸린 시간을 표시할 수 있도록 했다. (시간계산 스크립트 출처 : http://inforgather.tistory.com/237)

 

pacman -S bc (bc 명령어를 먼저 설치한다.)

nano backup.sh

----------------- 

 

#! /bin/bash

echo "============================================"

echo "backing up is now processing...wait a while "

echo "============================================"

start_time=`date +%s`

start_time_string=`date`

echo "Start time : $start_time_string"

echo "--------------------------------------------"

 

BACKUPNAME=bootimg_`date '+%Y%m%d'`.img

dd if=/dev/sda of=/media/pogo/ethan/backup/$BACKUPNAME

 

end_time=`date +%s`

end_time_string=`date`

elapsed_time=`echo "$end_time - $start_time" | bc`

htime=`echo "$elapsed_time/3600" | bc`

mtime=`echo "($elapsed_time/60) - ($htime*60)" | bc`

stime=`echo "$elapsed_time - (($elapsed_time/60)*60)" | bc`

echo "--------------------------------------------"x

echo "End time   : $end_time_string"

echo "==> Total time : ${htime} H ${mtime} M ${stime} S"

echo "============================================="

 

 

 ------------------

chmod +x backup.sh (실행권한을 준다.)

./backup.sh (실행)

 

8GB의 USB메모리를 백업하는데도 상당한 시간이 걸린다. (약 15분 정도)

그러니 터미널 띄워놓고 쉘스크립트 실행한 후에 인내심을 가지고 기다리자.