如何将一台机器上的 ubuntu 系统(安装很多软件以及环境)打包,然后重新安装到另一台机器上 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
ubear1991
V2EX    Linux

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

  •  1
     
  •   ubear1991 2016-09-29 13:41:34 +08:00 8658 次点击
    这是一个创建于 3300 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    49 条回复    2016-09-30 19:42:35 +08:00
    7654
        1
    7654  
       2016-09-29 13:51:54 +08:00
    可以直接硬盘对硬盘 dd
    或者先创建比实际大小大一些的空白 img ,然后挂载格式化,再 dump
    需要用到的命令 losetup , mount , dd , parted , kpartx , dump
    最后将 img 文件写到新硬盘上
    lotina69
        2
    lotina69  
       2016-09-29 13:53:14 +08:00
    docker
    Nicksxs
        3
    Nicksxs  
       2016-09-29 13:54:21 +08:00
    同求方法
    adfsadfssfd
        4
    adfsadfssfd  
       2016-09-29 13:55:53 +08:00
    怎么复制并开启全盘加密?
    Tyanboot
        5
    Tyanboot  
    PRO
       2016-09-29 14:02:54 +08:00   2
    1 )如 1 楼所说,硬盘对硬盘 DD 过去,如果源分区小于目标机器上的目标分区,可以直接 dd if=源分区 of=目标分区 这样直接复制过去,然后再 e2fsck -f 一下和 resize2fs 处理一下就可以了。如果源分区大于目标的话,只能先缩小了。
    如果两个硬盘不能挂载到一个机器上,可以先把源分区 dd 到一个 img 文件上,复制过去之后再 dd 出去。


    2 )用 tar 或者 cpio 打包好,再复制归档文件过去解压出来, cpio 是可以保证权限和 link 的正确性的, tar 好像也能。


    以上两个方法都需要重新建立引导(这不是事
    xfan001
        6
    xfan001  
       2016-09-29 14:04:35 +08:00
    再生龙?
    alouha
        7
    alouha  
       2016-09-29 14:25:51 +08:00
    二楼说的对……
    sleeperqp
        8
    sleeperqp  
       2016-09-29 14:27:37 +08:00 via iPhone
    docker
    SunisDown
        9
    SunisDown  
       2016-09-29 14:32:33 +08:00
    rsync clone system install

    用上面几个关键字 Google
    misaka19000
        10
    misaka19000  
       2016-09-29 14:35:42 +08:00
    docker 不就是为了解决这种问题而产生的吗?
    reus
        11
    reus  
       2016-09-29 15:42:00 +08:00
    rsync 复制
    reus
        12
    reus  
       2016-09-29 15:42:52 +08:00
    说 docker 的用过 docker 吗究竟?
    keikeizhang
        13
    keikeizhang  
       2016-09-29 17:20:40 +08:00
    论 docker 存在的意义!
    mikicomo
        14
    mikicomo  
       2016-09-29 17:31:08 +08:00
    借楼问问 windows 系统的解决方案
    ahkxhyl
        15
    ahkxhyl  
       2016-09-29 17:32:59 +08:00
    docker 没研究成功! vagrant 研究成功!!
    PyPog
        16
    PyPog  
       2016-09-29 17:59:22 +08:00 via Android
    @Tyanboot 感谢,之前遇到 dd 之后起不来,估计是没有执行 e2fsck 和 resize2fs ,受教了
    helixzz
        17
    helixzz  
       2016-09-29 18:05:56 +08:00
    我们在用 CloneZilla ……
    Tink
        19
    Tink  
    PRO
       2016-09-29 18:16:08 +08:00
    再生龙或者

    rsync -aAXvl --exclude={/dev/,/proc/,/sys/,/tmp/,/run/,/mnt/,/media/,/lost+found/,/home/USER/.Trash/} / /Destination/Backup/Directory/
    just1
        20
    just1  
       2016-09-29 18:18:39 +08:00 via Android
    docker 不持久化吧。。
    rawk
        21
    rawk  
       2016-09-29 18:27:12 +08:00 via Android
    用 dd 生成 img 后在新的硬盘上挂载,然后
    option A :直接复制过去,需要手动修复挂载文件 /etc/fstab
    option B :直接 dd 回去,需要事先留一个大小大于 img 的空白区域
    20150517
        22
    20150517  
       2016-09-29 18:32:10 +08:00
    @Tyanboot 我一直不明白,你 dd 的话,你分区表怎么办?比如我现在 /dev/sda1 是 100GB,分了一个区,/dev/sdb1 是 200GB,你 dd /dev/sda1 -> dev/sdb1 后,你 /dev/sdb1 就变只有 100GB 了吧?你另外 100GB 就在外面了吧

    空间不是浪费了吗
    是这样吗?
    @7654
    zhaojjxvi
        23
    zhaojjxvi  
       2016-09-29 18:34:26 +08:00 via iPhone
    @mikicomo 直接 ghost 可以的
    mikicomo
        24
    mikicomo  
       2016-09-29 18:43:32 +08:00
    @zhaojjxvi ghost 不支持增量备份的吧?有支持增量的方案吗
    gamexg
        25
    gamexg  
       2016-09-29 21:44:21 +08:00
    @20150517 resize2fs 在线扩容
    msg7086
        26
    msg7086  
       2016-09-29 21:45:10 +08:00 via Android
    @20150517 分区不能改?手动滑鸡
    20150517
        27
    20150517  
       2016-09-29 21:51:06 +08:00 via Android
    @msg7086 能改,大哥,我错了,我知道能改,就是问一下分区是不是也拷过去了
    zhidian
        28
    zhidian  
       2016-09-29 21:54:47 +08:00
    @20150517 可以 dd 整个磁盘(包括分区表啊),用 if=/dev/sda 而不是 if=/dev/sda1 , of 也是一样。这样分区表也拷过去了……==
    20150517
        29
    20150517  
       2016-09-29 21:55:47 +08:00 via Android
    @zhidian mba 启动区这种也复制了是吗
    zhaojjxvi
        30
    zhaojjxvi  
       2016-09-29 22:01:24 +08:00 via iPhone
    @mikicomo 什么叫增量?
    mikicomo
        31
    mikicomo  
       2016-09-29 22:14:18 +08:00
    @zhaojjxvi 就是我有地方的配置文件变得了,重新同步的时候不用全盘备份,只备份修改部分
    watzds
        32
    watzds  
       2016-09-29 23:50:27 +08:00 via Android
    dd 后 /etc/fstab 里 uuid 改一下,/的权限注意一下
    watzds
        33
    watzds  
       2016-09-29 23:51:19 +08:00 via Android
    还有 MBR grub 什么的安装一下
    churchmice
        34
    churchmice  
       2016-09-30 00:16:31 +08:00
    clonzilla
    mritd
        35
    mritd  
       2016-09-30 00:35:12 +08:00 via iPhone
    @reus 我也想知道……好逗比……学 docker 第一句话…… docker 不是虚拟机
    cxbig
        36
    cxbig  
       2016-09-30 00:55:04 +08:00
    如果是 AWS 这类,直接用快照生成新服务器
    这年头最好用 Docker 打包完整的服务,这样哪都方便用
    nl
        37
    nl  
       2016-09-30 00:58:34 +08:00
    同求方法!
    reus
        38
    reus  
       2016-09-30 01:09:20 +08:00
    都说了 rsync 。其他什么方法都是…… 内啥。
    https://wiki.archlinux.org/index.php/full_system_backup_with_rsync
    lalalakakaka
        39
    lalalakakaka  
       2016-09-30 07:47:10 +08:00   1
    clonzilla
    爽的一 B~
    jinhan13789991
        40
    jinhan13789991  
       2016-09-30 09:32:07 +08:00
    二楼说得对, docker
    zhaojjxvi
        41
    zhaojjxvi  
       2016-09-30 09:32:24 +08:00 via iPhone
    @mikicomo 我还没研究过,没听说这种方案
    likuku
        42
    likuku  
       2016-09-30 10:06:22 +08:00
    @20150517 删除需要扩容的分区,原地重建更大分区,再 resize

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

    Linux 的话直接 tar -cpf 备份,再 tar -xpf 都可以。当然 mbr/uefi , grub2 (要改 udid ), fstab 需要弄对。
    mikicomo
        47
    mikicomo  
       2016-09-30 15:06:39 +08:00
    @xieyudi1990 还是上 mac 好了(#滑稽)
    Tyanboot
        48
    Tyanboot  
    PRO
       2016-09-30 19:24:27 +08:00   1
    @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
        49
    Tyanboot  
    PRO
       2016-09-30 19:42:35 +08:00
    @likuku 我刚刚试了一下,假设把一个 1G 的分区直接 dd 到另一个原本 2G 的分区上, dd 之后直接执行 e2fsck -f 和 resize2fs 之后就可以恢复 2G 了,不需要删掉重建
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     861 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 19:43 PVG 03:43 LAX 12:43 JFK 15:43
    Do have faith in what you'e doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86