설치를 복제하는 가장 좋은 방법 (동일한 하드웨어에 복사)


53

Acer Aspire Revo R3610 머신 6 대를 사용한다는 점 에서이 질문 과 비슷 하지만 약간 다릅니다. 하나는 내 요구 사항에 따라 (거의) 구성되어 있습니다. 준비가 끝나면 다른 5 대의 컴퓨터를 완전히 동일하게 만들고 싶습니다. 우분투를 처음 접했을 때 가장 쉬운 방법은 무엇입니까?

그렇지 않으면 문제가 될 수있는 경우 머신이 다른 네트워크에있을 것입니다 (예 : Windows에서는 디스크를 복제 할 수 있지만 동일한 네트워크에서 실행될 경우 나중에 레지스트리를 변경해야합니다). 모든 6 대의 기계에있는 하드웨어는 동일합니다.

동일한 머신에서 하나의 소스 이미지를 효율적으로 복제하려면 어떻게해야합니까?

답변 당 하나의 소프트웨어 / 솔루션을 제한하십시오

답변:


31

Clonezilla는 귀하의 요구에 맞는 것처럼 들립니다.


1
작업에 꼭 맞는 도구입니다. 내 엄마는 '무 분투'를 운영하고 있으며, 클론 질라를 사용하여 주기적으로 그녀의 에이서 레보 스냅 샷을 찍고 백업으로 소유 한 레보에 복원합니다. 치료를합니다.
popey

7
partimage 및 ntfsclone (Clonezilla가 디스크 이미지를 만드는 데 사용하는 도구)과 같은 도구를 사용하면 얻을 수있는 이점 중 하나는 각 파티션의 기본 파일 시스템을 이해하여 사용 된 블록 만 복사 할 수 있다는 것입니다. dd에는이 기능이 없으므로 사용 여부에 관계없이 파티션의 모든 바이트를 복사해야합니다.
Evan

1
짜증나 이틀 작업 후 복제에 실패했습니다. alculating 비트 맵에 달려 ... Windows를 사용하고 Acronis 트루
Olcay Ertaş

DD는 부팅 가능한 백업 CD를 만들지 않습니까? 그 이유는 CloneZilla를 사용합니까?
YumYumYum

@YumYumYum : dd하게 복사 파일 / 파티션 / 드라이브를. 따라서 부팅 가능한 CD ( .iso이미지 또는 CDFS파티션) 를 복제 하면 결과도 부팅 가능합니다. 그러나 dd없는 부팅 가능한 이미지 폴더 / 파일의 주어진 집합을 "변환".
MestreLion

18

dd

dd를 사용하는 저수준 사본은 트릭을 수행합니다!

충돌하는 IP 주소 및 호스트 이름에주의하십시오.

기본적으로 소스 드라이브와 대상 드라이브를 동일한 시스템에 넣고 라이브 CD로 부팅하십시오. 그리고 /dev/sda소스 /dev/sdb가 있고 목적지 인 다음과 같은 것을 실행 하십시오.

dd if=/dev/sda of=/dev/sdb bs=4096

나는 피연산자를 다음과 같이 기억합니다.

if -> 입력 파일

of -> 출력 파일

bs -> 블록 크기 (한 번에 읽을 바이트 수)


3
왜 안돼? = / 사람들이 그렇게하는 것을 보았고 사람들이 그렇게하지 않는 것을 보았습니다. 어딘가에 스타일 가이드가 있습니까?
Derek

동적 IP가 활성화 된 경우 해당 부팅 가능 / 백업 CD / USB를 만들기 전에 임시로 사용하십시오. 상충되는 IP에 대해서는 어떤 문제도 없어야합니다. 내가 가지고있는 많은 드라이버 때문에 나에게 중요한 A에서 Z까지 백업하는 한.
YumYumYum

2
예를 들어 OpenSSH에서 사용하는 공개 / 개인 키가 동일하다는 것을 고려하면 이것이 얼마나 안전합니까? 시스템을 안전하게 유지하기 위해 무엇을 변경해야합니까 (시스템과 다른 위치에 다른 경우)?
jos

