如何将Ubuntu安装从一台笔记本电脑复制到另一台笔记本电脑


60

我要更换机器:从一台装有Ubuntu的笔记本电脑到另一台要安装Ubuntu的笔记本电脑...

我对当前的系统感到非常满意,我担心必须从0重新构建所有内容。

那么人们经常做什么来克隆Ubuntu系统呢?其中可能包括数据,程序包,快捷方式设置等。


4
您不能简单地从旧笔记本电脑中提取HDD并将其安装在新笔记本电脑上吗?我更改了MB,MicroProcessor,RAM和HDD,只是保留了启动HDD,并期望在启动后出现一个重大问题,但这没有发生。这可能不是真的很花哨,但它就像一种魅力。
Geppettvs D'Constanzo

或者只是使用remastersys,UCK,Customizer创建系统的克隆...
Uri Herrera

8
我做了几次:将旧的笔记本电脑驱动器插入带有USB到SATA转换器的新笔记本电脑,从Ubuntu Live CD启动新笔记本电脑,用gparted擦拭新驱动器,将整个磁盘从旧磁盘复制到新磁盘,调整分区大小,启动,使用一些饼干,重新配置X11。Windows可能永远不会那么容易!
2011年

1
重新配置X11的那一部分是什么?另外,复制是否是常规的简单复制粘贴?
Whirl Mind '18年

Answers:


39

有几种方法可以复制您的配置和设置。这取决于您所做的更改。如果您要升级到新版本。在版本之间进行升级时,某些方法很有用,但要小心,因为它们会阻止某些软件形式正常运行。

方法1:全新安装

最健壮和稳定的方法是全新安装,然后复制配置并重新安装所有软件包。从旧版本到新版本都可以使用。有多种方法可以使此过程很快发生,并使大多数过程自动化。最慢的部分是必须下载安装介质中未包含的所有软件包。我有8个DVD磁盘映像,这些映像使我可以比下载更快地安装。

我建议使用此选项,因为设置和安装grub会使系统无法使用。您需要扎实地使用grub才能使用方法2。

在进行新安装(新笔记本电脑)之前,您需要从旧安装(旧笔记本电脑)中复制一些信息。

您的设置或配置

保存自定义的所有文件都存储在两个位置。最重要的导入是/ home / [用户名]目录。可能有数百个。[package-config-dir]文件和目录。我将列出最重要的内容,但是如果您愿意,您可以添加更多并添加更多内容。此过程可能会导致软件包无法正常工作的问题。因此,执行此操作时请务必小心。在粘贴新目录之前,请对新安装进行备份。

这些目录和文件不是很大,可能只需要几百兆字节。此方法在升级之间也很有用。您可以相当快地复制在Ubuntu版本之间进行的所有配置更改。

