Làm cách nào để di chuyển cài đặt người dùng và dữ liệu sang máy mới?


52

Tôi mới sử dụng Ubuntu và gần đây đã bắt đầu sử dụng nó trên PC của mình. Tôi sẽ thay thế PC đó bằng một máy mới. Tôi muốn chuyển dữ liệu và cài đặt của mình sang nettop. Những khía cạnh nào tôi nên xem xét?

Rõ ràng tôi muốn di chuyển dữ liệu của tôi hơn. Tôi thiếu thứ gì nếu tôi chỉ sao chép toàn bộ thư mục nhà?

Đây là một máy tính gia đình (không phải của công ty) vì vậy quyền người dùng và các vấn đề bảo mật khác không phải là vấn đề đáng lo ngại, ngoại trừ việc các tệp này có thể truy cập được trên máy mới!

Vui lòng lưu ý rằng máy mới là một máy không có ổ đĩa quang và không cho phép tôi cắm đĩa SATA cũ vào đó, vì vậy mọi chuyển dữ liệu phải được xử lý qua mạng gia đình (tôi có thể có cả hai máy cũ và máy mới được bật và kết nối với mạng LAN gia đình) và tôi có một ổ USB với dung lượng hạn chế (2GB).
Điều này nghe có vẻ như có thể hạn chế khả năng áp dụng chung, nhưng thực tế nó sẽ làm cho nó chung chung hơn .

Câu trả lời:


43

Cài đặt người dùng được lưu trữ trong thư mục Home theo thiết kế. Vì vậy, nếu bạn sao chép /home/your-usernamemáy tính của bạn vào máy tính mới, bạn sẽ ổn thôi ...

... nhưng có một số cảnh báo:

  • Quyền. Điều phổ biến là "chương trình" (shellscripts, chương trình xây dựng tùy chỉnh) được đặt trong thư mục chính. Để duy trì quyền, sử dụng công --preserve=modetắc (sử dụng cp) hoặc -p(sử dụng tar)
  • ID người dùng / GroupID. Ngay cả khi tên người dùng bằng nhau trên cả hai hệ thống, ID người dùng không phải. Thông thường, đây không phải là vấn đề, nhưng nếu bạn có tập lệnh / chương trình / cài đặt chuyển tiếp trên UserID, bạn nên đảm bảo rằng ID người dùng và ID nhóm phải giống nhau trên hệ thống đích.
    Bạn có thể tìm thấy userID và groupID hiện tại bằng cách thực thi id. Ví dụ: để thay đổi userID của người dùng "your-username", hãy chạy sudo usermod --uid 1234 your-username. Để thay đổi IDID, bạn phải chạy sudo groupmod --gid 1234 your-username.

Cài đặt (cấu hình Firefox, giao diện, ...) thường được lưu trữ trong các thư mục (hoặc tệp) ẩn. Các thư mục / tệp ẩn được thêm tiền tố bằng dấu chấm, như .mozillađối với Firefox (và các ứng dụng Mozilla khác).

Vì bảo mật không phải là vấn đề và bạn muốn công việc sao chép được thực hiện nhanh nhất có thể, tôi đề nghị kết hợp các chương trình netcat và tar. Cả hai ứng dụng được cài đặt theo mặc định. Đảm bảo rằng tường lửa trên cả hai máy tính cho phép truy cập vào cổng đích 8888 (máy tính nguồn) và đi đến cổng đích 8888 (máy tính đích). Đặt nettop bên cạnh máy tính để bạn có thể chạy các lệnh nhanh chóng.

Trên máy tính nguồn, bạn cần cài đặt chương trình netcat truyền thống (còn gọi là Swiss Army Knife, không phải BSD). Để làm như vậy, cài đặt netcat-traditionalgói. Bạn cũng có thể muốn cấu hình chương trình netcat truyền thống làm mặc định. Các lệnh để cài đặt netcat-truyền thống và sử dụng nó như mặc định:

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

Trên máy tính nguồn, nhập lệnh tiếp theo trong một thiết bị đầu cuối (không nhấn Enter chưa):

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

