리눅스에서 전체 드라이브의 이미지 스냅 샷을 어떻게 생성 / 복원합니까?


14

전체 드라이브의 디지털 스냅 샷을 생성하는 Windows 유틸리티가 너무 손상되어 드라이브 충돌시 복원 할 수 있습니다. (예 : Mac OS X 용 Time Machine).

Linux에서도 이와 비슷한 방법이 있습니까?


1
Linux 사용자가 실제로 시스템 유틸리티를 가지고 버리는 것과 같은 방식으로 Windows에서 버릇을 잃었다 고 생각합니다. :)

답변:


13

원하는 도구 (Time Machine과 가장 유사)를 rsnapshot 이라고 합니다. 일반적인 백업 도구와 달리 변경된 항목 만 복사하므로 여러 시점으로 쉽게 이동할 수 있습니다. 보유 할 수있는 디스크 공간을 알려주고 해당 한계 내에서 유지되는 스냅 샷 수를 조정합니다. 아주 좋은 도구입니다.


6

PartImage 는 명령 행에서 또는 텍스트 GUI로 실행됩니다. dd에 비해 한 가지 중요한 이점이 있습니다.

Partimage는 파티션의 사용 된 부분에서만 데이터를 복사합니다. 속도와 효율성을 위해 사용 가능한 블록이 이미지 파일에 기록되지 않습니다. 이것은 빈 블록을 복사하는 'dd'명령과 다릅니다.


6

dd if=/dev/sda of=/path/to/target/backup방을 놓으려는 방이 있다는 것을 알고 있다면 간단하게 " " 를 할 수 있습니다 . " dd if=/dev/sda | bzip2 > /path/to/target/backup"를 수행 하여 즉시 압축 할 수도 있습니다. 그래도 시간이 좀 걸릴 수 있습니다.

또는 tar --preserve-permissions -cjf backup.tar.bz2 /what/to/backup필요한 모든 읽기 권한이있는 사용자로 " "을 (를) 수행 할 수 있습니다. 선택해라.

부록 : 최근에 Vista가 사전 설치된 새 랩톱을 구입했습니다. 어느 시점에서 비스타를 시험 해보고 싶을 때 비스타를 어딘가에 보존하고 싶다고 생각했기 때문에 (Linux livecd로) 컴퓨터를 처음 부팅하면 다음과 같이했습니다.

dd if=/dev/sda | ssh 10.0.0.1 "bzip2 > ~/vistadrive.bz2"

물론 이것은 빠른 로컬 네트워크에있었습니다. 그렇지 않으면 전송 전에 압축하는 것이 더 신중했을 것입니다.

dd if=/dev/sda | bzip2 | ssh 10.0.0.1 "cat > ~/vistadrive.bz2"

이 중 일부가 유용하기를 바랍니다.

편집 : 죄송합니다. 변경 bbdd...


1
그것은 부트 섹터도 포함하지 않습니까? partimage를 사용하여 Windows 드라이브를 백업 할 때 항상 엉망이되었습니다.

그렉, 그것은 파티션 테이블과 MBR을 포함한 모든 것을 포함 할 것
litb - 요하네스 SCHAUB을

4

두 가지 전략을 사용합니다. # 1은 LVM 스냅 샷 이고 2 번은 rsnapshot 이며, 전용 외장 하드 디스크 드라이브에 특정 시점 백업을 수행하는 데 사용됩니다. 외부 하드 디스크 드라이브는 나쁜 일이 발생했을 때 문 밖으로 나가는 것을 쉽게 막을 수 있도록 배치되어 있습니다. 필자는 정기적으로 스냅 샷을 일련의 암호화 된 DVD 디스크에 굽고 저장을 위해 다른 도시에있는 친구의 장소로 배송하는 것 이외의 오프 사이트 메커니즘을 사용하지 않습니다.

변경되지 않은 항목에 대한 하드 링크를 사용하여 스냅 샷을 수행하는 방식 때문에 rsnapshot을 사용하는 것이 좋습니다. 홈 디렉토리가 Bonker로 이동하는 경우 드라이브 실패에서 다시 설치하거나 복구 한 후 rsnapshot 사본을 가져와 tarpipe 또는 새 홈 파티션으로 다시 동기화 할 수 있습니다.


3

몇몇의. 구식 dd (1) 이 있습니다. 거기에 덤프 (8)복원 (8) ; Amanda 와 같은 여러 오픈 소스 제품이 있습니다 . 원하는 경우 ZFS를 설치하고 cron 스크립트를 사용하여 주기적으로 스냅 샷을 찍어 Time Machine과 실질적으로 동일한 것을 얻을 수 있습니다 (팀 포스터의 웹 로그 참조).

Wikipedia에는 많은 옵션 목록있는 기사가 있습니다 .


2

Time Machine과 같은 파일 수준 백업을 원한다면 Norman이 제안한 것처럼 rsnapshot 을 적극 권장 합니다.

