사용자 설정 및 데이터를 새 컴퓨터로 마이그레이션하는 방법


52

Ubuntu를 처음 사용하고 최근에 내 PC에서 사용하기 시작했습니다. 그 PC를 새로운 기계로 교체 할 것입니다. 데이터와 설정을 넷탑으로 전송하고 싶습니다. 어떤 측면을 고려해야합니까?

분명히 데이터를 옮기고 싶습니다. 전체 홈 폴더 만 복사하면 어떤 것이 누락됩니까?

이것은 가정용 PC (기업이 아님)이므로 파일을 새 컴퓨터에서 액세스 할 수 있다는 점을 제외하고 사용자 권한 및 기타 보안 문제는 문제가되지 않습니다!

새 시스템은 광학 드라이브가없고 기존 SATA 디스크를 연결할 수없는 넷탑이므로 홈 네트워크를 통해 데이터 전송을 처리해야합니다. 이전 및 새 시스템이 켜져 있고 홈 LAN에 연결되어 있으며 용량이 제한된 USB 썸 드라이브 (2GB)가 있습니다.
이것은 일반적인 적용 가능성을 제한 할 수있는 것처럼 들리지만 실제로 일반적으로 만들 것 입니다.

답변:


43

사용자 설정은 의도적으로 홈 폴더에 저장됩니다. 따라서 /home/your-username새 컴퓨터에 복사 하면 괜찮을 것입니다 ...

...하지만주의 사항이 있습니다.

  • 권한. "프로그램"(쉘 스크립트, 사용자 정의 빌드 프로그램)은 홈 폴더에 저장되는 것이 일반적입니다. 권한을 유지하려면 --preserve=mode스위치 ( cp) 또는 -p()를 사용 tar하십시오.
  • 사용자 ID / 그룹 ID 두 시스템에서 사용자 이름이 동일하더라도 사용자 ID는 필요하지 않습니다. 일반적으로 이는 문제가되지 않지만 UserID에서 스크립트 / 프로그램 / 설정 릴레이를 수행 한 경우 대상 시스템에서 사용자 ID와 그룹 ID가 동일해야합니다.
    를 실행하여 현재 사용자 ID 및 그룹 ID를 찾을 수 있습니다 id. 예를 들어 "your-username"사용자의 사용자 ID를 변경하려면을 실행하십시오 sudo usermod --uid 1234 your-username. groupID를 변경하려면을 실행해야합니다 sudo groupmod --gid 1234 your-username.

설정 (Firefox 프로필, 모양 등 ...)은 종종 숨겨진 폴더 (또는 파일)에 저장됩니다. 숨겨진 폴더 / 파일은 .mozillaFirefox (및 기타 Mozilla 응용 프로그램)와 같이 접두사가 붙습니다 .

보안은 문제가되지 않으며 가능한 빨리 복사 작업을 수행하고자하므로 netcat과 tar 프로그램의 조합을 제안합니다. 두 응용 프로그램은 기본적으로 설치됩니다. 두 컴퓨터의 방화벽에서 대상 포트 8888 (원본 컴퓨터)에 대한 액세스 및 대상 포트 8888 (대상 컴퓨터)에 대한 액세스를 허용해야합니다. nettop을 컴퓨터 옆에두면 명령을 빠르게 실행할 수 있습니다.

소스 컴퓨터에는 전통적인 netcat 프로그램이 설치되어 있어야합니다 (일명 BSD가 아닌 Swiss Army Knife). 이렇게하려면 netcat-traditional패키지를 설치하십시오 . 기존의 netcat 프로그램을 기본값으로 구성 할 수도 있습니다. netcat-traditional을 설치하고 기본값으로 사용하는 명령 :

sudo apt-get install netcat-traditional 
sudo update-alternatives --set nc /bin/nc.traditional

원본 컴퓨터에서 터미널에 다음 명령을 입력하십시오 (아직 Enter 키를 누르지 마십시오).

 tar cz -C/home $(whoami) | nc -l -p 8888 -w 10