Giải trình:

  • tar là một tiện ích để đóng gói các tập tin
  • cz c reates một tập tin đóng gói như vậy ("tarball")
  • Tarball được nén bằng thuật toán ip G Z để giảm kích thước tệp.
  • -C/home $(whoami)thay đổi thư mục làm việc /homevà đặt thư mục tên người dùng của bạn. Thay thế, bạn có thể nhập your-usernamethư mục của bạn trong tarball
  • nc (netcat) được sử dụng để thiết lập kết nối giữa các máy dễ dàng
  • -l: Chế độ nghe, cho phép các máy khác kết nối với máy hiện tại
  • -p 8888: Nghe trên cổng 8888 (số được chọn ngẫu nhiên, nó có thể là bất kỳ số nào khác cao hơn 1024)
  • -w 10: thoát netcat sau 10 giây im lặng. Bạn phải kết nối với máy tính nguồn này trong thời gian này.

Bây giờ đi đến máy tính mục tiêu (nettop). Để thêm tệp vào máy đích, hãy nhập (chưa chạy tệp này):

nc 192.168.1.2 8888|tar xzp -C/home
  • 192.168.1.2là địa chỉ IP của máy tính nguồn. Để lấy địa chỉ IP của nó, hãy chạy: ifconfigtrên máy nguồn
  • 8888 là số cổng được nhập trên máy nguồn
  • xzp: e x tạo ra tarball được nén ip G Z trong khi p bảo lưu quyền.
  • -C/home: giải nén your-usernamethư mục vào/home/your-username
  • Tùy chọn, thêm công -vtắc vào lệnh tar để trích xuất dài dòng, để bạn có thể có được ý tưởng về tiến trình. Điều này có thể làm chậm quá trình sao chép vì mọi tệp phải được in.

Bây giờ hãy vào máy tính nguồn, nhấn Enter để chạy lệnh máy chủ. Nhanh chóng chuyển sang nettop của bạn và nhấn Enter để chạy lệnh client.

Nếu bạn có bất kỳ câu hỏi nào, chỉ cần sử dụng trường bình luận bên dưới.


1
Tổng quan hoàn toàn tuyệt vời! Cảm ơn bạn cũng đã giải thích chi tiết về các lệnh. Vì tôi chỉ có một màn hình, tôi muốn thiết lập cả hai máy cạnh nhau và sử dụng một số loại VNC để truy cập vào máy cũ. Tôi chắc chắn rằng tôi có thể nhanh chóng google một hướng dẫn tuyệt vời cho người giả - nhưng có lẽ bạn có thể giới thiệu một hướng dẫn không?
Torben Gundtofte-Bruun

Tôi chưa sử dụng VNC khác ngoài ứng dụng được cung cấp với Kubfox (Krdc). Nếu bạn không cần GUI (như quy trình sao chép này), chỉ cần cài đặt openssh-servervà bạn sẽ có thể kết nối với máy bằng cách chạy ssh your-username@192.168.1.2. Để truy cập GUI từ xa , tôi không sử dụng VNC vì nó rất chậm, thậm chí qua mạng (không dây). Tôi khuyên dùng X2go để điều khiển GUI từ xa ( hướng dẫn cài đặt ).
Lekensteyn

Máy nguồn cho tôi biết: "Đây là nc từ gói netcat-openbsd. Một nc thay thế có sẵn trong gói truyền thống netcat. Cách sử dụng: nc [-46DdhklnrStUuvzC] [-i distance] [-P proxy_username] ] [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protatio] [-x proxy_address [: port]] [tên máy chủ] [port [s]] ", dấu nhắc thiết bị đầu cuối được hiển thị lại và máy mục tiêu không được gì. Tôi có làm điều gì sai?
Daniel

@Daniel: Điều duy nhất bạn đang làm sai là đăng câu hỏi của bạn dưới dạng nhận xét. Mở một câu hỏi mới và liên kết đến câu hỏi này.
Torben Gundtofte-Bruun

Xin chào @Lekensteyn, tôi nhận được nhiều "Không thể mở" và "Không thể mkdir: không có tệp hoặc thư mục như vậy" ... Có áp dụng tương tự khi thử làm điều đó trên máy ảo (với tư cách là khách) không?
George Katsanos

16

Đối với các gói phần mềm, bạn nên đọc phần sau: http : //www.omgubfox.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