默认情况下,大多数程序在首次运行时都会创建。[package-config-dir]。如果不存在,则会重新创建。您不应该依赖此行为,因为并非所有程序都可以这样工作。

  1. 使用Nautilus,导航到您的主目录(/home/[username]
  2. 选择“查看菜单→显示隐藏文件”(或Ctrl+ H

  3. 现在,您应该看到所有隐藏.*目录。您可能需要以root用户身份执行此操作。只需从命令行以root用户身份启动nautilus。

    选择以下目录并将其复制到单独的目录。

    /home/aaron/.config  
    /home/aaron/.gconf  
    /home/aaron/.gnome2  
    /home/aaron/.gnome2_private  
    /home/aaron/.local  
    /home/aaron/.mozilla  
    

    我对这些文件进行了更改。因此,我也将其复制。

    /home/aaron/.bash_aliases 
    /home/aaron/.bashrc 
    /home/aaron/.vimrc
    

    您可能还会使用许多其他软件包,这些软件包不会将配置存储在这些目录中。也复制它们,但是如果程序无法按预期运行,则将发出警告。您可能需要还原.*文件或目录。您可以通过简单地删除文件或目录来执行此操作,但是在复制目录之前,应该先进行备份。

  4. 取决于您使用系统的方式。您可能已经更改了目录中的某些文件/etc。如果有,也应复制它们。我创建了一个自定义的smb.conf文件用于工作,并且我使用了许多Apache虚拟主机进行开发,因此也将它们复制了。您可以复制整个/etc目录,但是如果计算机的硬件设置不完全相同,则会造成问题。它不会从一台机器到另一台机器。

    /etc/samba/smb.conf
    /etc/hosts
    /etc/apache2 # the whole directory.
    

    在安装新软件之前或之后,请复制配置文件。当前正在运行软件包安装时,请勿执行此操作。您可能会中断安装。

您安装的软件包

使用Synaptic,您可以使用“导出标记”菜单选项很容易地导出所有已安装的软件包。

  1. 文件菜单→将标记另存为
  2. 选中“保存完整状态,不仅更改”
  3. 选择名称和目录以保存此文件(您可能必须将其放在闪存驱动器上。)

然后,您可以通过相反的过程重新加载所有已安装的软件包:

  1. 文件菜单→读取标记
  2. 选择您在第一步中创建的文件。

这可能需要最长的时间。如果您下载大量软件包(1Gb软件包),则将花费几个小时。

方法2:使用磁盘映像

我将方法2作为单独的文章。这是一个更高级的选项。它要求您了解分区,安装grub并使用命令行。

如何将Ubuntu安装从一台笔记本电脑复制到另一台笔记本电脑


如果恢复安装的软件包的最后一步失败并出现这些错误怎么办?
克里斯(Chris)

30

有几种方法可以复制您的配置和设置。这取决于您所做的更改。如果您要升级到新版本。在版本之间进行升级时,某些方法很有用,但要小心,因为它们会阻止某些软件正常工作。

方法1:全新安装

单独发布。如何将Ubuntu安装从一台笔记本电脑复制到另一台笔记本电脑

这是最安全的方法,不需要您编辑grub和启动设置。简单易用,因为大多数操作都可以使用GUI工具完成。

方法2:使用磁盘映像

这可能是最快的移动方式。至于将硬盘分区复制为磁盘映像,则速度非常快。如果您不想重新安装每个软件。尽管创建,调整大小和移动磁盘映像可能会花费很长时间。仅当您不打算升级到新版本的Ubuntu时,我才建议这样做。确保您了解磁盘分区和grub。我正在执行的大多数操作都将使用命令行。您需要确保在运行命令之前先了解其功能。由于以下说明,我对数据丢失概不负责。

第一步,创建安装的磁盘映像。

首先,我们需要获取有关设置的一些信息。使用parted -lmount

$ sudo parted -l
Model: ATA ST9320423AS (scsi)
Disk /dev/sda: 320GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      32.3kB  197MB   197MB   primary   ext4            boot
 2      197MB   10.2GB  10.0GB  primary   linux-swap(v1)
 3      10.2GB  50.2GB  40.0GB  primary   ext4
 4      50.2GB  299GB   249GB   extended
 5      50.2GB  54.4GB  4195MB  logical   ext4
 6      54.4GB  65.9GB  11.5GB  logical   ext4
 7      65.9GB  299GB   233GB   logical   ext4

$ mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro)
/dev/sda7 on /home type ext4 (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/sda6 on /usr type ext4 (rw)
# I took out the entries that were not need for these instructions

$ cat /etc/fstab 
proc            /proc           proc    nodev,noexec,nosuid 0       0
UUID=ddc8c237-e8ac-4038-a0ed-f7c866d6603b /               ext4    errors=remount-ro 0    1
UUID=aa9881d1-5cc1-4e94-8cd7-8125e18ece2f /boot           ext4    defaults        0      2
UUID=31a6fde1-6b96-4cc3-acfd-88573f52be36 /home           ext4    defaults        0      2
UUID=073146a7-5668-4728-9a6f-1a599f358a8d /usr            ext4    defaults        0      2
UUID=540b96b6-b3c3-4092-b4ad-6b33bcbbe16d none            swap    sw              0      0

您的设置可能看起来有所不同。我有一个单独的分区,用于/homeroot(/)和/usr

创建磁盘映像

我使用dd它,因为它既简单又快速。确保您已阅读并理解其工作原理。您将需要一个空的分区,该分区大于要复制的整个分区大小。这可能会花费一些时间。根据分区的大小,创建大小和复制分区可能需要几个小时。您将需要用一部分存储驱动器替换外部驱动器,以用于此过程。

sudo dd if=/dev/sda5 of=/media/externaldrive/sda5-root.img
sudo dd if=/dev/sda7 of=/media/externaldrive/sda7-home.img
sudo dd if=/dev/sda6 of=/media/externaldrive/sda6-usr.img

这是在我的设备上运行此输出后的实际示例。

$ sudo dd if=/dev/sda5 of=/media/home0/sda5-root.img
8193087+0 records in
8193087+0 records out
4194860544 bytes (4.2 GB) copied, 55.3159 s, 75.8 MB/s

我们可以使用Linux提供的工具来减小此磁盘映像的大小。

$ sudo resize2fs -P sda5-root.img
 resize2fs 1.41.11 (14-Mar-2010)
 Estimated minimum size of the filesystem: 605972
$ ls -sh ./sda5-root.img
 4.0G ./sda5-root.img
$ sudo resize2fs -M sda5-root.img
 resize2fs 1.41.11 (14-Mar-2010)
 Please run 'e2fsck -f sda5-root.img' first.
$ sudo e2fsck -fy ./sda5-root.img # y makes it run without asking thousands of questions.

e2fsck将会输出很多错误或修正。这是因为就分区边界的开始和结束位置而言,文件系统中的信息不再正确。这是正确的,因为它不再位于为其配置的分区中。

$ sudo resize2fs -M sda5-root.img
 resize2fs 1.41.11 (14-Mar-2010)
 Resizing the filesystem on sda5-root.img to 605505 (4k) blocks.
 Resizing the filesystem on sda5-root.img to 605505 (4k) blocks.
 The filesystem on sda5-root.img is now 605505 blocks long.
$ ls -sh ./sda5-root.img
 2.4G ./sda5-root.img

它实际上删除了分区中的所有可用空间。因此,对于较大的分区,这可能是磁盘大小的50%。复制较小文件的速度更快

现在,您需要使用活动磁盘启动新笔记本电脑,然后执行此处的操作。您需要使用活动磁盘,因为您无法更改已安装的操作系统当前正在使用的正在运行的分区。

现在,您可以将这些磁盘映像复制到新计算机的分区中。您应该已经设置了这些分区。使用活动磁盘gparted是一种快速简便的方法。确保拥有系统所需的所有分区。您可以使这些分区大于先前系统上的分区。当我们将磁盘映像复制到其中时,我们将调整文件系统的大小,它将占用分区上的所有可用空间。

现在执行第二步:将磁盘映像复制到新驱动器和新分区上。

sudo dd if=/media/exteranldrive/sda5-root.img of=/dev/sda3 # replace the [sda3] with your partition.  

在我的机器上,这就是输出的样子

$ sudo dd if=./sda5-root.img of=/dev/sdb6 
4844040+0 records in  
4844040+0 records out  
2480148480 bytes (2.5 GB) copied, 87.4921 s, 28.3 MB/s  

$ sudo fsck.ext4 -fy /dev/sdb6  
e2fsck 1.41.11 (14-Mar-2010)  
Pass 1: Checking inodes, blocks, and sizes  
Pass 2: Checking directory structure  
Pass 3: Checking directory connectivity  
Pass 4: Checking reference counts  
Pass 5: Checking group summary information  
root1: 50470/504000 files (1.4% non-contiguous), 616736/2060328 blocks  

现在我们需要编辑fstab文件以指向正确的设备。如果您只是将新磁盘分区复制到新磁盘上,则fstab文件位于该分区上,因此您需要挂载它才能访问该文件。如果没有单独的启动分区,则还需要安装根分区才能安装grub。

$ sudo mkdir /mnt/tmp  
mount /dev/sdb6 /mnt/tmp  
$ sudo blkid  # to see what the disk uuid is   
/dev/sda5: LABEL="root1" UUID="ddc8c237-e8ac-4038-a0ed-f7c866d6603b" TYPE="ext4"  
/dev/sdb6: LABEL="root1" UUID="ddc8c237-e8ac-4038-a0ed-f7c866d6603b" TYPE="ext4"  
$ gksu gedit /mnt/tmp/etc/fstab  
replace the UUID with the UUID of your partition  
UUID=ddc8c237-e8ac-4038-a0ed-f7c866d6603b /               ext4    errors=remount-ro 0  1

在这里,您可以看到我复制到另一个磁盘上的新磁盘映像具有与原始文件系统相同的UUID。因此,您可以将旧安装中的fstab文件复制到新安装中,并具有正常工作的系统。那将会启动。在我的设置中,我不能像这样离开我的计算机,否则它将启动到首先找到的任何设备。

编辑fstab并确保uuid与您为root和home设置的分区以及您设置的其他分区匹配。

最后一步是在新磁盘上安装grub。

sudo chroot /mnt/tmp # your root partition.   
grub-install /dev/XXX  

就我而言:

grub-install /dev/sdb
update-grub

在开始之前,请阅读这些说明。在新笔记本电脑上拥有所有数据并且无法启动它是没有用的。

安装Windows之后
https://help.ubuntu.com/community/Grub2 https://help.ubuntu.com/community/RecoveringUbuntu


我有一个疑问,如果目标分区的空间大于磁盘映像的空间,dd会允许我们使用额外的空间吗?还是会被浪费掉?
nikhil 2012年

@nikhil。No dd将不使用额外的空间。但这并非旨在。它不了解文件系统。另外fsck.ext4确实了解分区和文件系统。文件系统检查的一部分是检查分区大小,并确保文件系统与分区大小匹配。
nelaaro

8

尝试clonezilla。Clonezilla是磁盘映像/克隆工具。您可以使用此工具将Ububtu克隆到新系统。

clonezilla启动菜单

Clonezilla会克隆您的设置以及整个分区。

有两种版本的clonezilla可用。Clonezilla live适合一次性使用。

有关更多信息,请访问此链接


1
不错的选择。请记住,在不同的硬件上进行恢复可能不是那么容易。如果您还原到相同大小的分区,我想应该没问题。您也可以尝试PING(分区映像不是鬼)。那是另一个工具。
Whirl Mind '18年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.