Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
ubear1991
V2EX  ›  Linux

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

  •  1
     
  •   ubear1991 · Sep 29, 2016 · 9574 views
    This topic created in 3689 days ago, the information mentioned may be changed or developed.

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

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


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


    以上两个方法都需要重新建立引导(这不是事
    xfan001
    xfan001
    Sep 29, 2016
    6
    再生龙?
    alouha
    alouha
    Sep 29, 2016
    7
    二楼说的对……
    sleeperqp
    sleeperqp
    Sep 29, 2016 via iPhone
    8
    docker
    SunisDown
    SunisDown
    Sep 29, 2016
    9
    rsync clone system install

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

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

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

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

    Linux 的话直接 tar -cpf 备份,再 tar -xpf 都可以。当然 mbr/uefi , grub2 (要改 udid ), fstab 需要弄对。
    mikicomo
    mikicomo
    Sep 30, 2016
    47
    @xieyudi1990 还是上 mac 好了(#滑稽)
    Tyanboot
    Tyanboot
    Sep 30, 2016❤️1
    48
    @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
    Tyanboot
    Sep 30, 2016
    49
    @likuku 我刚刚试了一下,假设把一个 1G 的分区直接 dd 到另一个原本 2G 的分区上, dd 之后直接执行 e2fsck -f 和 resize2fs 之后就可以恢复 2G 了,不需要删掉重建
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1531 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 159ms · UTC 23:07 · PVG 07:07 · LAX 15:07 · JFK 18:07
    ♥ Do have faith in what you're doing.