"이것과 같은 것을 실행한다는 것은 무슨 의미입니까? 나는 sda와 sdb에 대해 긍정적이지만 왜 당신이 그
BS

3

Remastersys를 사용하여 이미지를 작성 하고 Startup Disk Creator 유틸리티를 사용하여 펜 드라이브로 전송 한 후 다른 시스템에 설치하십시오.


3

가장 쉬운 방법은 하드 드라이브에서 베어 본 우분투 설치를 실행하고 VirtualBox를 설치 한 다음 가상 우분투 컴퓨터를 설정하는 것입니다. 가상 시스템을 실행하고 원하는 종과 휘파람으로 원하는대로 설치를 설정하십시오. 가상 컴퓨터에서 모든 작업 및 재생을 수행하십시오.

VirtualBox는 가상 머신을 다른 작은 구성 파일과 함께 큰 디스크 이미지 파일 (.vdi)로 유지 관리합니다. 가상 머신을 백업 할 때마다 가상 머신을 종료하고 디렉토리를 백업 위치에 복사하십시오. 이 목적으로 Passport 외장 드라이브를 사용합니다.

현재 해당 외부 드라이브에는 Windows 7 및 Ubuntu 12 가상 머신이 모두 있습니다. 모든 시스템 업데이트, 프로그램, 개인 파일, 사진 등이 가상 머신에 저장됩니다. 이 유형의 백업은 하나의 큰 디스크 이미지 파일이 개별 파일보다 훨씬 빠르게 전송되므로 매우 빠릅니다. VirtualBox는 파일을 항상 해당 형식으로 유지하므로 가상 머신은 항상 백업되도록 구성됩니다.

이 설정의 장점 중 하나는 VirtualBox가 설치된 모든 컴퓨터에서 외부 드라이브에서 해당 가상 컴퓨터를 실행할 수 있다는 것입니다. 이제 컴퓨터를 둘러 보지 않고 Windows와 Ubuntu를 모두 사용하여 외부 드라이브를 가져 와서 VirtualBox를 설치합니다. 내가 사용하려는 모든 컴퓨터 (모든 VirtualBox 설치 파일도 외부 HD에도 있습니다-모든 주요 운영 체제에서 사용할 수 있습니다). 가상 컴퓨터를 사용중인 컴퓨터에 복사하거나 외장 드라이브에서 실행할 수 있습니다.

컴퓨터가 고장 나서 어느 시점에 걱정이된다면, 우분투 설치 디스크를 잡고 새 컴퓨터 나 수리 한 컴퓨터에 설치하고 외장 드라이브를 연결하고 VirtualBox를 설치 한 다음 가상 컴퓨터를 컴퓨터에 다시 복사하면됩니다. 최소한의 스트레스, 시간 손실 및 데이터 손실로 문제가 해결되었습니다. 손실되는 데이터 양은 마지막 백업 시간에 따라 다릅니다. 나 자신을 위해, 나는 큰 변화를 만들거나 프로그램을 얻기 어려운 것을 추가 할 때마다 새로운 백업을합니다. 가상 머신이 정상적으로 작동하는지 확인하십시오. 손상된 컴퓨터를 좋은 컴퓨터 위에 복사하고 싶지 않을 것입니다.

그리고 아니요, VirtualBox에서 일하지 않습니다.


그것을 사랑하십시오. 공감. 다음 머신에서이 작업을 수행 할 수도 있습니다.
SDsolar


2

하나의 컴퓨터를 원하는대로 구하고 openssh-server 패키지를 설치합니다. 로 ssh 키 쌍을 생성하십시오 ssh-keygen -t rsa. 공개 키를 /root/.ssh/authorized_keys2에 추가하십시오. 그런 다음 라이브 CD로 새 컴퓨터를 부팅하고 ssh 개인 키로 USB 스틱을 연결합니다. gparted를 사용하여 새 파티션을 만듭니다. 그런 다음 새 파티션을 마운트하고 다음과 같이 실행하십시오.sudo rsync -avzx -e "ssh -i /media/disk/path/to/privatekey" --exclude=".gvfs" root@<ImageComputerIP>:/ /path/to/new/partition/