Đối với các cài đặt và dữ liệu, nó phức tạp hơn một chút :-( Hầu hết các cài đặt được lưu trữ trong thư mục nhà của bạn, do đó, việc sao lưu HOME của bạn có thể thực hiện thủ thuật ... Nhưng tất nhiên điều này không bao gồm hệ thống các ứng dụng có cấu hình của chúng được lưu trữ trong / etc ...


newmachine$ sudo apt-get --show-upgraded dselect-upgradeđưa ra lỗiE: Command line option --show-upgrade is not understood
frepie

12

Phần lớn tất cả các cài đặt cho các ứng dụng nằm trong thư mục nhà của bạn được ẩn theo mặc định. Nếu bạn nhấn Ctrl+htrong Nautilus, bạn sẽ thấy các thư mục này. Tôi đã tìm thấy cách dễ nhất là chỉ cần đồng bộ hóa các thư mục bạn cần cho các cấu hình. Một cái gì đó như thế này:

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

Bạn cũng có thể - chỉ cần đồng bộ hóa toàn bộ thư mục nhà của bạn với máy mới - nhưng điều đó có thể gây ra sự cố tùy thuộc vào thiết lập của bạn.



12

Các nhà phát triển Ubuntu đang làm việc trên nó, nó được gọi là OneConf .


Ồ đúng rồi - tôi đã quên mất điều đó. Dưới đây là một liên kết: omgubuntu.co.uk/2010/06/oneconf-to-reinstall-applications.html
eugenemarshall

Nó đã hạ cánh ngày hôm nay nhưng không nhiều để khám phá.
akshatj

1
vẫn giống như một công việc đang tiến triển Là gói này trưởng thành?
lenzai

2
cập nhật lần cuối 2015 theo code.launchpad.net/oneconf để không phải là một dự án hoạt động nữa
Greg Bray

8

Nếu bạn có một bản cài đặt bạn thích trên một máy, bạn chỉ cần sao chép nó. Sẽ không có vấn đề gì nếu các máy có phần cứng khác nhau miễn là chúng chạy cùng một kiến ​​trúc (32 bit hoặc 64 bit, tức là i386 hoặc amd64 hoặc ...).

Đây là một cách để làm điều đó. Nó hơi dài, nhưng công nghệ khá thấp. Nhiều biến thể là có thể.

  1. Cắm đĩa của máy mới vào máy hiện có (hoặc ngược lại).
  2. Khởi động từ cài đặt hiện có.
  3. Thiết lập đĩa mới :
    • Nếu các đĩa có cùng kích thước: khởi động công cụ phân vùng (Hệ thống / Quản trị / GParted, gói gparted) và sao chép toàn bộ đĩa cũ vào đĩa mới.
      • Bạn nên cung cấp các bản sao của các định danh duy nhất mới của hệ thống tập tin, để tránh mọi nhầm lẫn nếu bạn từng gắn đĩa của một máy vào máy kia sau. Đối với ext2 / ext3 / ext4 hệ thống tập tin, sử dụng một lệnh như sudo tune2fs -U $(uuidgen) /dev/sdz1nơi sdzlà đĩa mới và 1là số phân vùng.
      • Nếu bạn đã gán tên cho khối lượng của mình, bạn có thể muốn gán các tên khác nhau.
    • Nếu không, hãy thiết lập các phân vùng trên đĩa mới với GParted hoặc System / Management / Disk Utility và định dạng chúng. Nếu bạn có các phân vùng có cùng kích thước trên cả hai đĩa, bạn có thể sao chép chúng trong GParted.
  4. Gắn kết phân vùng gốc của bản cài đặt mới sẽ xuất hiện trong Địa điểm.
  5. (Bỏ qua bước này nếu bạn đã sao chép toàn bộ đĩa.) Sao chép dữ liệu từ phân vùng gốc của cài đặt cũ sang ổ đĩa mới. Lưu ý rằng điều quan trọng là phải duy trì quyền và quyền sở hữu tệp ở bước này và điều này có nghĩa là bạn phải thực hiện điều đó với tư cách là siêu người dùng (root). Tôi không biết cách thức GUI của Ubuntu là gì. Trên dòng lệnh, chạy sudo cp -ax / /media/disk9(thay thế /media/disk9bằng vị trí nơi phân vùng gốc mới được gắn kết).
  6. Lặp lại hai bước trước cho bất kỳ phân vùng nào khác mà bạn có thể có (ví dụ: phân vùng nhà riêng), trừ khi bạn sao chép toàn bộ phân vùng đó (hoặc đĩa) trong toàn bộ bước 3.
  7. Tinh chỉnh cài đặt mới (giả sử nó được gắn vào /media/disk9; adjust as needed):
    • Chỉnh sửa để đặt tên của máy mới. Kiểm tra các tập tin dưới cho lần xuất hiện khác của tên máy chủ - nó có thể xuất hiện trong , vv/media/disk9/etc/hostname/media/disk9/etc//media/disk9/etc/hosts/media/disk9/etc/mailname
    • Nếu bạn đang chạy một máy chủ ssh , hãy xóa /media/disk9/etc/ssh/ssh_host_*_key*. Máy chủ sẽ tạo khóa mới khi bạn khởi động cài đặt mới.
    • Nếu bạn đã cấu hình mạng bằng cách chỉnh sửa /etc/network/interfaces, hãy chỉnh sửa /media/disk9/etc/network/interfacesđể cài đặt mới.
    • Tùy chọn, loại bỏ các tập tin /etc/udev/rules.d/70-persistent-*.rulesnếu có, do đó đĩa của bạn và giao diện mạng tái sử dụng cùng tên ( sda, eth0, ...) trên máy tính mới.
    • Nếu bạn đang sử dụng trình điều khiển video độc quyền (ATI hoặc Nvidia) và máy mới không nên sử dụng cùng trình điều khiển đó, hãy chuyển /media/disk9/etc/X11/xorg.confsang /media/disk9/etc/X11/xorg.conf.old-machine, nếu không bạn không thể khởi động GUI trong máy mới.
  8. Di chuyển đĩa với cài đặt mới trở lại máy chính xác của nó.
  9. Nếu bạn không sao chép toàn bộ đĩa, hãy bật CD / USB trực tiếp và sửa chữa bộ tải khởi động .
  10. Khởi động từ cài đặt mới và thực hiện bất kỳ bước chuyển tiếp còn lại cần thiết nào:
    • Bạn có thể cần cài đặt trình điều khiển độc quyền mới ( Trình điều khiển hệ thống / Quản trị / Phần cứng).
    • Nếu bạn có địa chỉ IP tĩnh được thiết lập thông qua Trình quản lý mạng, hãy thiết lập kết nối mạng cho máy mới.
    • Nếu bạn chạy một máy chủ ssh , hãy chạy dpkg-reconfigure openssh-serverđể tạo khóa máy chủ mới.

Xin chào từ năm 2013 :) Bạn có chắc rằng phần cứng khác nhau không quan trọng? Ngay cả khi tôi chuyển từ một số máy tính xách tay Trung Quốc sang Mac Air?
scythargon

