如何将一台机器上的 ubuntu 系统(安装很多软件以及环境)打包,然后重新安装到另一台机器上

2016-09-29 13:41:34 +08:00
 ubear1991

如题。 主要是不想再重新配置。

8210 次点击
所在节点    Linux
49 条回复
zhaojjxvi
2016-09-30 09:32:24 +08:00
@mikicomo 我还没研究过,没听说这种方案
likuku
2016-09-30 10:06:22 +08:00
@20150517 删除需要扩容的分区,原地重建更大分区,再 resize

参考:
https://archlinuxarm.org/forum/viewtopic.php?f=31&t=3119
likuku
2016-09-30 10:09:13 +08:00
tar 打包,新机上 live cd 环境下再重新分区格式化,解包,重装 grub , reboot
GGGG430
2016-09-30 10:26:19 +08:00
早上开机(ubuntu), 屏幕全红色, 正准备这么搞呢
0915240
2016-09-30 12:04:05 +08:00
docker
xieyudi1990
2016-09-30 15:02:36 +08:00
@mikicomo Windows 照理说需要做系统部署(好像这么叫),可以参考制作 PE 的前几部。有时候直接分区对拷再启动也没啥问题。当然 mbr/uefi , bootmgr , bcd 要弄对。

Linux 的话直接 tar -cpf 备份,再 tar -xpf 都可以。当然 mbr/uefi , grub2 (要改 udid ), fstab 需要弄对。
mikicomo
2016-09-30 15:06:39 +08:00
@xieyudi1990 还是上 mac 好了(#滑稽)
Tyanboot
2016-09-30 19:24:27 +08:00
@20150517 所以我说了 dd 之后要 e2fsck -f 和 resize2fs 一下啊,这步就是检查分区错误顺便调整分区的,关于这一步的具体方法,可以去搜“ resize2fs 调整分区”的相关操作。

然后你说的分区表问题, MBR 分区表位于 0 扇区,逻辑分区是链式储存的,其中 0 号扇区前 446 字节是引导,后面 64 字节是四个主分区的分区表。 GPT 则稍微复杂一点。但是不论哪种分区表,如果你 dd 的是 sdaX 的格式,虽然没有完整分区表,但是依旧是一个完整的分区,也就是如果你 dd if=/dev/sda1 of=bak.img 的话,这个 img 是可以直接 losetup+mount 使用的,当然也可以 dd 到另一个分区覆盖掉,被覆盖掉的分区就是源分区了,其大小等各项属性和源分区保持一致。对于 MBR 来说,如果你 dd 的是一个逻辑分区,那么后果就是位于被覆盖的分区之后的逻辑分区都会找不到,而对于 MBR 的主分区和 GPT 来说就没有这个后果。

你说的"MBR 启动区”应该说的就是 MBR 0 扇区的前 446 字节,后面的分区表除非你是两个硬盘大小一样,而且你打算完全对拷,否则最好是别乱复制。。。
Tyanboot
2016-09-30 19:42:35 +08:00
@likuku 我刚刚试了一下,假设把一个 1G 的分区直接 dd 到另一个原本 2G 的分区上, dd 之后直接执行 e2fsck -f 和 resize2fs 之后就可以恢复 2G 了,不需要删掉重建

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/309747

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX