Sof*_*mur 74 laptop clone system-installation
我要更换我的机器:从一台装有 Ubuntu 的笔记本电脑到另一台我要安装 Ubuntu 的笔记本电脑......
我对目前的系统很满意,我害怕的是必须从 0 重建一切。
那么人们通常会做什么来克隆 Ubuntu 系统呢?这可能包括数据、包、快捷方式设置等...
nel*_*aro 44
有几种方法可以复制您的配置并进行设置。这取决于您所做的更改有多大。如果您要升级到新版本。有些方法在版本之间升级时很有用,但要小心,因为它们会阻止某些软件形式正常工作。
最健壮和稳定的方法是全新安装,然后复制配置并重新安装所有软件包。这也适用于从旧版本到新版本。有很多方法可以让这一切很快发生,并使大部分过程自动化。最慢的部分是必须下载安装媒体中未包含的所有软件包。我有 8 个 DVD 磁盘映像,可以让我安装得比下载快得多。
我会推荐此选项,因为设置和安装 grub 会使您的系统无法使用。您需要对 grub 有一个扎实的掌握才能使用方法 2。
在进行新安装(新笔记本电脑)之前,您需要从旧安装(旧笔记本电脑)中复制一些信息。
保存您的自定义的所有文件都存储在两个位置。第一个也是最重要的导入是您的 /home/[username] 目录。可以有数百个 .[package-config-dir] 文件和目录。我将列出最重要的,但如果您愿意,您可以拥有更多并添加更多。此过程可能会导致包无法正常工作的问题。所以当你这样做时要小心。在粘贴新目录之前备份您的全新安装。
这些目录和文件都不是很大,可能只需要几百兆字节。此方法在升级之间也很有用。您可以非常快速地复制您在 Ubuntu 版本之间所做的所有配置更改。
默认情况下,大多数程序在第一次运行时都会创建 .[package-config-dir] 。如果它不存在,则重新创建它。您不应该依赖这种行为,因为并非所有程序都能像这样工作。
/home/[username])选择“查看菜单→显示隐藏文件”(或Ctrl+ H)
您现在应该看到所有隐藏的.*目录。您可能需要以 root 身份执行此操作。只需从命令行以 root 身份启动 nautilus。
选择以下目录并将它们复制到单独的目录中。
/home/aaron/.config
/home/aaron/.gconf
/home/aaron/.gnome2
/home/aaron/.gnome2_private
/home/aaron/.local
/home/aaron/.mozilla
Run Code Online (Sandbox Code Playgroud)
我对这些文件进行了更改。所以我也复制它们。
/home/aaron/.bash_aliases
/home/aaron/.bashrc
/home/aaron/.vimrc
Run Code Online (Sandbox Code Playgroud)
您使用的许多其他软件包可能没有将配置存储在这些目录中。也复制它们,但如果程序没有按预期工作,请注意。您可能需要恢复.*文件或目录。您可以通过简单地删除文件或目录来完成此操作,但您应该在复制目录之前进行备份。
取决于你如何使用你的系统。您可能对/etc目录中的某些文件进行了更改。如果你有,你也应该复制它们。我为工作创建了一个自定义的 smb.conf 文件,并且我有许多用于开发的 Apache 虚拟主机,因此我也复制了它们。您可以复制整个/etc目录,但是如果您的机器在硬件方面没有完全相同的设置,这可能会产生问题。它不会从一台机器转到另一台机器。
/etc/samba/smb.conf
/etc/hosts
/etc/apache2 # the whole directory.
Run Code Online (Sandbox Code Playgroud)
在安装新软件之前或之后复制您的配置文件。不要在软件包安装当前运行时执行此操作。您可能会破坏安装。
使用 Synaptic,您可以使用导出标记菜单选项轻松导出所有已安装的软件包。
然后,您可以通过反转该过程来重新加载所有已安装的软件包:
这可能需要最长的时间。如果您下载大量软件包(1Gb 软件包),这将需要几个小时。
我将方法 2 作为一个单独的帖子。这是一个更高级的选项。它需要您了解分区、安装 grub 并使用命令行。
如何将 Ubuntu 安装从一台笔记本电脑复制到另一台笔记本电脑
nel*_*aro 34
有几种方法可以复制您的配置并进行设置。这取决于您所做的更改有多大。如果您要升级到新版本。有些方法在版本之间升级时很有用,但要小心,因为它们会阻止某些软件正常工作。
单独发布。如何将 Ubuntu 安装从一台笔记本电脑复制到另一台笔记本电脑
这是最安全的方法,不需要您编辑 grub 和启动设置。很简单,因为大部分工作都可以使用 GUI 工具完成。
这可能是最快的移动方式。至于复制您的硬盘驱动器分区,因为磁盘映像非常快。如果您不想重新安装每个软件。尽管创建、调整大小和移动磁盘映像可能需要很长时间。如果您不打算升级到新版本的 Ubuntu,我只会推荐这个。确保您了解磁盘分区和 grub。我正在做的大部分事情都将使用命令行。在运行之前,您需要确保了解命令的作用。由于遵循以下说明而导致的数据丢失,我概不负责。
第一步创建安装的磁盘映像。
首先,我们需要获取有关设置的一些信息。使用parted -l和mount
$ 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
Run Code Online (Sandbox Code Playgroud)
您的设置可能看起来不同。我有一个单独的分区用于/home、root ( /) 和/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
Run Code Online (Sandbox Code Playgroud)
这是在我的设置上运行后输出的实际示例。
$ 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
Run Code Online (Sandbox Code Playgroud)
我们可以使用 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.
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
它实质上删除了分区中的所有可用空间。因此,对于较大的分区,这可能是磁盘大小的 50% 以上。更快地复制较小的文件
您现在需要使用活动磁盘启动您的新笔记本电脑并执行以下操作。您需要使用实时磁盘,因为您无法更改已安装操作系统当前使用的正在运行的分区。
您现在可以将这些磁盘映像复制到新计算机上的分区中。您应该已经设置了这些分区。使用实时磁盘gparted是一种快速简便的方法。确保您拥有系统所需的所有分区。您可以使这些分区比以前系统上的分区大。当我们将磁盘映像复制到其中时,我们将调整文件系统的大小,它将占用分区上的所有可用空间。
现在第二步:将磁盘映像复制到新驱动器和新分区中。
sudo dd if=/media/exteranldrive/sda5-root.img of=/dev/sda3 # replace the [sda3] with your partition.
Run Code Online (Sandbox Code Playgroud)
在我的机器上,这就是输出的样子
$ 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
Run Code Online (Sandbox Code Playgroud)
现在我们需要编辑 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
Run Code Online (Sandbox Code Playgroud)
在这里您可以看到我复制到另一个磁盘的新磁盘映像与原始文件系统具有相同的 UUID。因此,您可以将旧安装中的 fstab 文件复制到新安装中,并拥有一个工作系统。那将启动。在我的设置中,我不能像这样离开我的电脑,否则它会启动到它首先找到的任何设备。
编辑 fstab 并确保 uuid 与您为 root 和 home 设置的分区以及您设置的任何其他分区匹配。
最后一步是在新磁盘上安装 grub。
sudo chroot /mnt/tmp # your root partition.
grub-install /dev/XXX
Run Code Online (Sandbox Code Playgroud)
就我而言:
grub-install /dev/sdb
update-grub
Run Code Online (Sandbox Code Playgroud)
请在开始之前阅读这些说明。拥有新笔记本电脑上的所有数据并且无法启动它是没有用的。
https://help.ubuntu.com/community/Grub2
https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows
| 归档时间: |
|
| 查看次数: |
89941 次 |
| 最近记录: |