blkid명령을 사용하여 방금 작성한 파일 시스템의 UUID를 찾으십시오. /path/to/new/partition/etc/fstab새 UUID (및 다른 파일 시스템을 사용한 경우 파일 시스템 유형)를 반영하도록를 편집하십시오 .

그런 다음 chroot에서 설치하는 방법에 대한 https://help.ubuntu.com/community/Grub2/Installing#via_ChRoot 의 지침을 따르십시오 .

해당 페이지의 단순화 된 버전 (lvm, 소프트웨어 raid 또는 bcache 또는 위키 페이지와 같이 별도의 / boot를 설명하지 않음) :

중요한 가상 파일 시스템을 마운트하십시오. 단일 명령으로 다음을 실행하십시오.

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

Chroot를 일반 시스템 장치에 넣으십시오 :

sudo chroot /mnt

GRUB 2를 다시 설치하십시오 (올바른 장치를 sda, sdb 등으로 대체하십시오. 파티션 번호를 지정하지 마십시오).

grub-install /dev/sdX

GRUB 2 메뉴 파일 (grub.cfg)을 다시 작성하십시오.

update-grub

chroot 종료 : 키보드의 CTRL-D

그건 그렇고, 이것은 백업에도 좋습니다. 우분투는 Windows와 달리 다른 하드웨어에 이식하는 데 문제가없는 것 같습니다. 한 컴퓨터의 하드 디스크를 다른 컴퓨터에 넣었고 정상적으로 작동했으며 다른 하드웨어에 설치를 복사했으며 정상적으로 작동했습니다.


이것에 감사드립니다-곧 다른 하나가 나오고 있습니다. 건배
robsoft

참조 된 링크는 현재 chroot 나 다른 방법을 언급하지 않습니다. 그렇기 때문에 출처의 관련 부분을 인용하는 것이 좋습니다.
Henno

@Henno 위키 페이지가 옮겨졌습니다. 페이지를 포함하는 문제는 위키가 bcache와 같은 새로운 것들을 최신 상태로 유지하고 페이지의 내용을 복사하면 업데이트가 누락되지만 링크로 연결하는 단점은 당신을 움직일 수 있다는 것입니다. 어느 쪽이든, 링크가 업데이트되고 제거 된 버전이 포함되었습니다.
Azendale


1

G4L

Linux 용 유령

Linux 용 Ghost는 Symantec의 Norton Ghost (c) 및 (tm)과 유사한 하드 디스크 및 파티션 이미징 및 복제 도구입니다. 생성 된 이미지는 선택적으로 압축되며 로컬 하드 드라이브에 저장하거나 익명 FTP 서버로 전송할 수 있습니다. Click'n'Clone 기능을 사용하여 드라이브를 복제 할 수 있습니다. 로컬 파일 시스템이 2GB보다 큰 파일 쓰기를 지원하지 않는 경우 g4l은 파일 분할을 지원합니다. 포함 된 커널은 ATA, 직렬 ATA 및 SCSI 드라이브를 지원합니다. 공통 네트워크 카드가 지원됩니다. ncurses GUI와 함께 부팅 가능한 CD 이미지로 패키지되어있어 사용하기 쉽습니다.


세상에 이것은 내가 오랫동안 원하는 것이 었습니다. Windows의 경우에도 마찬가지입니다. 게시물의 TNX 바로 확인하겠습니다.
SDsolar

1

Fsarchiver

왜 아무도 이것을 언급하지 않았는지 모르겠습니다. 이는 다른 파일 시스템 유형 (예 : ext4 컨텐츠를 ext2 또는 reiserfs로 복원)에서 파티션의 컨텐츠를 복원하거나 더 작은 파티션으로 복원하려는 경우에 특히 유용합니다.