norton ghost와 같은 전체 이미지 백업 및 복원 유형 솔루션을 원한다면 CloneZilla 가 잘 작동 한다는 것을 알았 습니다. 라이브 CD를 부팅 한 다음 다른 컴퓨터를 SSH 서버로 사용하여 이미지를 백업 / 복원합니다.

심지어 CD 드라이브와 USB 부팅이 없었던 오래된 태블릿 랩톱의 PXE 부팅을 통해 라이브 버전을 작동시킬 수 있었지만 많은 문제가있었습니다.

윈도우 머신에도 사용할 수 있습니다.


1

드라이브 크기가 다른 경우 항상 dd 를 사용하는 것에 대해 걱정했습니다 . 또는 헤드 / 섹터 / 트랙 등의 수가 다릅니다.

dd 는 동일한 드라이브를 스냅 샷하고 다시 플래시 할 때 매우 유용합니다. 특히 USB 드라이브 또는 Windows 파티션. 그러나 500Meg에서 1500Meg 드라이브로 갈 때 걱정이됩니다.

또한 드라이브가 고장 나면 새로운 OS로 업그레이드하기위한 변명으로 사용할 수 있기를 바랍니다.


말했듯이, 오래된 타르 는 좋은 일을합니다! GNU-tar 에는 diff-tar-against-files , 변경된 파일 만 변경 되고 아카이브 파일 만 날짜보다 최신 옵션 만 포함됩니다.

(내가 언급해야 할 점 : 몇 년 전에 버그가 발생하여 최신 버전의 GNU-tar 을 다운로드하여 설치해야 했습니다. 항상 옵션입니다.)

/ proc , / sys/ var / log / lastlog 또는 / mnt를 제외해야합니다 . (보통 / mnt 아래에 마운트 된 외부 드라이브에 백업합니다. 백업을 백업하는 것은 좋지 않습니다!)

/ dev를 포함하면 가치가 있습니다. gnu-tar 는 장치를 올바르게 처리합니다 ( mknod ). 복원 중에는 백업 된 / dev를 사용하지 않을 것입니다 . (종종 전에 어떤 권한이나 링크를 설정했는지 확인하는 것이 좋습니다.)

또한 백업하기 전에 fdiskrpm 정보 를 덤프 할 수 있습니다 . 예 :

/sbin/sfdisk -l /dev/sda > /....../info_sda
rpm -qa | sort > /...../info_rpms
rpm -qa --qf "%{ARCH} \t %{NAME}-%{VERSION}-%{RELEASE}\n" | sort -k2,2 > /........./info_rpms_arch

"선택적" 사용자 마운트 파일 시스템 마운트 .


1

다른 방법의 전체 단계는 다음과 같습니다. 한 하드 드라이브에서 다른 하드 드라이브로 이동하고 하드웨어가 유사한 경우 머신을 복제하는 데에도 사용됩니다.

먼저, 잘 작동하는 시스템의 이미지를 만드십시오. 루트로 이것을하십시오.

# cd / 
# tar cpzf hostname.tgz / --exclude=hostname.tgz --exclude=proc --exclude=lost+found --exclude=mnt --exclude=sys --exclude=home --exclude=usr/src

커널 이미지 백업

# mount /boot
# cd /boot
# tar cpzf boot.tgz *

라이브 CD / 젠투 CD로 이미지를 배포하려는 시스템을 부팅하십시오. 해당 하드 드라이브를 마운트하고 적절하게 분할하십시오.

# fdisk /dev/hda
/dev/hda1  /boot
/dev/hda2  swap
/dev/hda3  /tmp
/dev/hda4  /

파일 시스템 추가

# mke2fs /dev/hda1
# mkswap /dev/hda2
# mke2fs -j /dev/hda3
# mke2fs -j /dev/hda4

드라이브 마운트 :

# mount /dev/hda4 /mnt/new_root
# mkdir /mnt/new_root/tmp
# mkdir /mnt/new_root/boot
# mkdir /mnt/new_root/proc
# mkdir /mnt/new_root/sys
# mount /dev/hda3 /mnt/new_root/tmp
# mount /dev/hda1 /mnt/new_root/boot
# swapon /dev/hda2
# mount -t proc proc /mnt/new_root/proc

hostname.tgz 파일을이 머신에 복사하십시오.

새 머신의 루트로 추출하십시오 / mnt / new_root

# tar -xzf hostname.tgz

새로운 환경에 뿌리 내리십시오.

# chroot /mnt/new_root /bin/bash
# env-update && source /etc/profile

/boot/grub/grub.conf 및 / etc / fstab를 확인하십시오

하드 드라이브의 그럽 설정 :

# grep -v rootfs /proc/mounts > /etc/mtab
# grub-install /dev/hda

드라이브를 종료하고 마운트 해제하고 시스템을 재부팅하십시오.


0

논리 볼륨 관리자 인 LVM을 사용하여 Linux에서 스냅 샷을 작성할 수 있습니다.


1
LVM을 사용하는 경우 반드시 그런 것은 아닙니다. 그렇다면, 이것이 좋은 옵션이 될 것입니다 howtoforge.com/linux_lvm_snapshots
Gavin H
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.