설명:

  • tar는 파일을 포장하는 유틸리티입니다
  • cz c 는 압축 파일 ( "tarball")을 보관합니다
  • tarball은 파일 크기를 줄이기 위해 G Z ip 알고리즘을 사용하여 압축됩니다 .
  • -C/home $(whoami)작업 디렉토리를 변경하고 /home사용자 이름 폴더를 넣습니다. 또는 your-usernametarball에 폴더를 입력 할 수 있습니다
  • nc (netcat)은 기계 간의 연결을 쉽게 설정하는 데 사용됩니다
  • -l: 청취 모드, 다른 머신을 현재 머신에 연결할 수 있습니다
  • -p 8888: 포트 8888에서 수신 (임의로 선택된 숫자, 1024보다 큰 다른 숫자도 가능)
  • -w 10: 10 초간 침묵 후 netcat을 종료합니다. 이 시간 내에이 원본 컴퓨터에 연결해야합니다.

이제 대상 컴퓨터 (nettop)로 이동하십시오. 대상 시스템에 파일을 추가하려면 다음을 입력하십시오 (아직 실행하지 마십시오).

nc 192.168.1.2 8888|tar xzp -C/home
  • 192.168.1.2원본 컴퓨터의 IP 주소입니다. IP 주소를 얻으려면 ifconfig소스 시스템 에서 다음 을 실행하십시오.
  • 8888 소스 머신에 입력 된 포트 번호입니다.
  • xzp: 전자 X는 G 책자 Z의 동안 IP 압축 타르 P의 예약 및 권한.
  • -C/home: your-username폴더를 추출합니다/home/your-username
  • 선택적 -v으로 자세한 추출을 위해 tar 명령에 스위치를 추가 하여 진행 상황을 알 수 있습니다. 모든 파일을 인쇄해야하므로 복사 프로세스가 느려질 수 있습니다.

이제 소스 컴퓨터로 이동 한 후 Enter 키를 눌러 서버 명령을 실행하십시오. 넷탑으로 빠르게 전환하고 Enter를 눌러 클라이언트 명령을 실행하십시오.

질문이 있으시면 아래의 주석 필드를 사용하십시오.


1
절대적으로 훌륭한 개요! 명령에 대한 자세한 설명도 감사합니다. 모니터가 하나뿐이므로 두 머신을 서로 옆에 설치하고 VNC를 사용하여 이전 머신에 액세스하고 싶습니다. 나는 인형에 대한 훌륭한 가이드를 빠르게 구글에 올릴 수 있다고 확신하지만 아마도 추천 할 수 있습니까?
Torben Gundtofte-Bruun

Kubuntu (Krdc)와 함께 제공된 응용 프로그램 이외의 다른 VNC를 사용하지 않았습니다. 이 복사 프로세스와 같은 GUI가 필요하지 않은 경우 설치 만하면 openssh-server을 실행하여 컴퓨터에 연결할 수 있습니다 ssh your-username@192.168.1.2. 원격 GUI 액세스의 경우 (무선) 네트워크에서도 VNC가 느리게 느리므로 VNC를 사용하지 않습니다. 원격 GUI 제어용 X2go 를 권장합니다 ( 설치 안내서 ).
Lekensteyn

"이것은 netcat-openbsd 패키지에서 nc입니다. 대체 nc는 netcat-traditional 패키지에서 사용 가능합니다. 사용법 : nc [-46DdhklnrStUuvzC] [-i interval] [-P proxy_username] [-P proxy_username] [-p source_port ] [-s source_ip_address] [-T ToS] [-w 시간 초과] [-X proxy_protocol] [-x proxy_address [: port]] [hostname] [port [s]] ", 터미널 프롬프트가 다시 표시됩니다. 대상 기계는 아무것도 얻지 못합니다. 내가 뭔가 잘못하고 있습니까?
Daniel

@Daniel : 당신이 잘못하고있는 유일한 것은 귀하의 질문을 의견으로 게시하는 것입니다. 새 질문 을 열고이 질문 에 연결하십시오.
Torben Gundtofte-Bruun

안녕하세요 @Lekensteyn, 나는 많은 "열 수 없습니다"와 "mkdir 수 : 그런 파일이나 디렉토리가 없습니다"를 얻습니다 ... VM에서 게스트로 할 때도 마찬가지입니까?
George Katsanos

16

소프트웨어 패키지의 경우 다음을 읽어야합니다. http://www.omgubuntu.co.uk/2010/05/transfer-your-packages-to-a-clean-install/