나는 그것을 사용했고 매우 쉽습니다. 예를 들어, 파티션을 복제 /dev/sda1하려면 다음과 같은 명령을 사용 한다고 가정 하십시오.

fsarchiver -A -j 2 -z 1 savefs /media/anwar/USB_Drive/myrootpartition /dev/sda1

-A옵션을 사용하면 파티션을 사용하더라도 복사 할 수 있습니다! 훌륭한 기능!

-j 2압축을 위해 2 개의 CPU 코어를 사용한다고합니다. 멀티 코어 CPU 및 압축을 사용하는 경우에 유용

-z 1 압축 수준을 설정합니다.

사용한 파일 시스템을 복원하려면

fsarchiver restfs /data/myrootpartition.fsa id=0,dest=/dev/sda2

(가) id=0아카이브에서 첫 번째 파일 시스템을 복원하고 말한다 (단일 아카이브에 여러 파티션을 저장하지 않더라도, 당신은 그것을 지정해야합니다). 그리고 dest=/dev/sda2복원의 목적지를 설정합니다.


0

rsync를 사용 하여이 작업을 많이 수행합니다.

먼저 rsync를 실행하여 모든 데이터를 외부 하드 드라이브에로드 할 수 있습니다 (외부 하드 드라이브는 ext4에 있어야합니다-사용하므로 작동합니다) : / dev / sda1 (루트) / dev / sda2 (스왑).

원래 컴퓨터에서 실행하십시오.

sudo rsync -avuorpESHAX /* /your/hard/drive

데이터를 복사 한 후 USB 스틱으로 다음 컴퓨터를 부팅하고 내장 하드 드라이브를 원래 하드 드라이브로 포맷하십시오.

에 외부 드라이브를 마운트 /mnt하고 모든 파티션의 UUID를 복사하십시오. 새 컴퓨터 파티션의 UUID를 편집하고 원본 데이터에서 복사 한 것과 동일한 UUID를 넣습니다 (에 있음 /mnt/etc/fstab).

스왑을 종료하십시오.

sudo swapoff -a

원본 UUID를 사용하여 새 스왑을 작성하십시오 /mnt/etc/fstab.

sudo mkswap /dev/sda2 -U original-UUID

(스왑이에 있다고 가정합니다 /dev/sda2)

다음으로 UUID를 다음과 같이 변경하십시오 (UUID를 변경하려면 /dev/sda1파티션을 마운트 해제해야합니다).

sudo umount /mnt
sudo tune2fs /dev/sda1 -U old-UUID

이 작업을 수행하고 대상 파티션을 마운트하십시오.

sudo mount /dev/sda1 /mnt

목적지로 역 동기화 :

sudo rsync -avuorpESHAX /media/your-backup /mnt

그럽을 다시 설치하십시오.

sudo grub-install --root-directory /mnt /dev/sda

작동합니다. 네트워크 충돌을 피하기 위해 각 시스템의 호스트 이름 을 편집 /etc/hostname하고 /etc/hosts변경해야합니다.


-1

이 곤경에 처한 적이 없었습니다 (수백 대의 서버가 없습니다-항상 기본 이미지를 사용했습니다).

그 외에도, netboot가 아마도 가장 좋은 방법이라고 말할 것입니다. 마스터 서버를 만들고 원하는 작업을 수행 한 다음 다른 모든 시스템을 부팅하고 설치하십시오. 자동으로 발생하는 스크립팅 (일회 실행)이 너무 어려워서는 안됩니다. 킥 스타트를 통해 모든 2 차 작업을 수행합니다.

조금 더 낡았지만 https://help.ubuntu.com/community/PXEInstallServer

편집 : system-config-kickstart킥 스타트 파일을 아주 쉽게 생성하는 데 도움 이되는 응용 프로그램이 있습니다 . YMMV.

대체 텍스트


내가 아는 한 이것은 system-config-kickstart특별히 만들어졌습니다 fedora.
Shaharia Azam

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.