@scythargon Miễn là cùng loại CPU (x86 trong cả hai trường hợp), không có sự khác biệt lớn, có lẽ chỉ một số trình điều khiển để cài đặt và các tệp cấu hình tôi đề cập. Không giống như Windows, Linux tập trung các phụ thuộc phần cứng vào một vài tệp dễ xác định.
Gilles 'SO- ngừng trở nên xấu xa'

1
Bạn có thể xem hướng dẫn (tương tự) này tôi đã viết: positon.org/clone-a-linux-system-install-to-another-computer
Marc M

Cảm ơn đã tóm tắt. Tôi rất thích nếu bạn có thể thêm loại bỏ /etc/udev/rules.d/70-persistent-net.rulestệp nào được tạo tự động bởi udev, nó được sử dụng để đảm bảo rằng các thiết bị mạng mới không có cùng tên như đã cài đặt trước đó.
tvn

@tvn Bạn thực sự không cần phải xóa tệp đó. Nó sẽ ngăn không cho các tên giao diện / đĩa tương tự được sử dụng lại, nhưng đó không hẳn là một điều xấu.
Gilles 'SO- ngừng trở nên xấu xa'

6

Tất cả dữ liệu của bạn và thiết lập trực tiếp trên nhà của bạn.

Nếu bạn chỉ sao chép nó, bạn sẽ mất:

  • Cài đặt chương trình. Nhưng hãy xem Sabacon trả lời cho câu hỏi này .
  • Cấu hình toàn hệ thống, trong một máy tính gia đình, đây thường chỉ là các PPA bổ sung.
  • Các chương trình toàn hệ thống (thường là trình nền) dữ liệu (như cơ sở dữ liệu MySQL).

