V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
pyKun
V2EX  ›  Linux

copy完整一个系统或硬盘

  •  
  •   pyKun · 2013-05-16 00:47:21 +08:00 · 6191 次点击
    这是一个创建于 4210 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 如果系统只存在一个分区上,那么问题可以简化为完全拷贝硬盘
    2. 最安全的方法是直接mount -root 。。。。。,但是对于操作系统来说,会更复杂点,很多细节不知道在哪解释的清楚
    3. 最暴力的方法是dd,如果目标和源对象大小不同,调整的方法也不难的


    问题:
    1. 有其他的思路否
    2. dd有多少安全隐患,dd在商业应用上有哪些?
    10 条回复    2019-10-01 22:38:21 +08:00
    likuku
        1
    likuku  
       2013-05-16 01:01:42 +08:00
    用tar+gz 备份/迁移/快速安装 至少上百个 gentoo 的人表示情绪稳定。
    xuelang
        2
    xuelang  
       2013-05-16 07:40:08 +08:00
    mac 下还可以用Carbon Copy Cloner
    shiweifu
        3
    shiweifu  
       2013-05-16 08:26:07 +08:00
    @likuku
    直接拷过去,然后mount root 装grub 么?
    ybur
        4
    ybur  
       2013-05-16 09:44:17 +08:00
    试试 Clonezilla,应该能满足你的需求。
    coronin
        5
    coronin  
       2013-05-16 09:47:42 +08:00 via iPhone
    clonezilla很多年了
    pyKun
        6
    pyKun  
    OP
       2013-05-16 10:14:52 +08:00
    likuku
        7
    likuku  
       2013-05-16 12:05:56 +08:00   ❤️ 4
    @shiweifu
    @pyKun

    打包前,在 /boot 下 ln -s . boot 建立一个 软链接 boot -> . 以方便之后grub的操作。

    tar 使用 p参数记录所有文件和目录的权限和属主 --excloud 避开一些特殊的目录,假设生成的压缩包.tgz放在/backup/:
    /proc/*
    /sys/*
    /etc/udev/rules.d/一些特殊对象
    /backup/*.tgz #避开生成的压缩包

    在新机器上,以 livecd 启动(最好相同平台的相同发行版),对硬盘分区,格式化,
    live 环境里 将 新硬盘里准备作/ 的分区 mount 到某目录,例如 /o
    在/o 里建立 boot home usr var 登目录(假若准备给这些使用独立分区),
    将分区都mount到对应位置,
    在 /o 下 tar xvf /path/backup.tgz
    mount --bind /dev /o/dev && mount --bind /proc /o/proc && mount --bind /sys /o/sys

    接着,chroot /o /bin/bash
    或许要修改 chroot 环境(新机器未来的新系统)的 /etc/fstab 和 网络设定什么
    执行 grub
    set root (hd0,0) #假设boot是独立分区,使用第一个硬盘的第一个分区
    setup (hd0)
    exit
    重启新机器,完毕。

    我自用的 打包脚本,原本是针对 gentoo 的,稍作变动也可用于其它发行版:
    https://gist.github.com/likuku/5589316
    pyKun
        8
    pyKun  
    OP
       2013-05-16 12:23:17 +08:00
    @likuku
    描述的很棒
    其实和fedorahosted里的livecd制作流程基本一样的,只不过没有package的过程了
    在犹豫这么做或者直接dd
    toctan
        9
    toctan  
       2013-05-16 15:27:27 +08:00 via Android   ❤️ 1
    @pyKun 用 rsync 也行,上次我是把整个系统拷到一个U盘里,新电脑上分区挂载把文件拷回去,改改 /etc/fstab,装好 grub 就行了。

    https://wiki.archlinux.org/index.php/Full_System_Backup_with_rsync
    notgood
        10
    notgood  
       2019-10-01 22:38:21 +08:00
    @toctan V 友, 请问我想直接克隆 VPS A 的系统 到 VPS B 上, 通过 ssh 方式来运行 rsync, 命令行这样写有问题吗? 谢谢指导;
    rsync -avz --progress --delete [email protected]:/dev/vda /dev/vda

    VPS A 和 B 都是 centos7 x64, 同步完最后 VPS B 需要先执行 grub2-mkconfig -o /boot/grub2/grub.cfg 再执行 grub2-install /dev/vda 吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2761 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:55 · PVG 17:55 · LAX 01:55 · JFK 04:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.