oldmachine$ sudo dpkg --get-selections > installedsoftware
newmachine$ sudo dpkg --set-selections < installedsoftware
newmachine$ sudo apt-get --show-upgraded dselect-upgrade

설정 및 데이터의 경우 조금 더 복잡합니다 .- (대부분의 설정은 홈 폴더에 저장되므로 HOME을 백업하면 트릭을 수행 할 수 있습니다. 그러나 물론 이것은 시스템을 다루지 않습니다. / etc에 구성이 저장된 앱 ...


newmachine$ sudo apt-get --show-upgraded dselect-upgrade는 오류를 준다E: Command line option --show-upgrade is not understood
frepie

12

응용 프로그램에 대한 모든 설정의 대부분은 기본적으로 홈 폴더에 숨겨져 있습니다. Ctrl+h노틸러스 를 누르면 다음 폴더가 표시됩니다. 가장 쉬운 방법은 구성에 필요한 폴더를 재 동기화하는 것입니다. 이 같은:

rsync -avz me@remote:/home/me/.foo me@remote:/home/me/.var me@remote:/home/me/.ack me@remote:/home/me/.bar /home/me/

전체 홈 폴더를 새 컴퓨터로 재 동기화 할 수도 있지만 설정에 따라 문제가 발생할 수 있습니다.



12

우분투 개발자 가이 작업을 수행하고 있으며 OneConf 라고 합니다 .


아 맞아요. 잊어 버렸습니다. 다음은 링크입니다. omgubuntu.co.uk/2010/06/oneconf-to-reinstall-applications.html
eugenemarshall

오늘 상륙했지만 탐험하는 것은 그리 많지 않습니다.
akshatj

1
여전히 진행중인 작업처럼 보입니다. 이 패키지는 성숙한가요?
lenzai 2016 년

2
마지막에 따르면 2015 업데이트 code.launchpad.net/oneconf 그렇게하지 활성 프로젝트를 더 이상
그렉 브레이에게

8

한 시스템에 원하는 설치가있는 경우 간단히 복제 할 수 있습니다. 시스템이 동일한 아키텍처 (32 비트 또는 64 비트, 즉 i386 또는 amd64 또는 ...)를 실행하는 한 다른 하드웨어를 가지고 있는지는 중요하지 않습니다.

방법은 다음과 같습니다. 조금 길지만 상당히 기술이 낮습니다. 많은 변형이 가능합니다.

  1. 새 머신의 디스크를 기존 머신에 습니다 (또는 그 반대).
  2. 기존 설치에서 부팅 하십시오.
  3. 새 디스크를 설정하십시오 .
    • 디스크의 크기가 동일한 경우 : 파티션 도구 (시스템 / 관리 / GParted, 패키지 gparted)를 시작하고 이전 디스크 전체를 새 디스크에 복사하십시오.
      • 나중에 한 시스템의 디스크를 다른 시스템에 마운트하는 경우 혼동을 피하기 위해 파일 시스템의 사본에 새로운 고유 식별자를 제공해야합니다. EXT2 / EXT3 / ext4를 파일 시스템의 경우, 같은 명령을 사용할 sudo tune2fs -U $(uuidgen) /dev/sdz1경우 sdz새 디스크과 1파티션 번호입니다.
      • 볼륨에 이름을 할당 한 경우 다른 이름을 할당 할 수 있습니다.
    • 그렇지 않으면 GParted 또는 시스템 / 관리 / 디스크 유틸리티를 사용하여 새 디스크에 파티션을 설정하고 포맷하십시오. 두 디스크에 동일한 크기의 파티션이있는 경우 GParted로 복사 할 수 있습니다.
  4. 장소에 표시 될 새 설치의 루트 파티션을 마운트 하십시오.
  5. 전체 디스크를 복사 한 경우이 단계를 건너 뛰십시오. 이전 설치의 루트 파티션 에서 새 파티션 으로 데이터를 복사 하십시오 . 이 단계에서 권한 및 파일 소유권을 유지하는 것이 중요하므로 이는 수퍼 유저 (루트)로 수행해야합니다. 우분투 GUI 방식이 무엇인지 모르겠습니다. 명령 행에서 실행하십시오 ( 새 루트 파티션이 마운트 된 위치로 바꾸십시오 ).sudo cp -ax / /media/disk9/media/disk9
  6. 3 단계에서 해당 파티션 (또는 디스크)을 전체적으로 복사하지 않은 경우 다른 파티션 (예 : 별도의 홈 파티션)에 대해 이전 두 단계를 반복하십시오 .
  7. 새 설치를 조정하십시오 (에 마운트되어 있다고 가정 /media/disk9; adjust as needed).
    • 새 컴퓨터 이름을 설정하려면 편집하십시오 . 아래 파일을 확인 호스트 이름의 다른 발생에 대한 -이 표시 될 수 있습니다 , 등/media/disk9/etc/hostname/media/disk9/etc//media/disk9/etc/hosts/media/disk9/etc/mailname
    • ssh 서버를 실행중인 경우을 제거하십시오 /media/disk9/etc/ssh/ssh_host_*_key*. 새 설치를 부팅하면 서버가 새 키를 생성합니다.
    • 를 편집하여 네트워크를 구성한 경우 새 설치를 위해 /etc/network/interfaces편집 /media/disk9/etc/network/interfaces하십시오.
    • 선택적으로, 파일을 제거 /etc/udev/rules.d/70-persistent-*.rules하여 디스크와 네트워크 인터페이스가 같은 이름 (재사용 할 수 있도록 존재하는 경우 sda, eth0새로운 기계에, ...)를.
    • 당신이 사용하는 경우 독점 비디오 드라이버 이동, 동일한 드라이버를 사용하지 말아야합니다 (ATI 나 엔비디아)과 새로운 기계를 /media/disk9/etc/X11/xorg.conf/media/disk9/etc/X11/xorg.conf.old-machine, 그렇지 않으면 당신은 새로운 기계의 GUI로 부팅 할 수 없습니다.
  8. 이동 다시 정당한 기계에 새 설치에 디스크를.
  9. 디스크 전체를 복제하지 않은 경우 라이브 CD / USB를 팝업하여 부트 로더를 복구하십시오 .
  10. 새 설치에서 부팅하고 필요한 남은 전환 단계를 수행하십시오.
    • 새로운 독점 드라이버 (시스템 / 관리 / 하드웨어 드라이버) 를 설치해야 할 수도 있습니다 .
    • 당신이 가지고있는 경우 고정 IP 주소 네트워크 관리자를 통해 설정을 새 컴퓨터 네트워킹 설정합니다.
    • 당신이 실행하는 경우 SSH 서버를 실행 dpkg-reconfigure openssh-server새 호스트 키를 생성 할 수 있습니다.

안녕하세요 2013 :) 다른 하드웨어가 중요하지 않습니까? 일부 중국 랩탑에서 Mac Air로 옮길지라도?
scythargon 2018 년