Tôi cảm thấy rằng cách dễ nhất để tạo một bản sao mạng là đây:

  • Cài đặt OpenSSH Server Tải xuống Gwibber trong máy tính cũ.
  • Hãy chắc chắn rằng cả hai máy tính được nối vào mạng.
  • Mở Nautilus (trình duyệt tệp) trong máy tính mới.
  • Trong Menu Xem, chọn "Hiển thị tệp ẩn".
  • Nhấn CTRL + L, trong loại thanh địa chỉ ssh://ip-of-old-computer/home/
  • Bạn nên được hỏi tên người dùng và mật khẩu trên máy tính cũ.
  • Sao chép mọi thứ bạn muốn bằng GUI.

nhập mô tả hình ảnh ở đây


4

Dropbox.

Đây là cách tôi sao lưu cài đặt của mình từ máy này sang máy khác và nếu tôi mất hoàn toàn ổ cứng thì không vấn đề gì.

Dropbox là một dịch vụ sao lưu / đồng bộ hóa trực tuyến và nó khởi động chiến lợi phẩm lớn và bạn có thể nhận nó miễn phí. Nó có sẵn trong ubfox Karmic và lên dưới kho của Đối tác. Bạn đang tìm kiếm một gói được gọi là nautilus-dropbox. Hoặc, bạn chỉ có thể tải xuống từ trang web: https://www.dropbox.com/doading?os=lnx

Như những người đã đề cập ở trên, hầu hết các cài đặt có liên quan của bạn được lưu trong /home/yourname/.whatever

Ví dụ: cài đặt cấu hình gnome được lưu trong

/home/username/.gnome2

Vì vậy, để thực hiện đồng bộ hóa:

Phần một: Sao lưu cài đặt cấu hình vào Dropbox. (Đây là tất cả trên máy "cũ", nơi bạn có cài đặt / cấu hình theo cách bạn muốn.)

  1. Chuyển đến thư mục chính của bạn và tìm thấy càng nhiều "dotfiles" và thư mục càng tốt. Hầu như tất cả những thứ này sẽ liên quan đến cài đặt cấu hình cá nhân. (Nhấn Control + H trong Nautilus để xem các tập tin ẩn.)
  2. Bạn sẽ muốn sao chép các tệp tệp cấu hình đó vào thư mục Dropbox của bạn. KIẾM MỘT NỀN TẢNG NẾU BẠN SAU KHI LOSING.
  3. Xóa các tệp gốc khỏi thư mục chính của bạn, sau đó tạo một liên kết từ tệp trong nhà mới của nó (trong thư mục dropbox của bạn) đến thư mục chính. Bạn có thể làm điều này bằng cách kéo và thả tệp / thư mục vào tên thư mục chính của bạn trong khi giữ phím "Alt" và chọn "tạo liên kết".

Phần hai: (Trên máy mới.) Tạo liên kết từ cài đặt cấu hình được đồng bộ hóa Dropbox.

  1. Trên máy "mới" của bạn, tức là. cài đặt Ubuntu mới, xóa ( VÀ TRỞ LẠI NẾU CẦN THIẾT ) các tệp cấu hình thư mục nhà cũ của bạn. Cài đặt dropbox trên máy mới. Cho phép nó đồng bộ hóa, AKA tải xuống cài đặt máy cũ của bạn.
  2. Lặp lại bước 3 ở trên trên máy mới - sao chép liên kết từ các thư mục được đồng bộ hóa Dropbox vào thư mục chính.

Voila. Bây giờ bạn có sao lưu và di chuyển cài đặt dựa trên internet.


2

Hãy nhìn vào Stíp, có vẻ thú vị với tôi:

"Lưu danh sách các ứng dụng đã cài đặt, tệp .config và các cài đặt khác vào couchDB. Đồng bộ hóa DB này với các máy tính khác với Ubuntu One. Ứng dụng này cũng giúp bạn cài đặt các gói và tệp .config trên các máy tính khác của mình."

https://launchpad.net/stíp


Ubuntu One sẽ không còn là một lựa chọn vì dịch vụ đã ngừng hoạt động.
Tomislav Nakic-Alfirevic

0

Mackup có thể sao lưu nhiều ứng dụng lên đám mây hoặc kiểm soát phiên bản. Thật dễ dàng để mở rộng, ví dụ, đây là cách plugin ssh trông như thế nào

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.