如果要迁移到其他硬件,如何复制Linux环境?


10

我目前在Kubuntu上设置了用于Eclipse,MySQL,Python,Firefox等的软件包,模块,设置等。我还为我的需要配置了最佳的Kubuntu。我想在具有不同处理器的另一台计算机上复制我的环境(当前在Intel Q9450上,新处理器是i7)。据我了解,我的应用程序经过编译可与我的特定处理器配合使用,因此制作直接分区副本是不可能的。

有什么方法可以将我的环境复制到另一台计算机上,而无需重新安装和重新配置所有内容?


这个问题对我来说真是令人难以置信...我在问同样的事情!
dag729 2010年

“据我了解,我的应用程序经过编译以与我的特定处理器一起使用”:您从哪儿得到的?我不知道有哪个发行版(当然是Gentoo除外)。
sleske 2010年

@sleske:您是否曾经尝试在ppc版本的Debian上安装amd64软件包?;)
dag729 2010年

1
@ dag729:当然,如果更改处理器体系结构,则需要新的软件包。但是Intel Q9450和i7都是x86处理器。
sleske

1
我以为我的i7是x86_64。我正在这台计算机上运行64位应用程序。我不正确吗?
好奇

Answers:


3

据我了解,我的应用程序经过编译可与我的特定处理器配合使用,因此制作直接分区副本是不可能的。

是什么导致您得出这个结论?至少对于x86,由Kubuntu安装的软件包被编译为可以在几乎所有非史前CPU上运行。我相信它们可以在比486更新的任何版本上运行,这对您而言可能不会造成问题:-)。

因此,直接的分区副本应该可以正常工作:

  • 复制分区(cp -a如果分区布局已更改,则仅使用复制文件)
  • 使/ etc / fstab适应新的分区布局
  • 为新分区重新配置引导程序,然后重新安装引导程序
  • 启动并享受

仅预期出现以下问题:

  • 自编译程序包,但即使在那儿,大多数情况下默认情况下也会为所有现代CPU编译,除非您使用编译器选项
  • 设备驱动程序

大多数现代内核会在启动时自动检测硬件,因此通常即使驱动程序也应该可以,但是如果出现故障,通常可以以单用户模式启动并修复任何驱动程序问题。


如果这行得通,我的生活将会轻松得多。谢谢!我将首先尝试。
好奇

7

您可以直接使用主目录。进入主目录的几乎所有内容都旨在通过NFS之类共享,所以您很好。

另外,使用

sudo dpkg --get-selections '*' >file.txt

并将其还原到另一台计算机上

sudo dpkg --set-selections <file.txt

同样,将您的debconf设置保存为

sudo debconf-get-selections >file2.txt

并还原为

sudo debconf-set-selections <file2.txt

对于/etc不由debconf管理的其余配置,除非您使用过etckeeper之类的东西(也许是对未来的想法),否则很难跟踪手动更改的内容。因此,我倾向于将大部分配置保留在主目录中。但是,由于您知道您对哪些程序感兴趣,因此在其中找到相关文件/etc并手动检查和复制它们应该很容易。


1
是的,如果要迁移到其他体系结构,这是要走的路。附带说明:只需在安全的地方复制/ etc /的副本,然后可以在新系统上需要它们时有选择地还原配置文件。
sleske 2010年

1

您可以备份家庭并将其还原到另一台计算机。这不能完全满足您的需求,但是它将还原所有配置。但是,您必须自己重新安装软件包。


1

绝大多数自定义配置将位于/ home /中,其余大多数将位于/ etc /中。一些/ etc文件具有机器或硬件特定的信息(/etc/X11/xorg.conf、/etc/hostname、/etc/fstab不在我的脑海),但是如果您愿意,可以复制很多文件。将使用相同的OS版本。


在您列出的内容中,MySQL是唯一可能要在/ etc /中进行配置的副本,其余都在/ home /中
Justin Smith,2010年

1

其次,获取,设置选择项。

要确切知道哪些配置文件已更改,请运行以下命令:

dpkg-query --show --showformat='${Conffiles}\n' |sort -u | \
while read f m obsolete; do \
  [[ -r $f ]] || continue; m2=$(md5sum "$f") ;
  [[ $m2 != "$m  $f" ]] && echo "$f";
done |xargs -n1 dlocate  |tee ~/edited-conffiles

如果尚未安装dlocate,则可以替换为dpkg -S或跳过该部分。

要备份所有配置文件:

dpkg-query --show --showformat='${Conffiles}\n' |sort -u | \
while read f m obsolete; do \
  echo "$f"
done |sudo tar cjf ~/conffiles.tbz2 -T -

1

嗯 如果您不介意摆弄,可以将新的HDD插入盒中,安装它,然后使用dd。例如,如果您当前的根目录设置为/ dev / sda3,并且将新的HDD挂载到/ dev / sdb2,则可以使用

dd if=/dev/sda3 of=/dev/sdb2

当然,您需要以root用户身份执行此操作。之后,您将需要安装Grub,因此您需要放入Ubuntu LiveCD并使用它。

或者,您也可以查看以下链接:http : //www.ehow.com/how_4924091_clone-hard-drive-linux.html-克隆Linux硬盘看起来很不错,尽管我还没有我自己测试了该网站。

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.