@scythargon CPU 유형이 같으면 (두 경우 모두 x86) 큰 차이는 없습니다. 설치할 드라이버와 언급 한 구성 파일 만있을 것입니다. Windows와 달리 Linux는 식별하기 쉬운 몇 가지 파일에 하드웨어 종속성을 집중시킵니다.
Gilles 'SO- 악의를 그만두십시오'

1
내가 쓴이 (유사한) 안내서를 살펴볼 수 있습니다 : positon.org/clone-a-linux-system-install-to-another-computer
Marc M

요약 해 주셔서 감사합니다. /etc/udev/rules.d/70-persistent-net.rulesudev에 의해 자동 생성 된 파일을 제거 할 수 있다면 그것을 좋아할 것 입니다. 새로운 네트워크 장치가 이전에 설치된 것과 동일한 이름을 얻지 못하도록 보장하는 데 사용됩니다.
tvn

@tvn 실제로 해당 파일을 제거 할 필요는 없습니다. 동일한 인터페이스 / 디스크 이름이 재사용되는 것을 막을 수 있지만 반드시 나쁜 것은 아닙니다.
Gilles 'SO- 악마 그만해

6

모든 데이터와 설정이 집에 생중계됩니다.

당신이 그것을 복사하면, 당신은 잃을 것입니다 :

  • 설치된 프로그램. 그러나이 질문에 대한 Sabacon의 답변을보십시오 .
  • 가정용 컴퓨터에서 시스템 전체 구성은 대개 추가 PPA 일뿐입니다.
  • 시스템 전체 프로그램 (일반적으로 데몬) 데이터 (MySQL 데이터베이스와 같은)

네트워크 사본을 만드는 가장 쉬운 방법은 다음과 같습니다.

  • 이전 컴퓨터에 OpenSSH 서버 Gwibber 다운로드 를 설치 하십시오.
  • 두 컴퓨터가 모두 인터넷에 연결되어 있는지 확인하십시오.
  • 새 컴퓨터에서 노틸러스 (파일 브라우저)를 엽니 다.
  • 보기 메뉴에서 "숨김 파일 표시"를 선택하십시오.
  • 주소 표시 줄 유형에서 Ctrl + L을 누릅니다. ssh://ip-of-old-computer/home/
  • 이전 컴퓨터에서 사용자 이름과 비밀번호를 요청해야합니다.
  • GUI를 사용하여 원하는 모든 것을 복사하십시오.

여기에 이미지 설명을 입력하십시오


4

드롭 박스.

이것은 한 시스템에서 다른 시스템으로 설정을 백업하는 방법이며 하드 디스크를 완전히 잃어버린 경우에는 중요하지 않습니다.

Dropbox는 온라인 백업 / 동기화 서비스로 주요 전리품을 무료로 이용할 수 있습니다. 우분투 카믹과 파트너 리포지토리에서 사용할 수 있습니다. 당신은 nautilus-dropbox라는 패키지를 찾고 있습니다. 또는 다음 사이트에서 다운로드 할 수 있습니다. https://www.dropbox.com/downloading?os=lnx

위에서 언급 한 사람들과 마찬가지로 대부분의 관련 설정은 /home/yourname/.whatever

예를 들어 그놈 구성 설정은

/home/username/.gnome2

따라서 동기화를 수행하려면 다음을 수행하십시오.

1 부 : 구성 설정을 Dropbox에 백업합니다. (이것은 모두 "오래된"컴퓨터에 있으며 원하는 설정 / 구성이 있습니다.)

  1. 홈 디렉토리로 이동하여 가능한 한 많은 "도트 파일"및 디렉토리를 찾으십시오. 이들 대부분은 개인 구성 설정과 관련이 있습니다 (숨겨진 파일을 보려면 노틸러스에서 Control + H를 누르십시오).
  2. 이러한 구성 파일 파일을 Dropbox 폴더로 복사하려고합니다. 분실을 두려워하는 경우 백업하십시오.
  3. 홈 디렉토리에서 원본 파일을 제거한 다음 새 홈 (dropbox 폴더 아래)의 파일에서 홈 디렉토리로의 링크를 작성하십시오. "Alt"키를 누른 상태에서 파일 / 폴더를 홈 디렉토리 이름으로 끌어다 놓고 "링크 만들기"를 선택하면됩니다.

2 부 : (새 컴퓨터에서) Dropbox 동기화 구성 설정에서 링크를 만듭니다.

  1. "새"컴퓨터에서. 새로운 우분투 설치, 기존 홈 디렉토리 구성 파일을 삭제 (필요한 경우 백업 )하십시오. 새 컴퓨터에 보관 용 계정을 설치하십시오. 동기화를 허용하면 AKA는 기존 머신 설정을 다운로드합니다.
  2. 새 시스템에서 위의 3 단계를 반복하십시오. Dropbox 동기화 폴더에서 홈 디렉토리로 링크를 복사하십시오.

짜잔 인터넷 기반 설정 백업 및 마이그레이션이 완료되었습니다.


2

Stipple을 살펴보고 흥미롭게 보입니다.

"설치된 응용 프로그램, .config 파일 및 기타 설정 목록을 couchDB에 저장합니다.이 DB를 Ubuntu One을 사용하여 다른 컴퓨터와 동기화하십시오.이 응용 프로그램은 다른 컴퓨터에 해당 패키지 및 .config 파일을 설치하는 데 도움이됩니다."

https://launchpad.net/stipple


서비스가 종료되면서 Ubuntu One은 더 이상 옵션이 아닙니다.
Tomislav Nakic-Alfirevic

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