把一块硬盘上的 Linux 系统整个复制到新硬盘上的方法. - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
viator42
V2EX    Linux

把一块硬盘上的 Linux 系统整个复制到新硬盘上的方法.

  •  1
     
  •   viator42 2015-04-12 23:43:48 +08:00 30255 次点击
    这是一个创建于 3837 天前的主题,其中的信息可能已经有所发展或是发生改变。
    原来有一块160G的硬盘做系统盘,装的是gentoo.现在入了一块120G的SSD,想把系统整个复制到新硬盘上,有什么可行的方案吗?
    gentoo这种折腾货真的不想装第二回了.
    48 条回复    2019-10-06 23:30:43 +08:00
    tywtyw2002
        1
    tywtyw2002  
       2015-04-13 00:03:43 +08:00 via iPhone
    参考kvm xen 模版制作
    rentaro
        2
    rentaro  
       2015-04-13 00:04:10 +08:00
    dd
    manhere
        3
    manhere  
       2015-04-13 00:09:19 +08:00 via iPhone
    G4L
    yanglingling
        4
    yanglingling  
       2015-04-13 00:20:45 +08:00
    dd呀,不过驱动会出问题吧
    lovewilliam
        5
    lovewilliam  
       2015-04-13 00:33:42 +08:00
    ryd994
        6
    ryd994  
       2015-04-13 01:28:32 +08:00
    先resize缩到120G以下(越小越好)
    然后直接dd过去
    再resize到最大
    nikolai
        7
    nikolai  
      &bsp;2015-04-13 01:38:18 +08:00
    dd 或 rsync
    ericls
        8
    ericls  
       2015-04-13 02:33:16 +08:00
    心中默念 “一切皆文件”
    ryd994
        9
    ryd994  
       2015-04-13 04:31:11 +08:00
    @nikolai rsync的话要注意引导和fstab等
    swordfeng
        10
    swordfeng  
       2015-04-13 07:14:40 +08:00 via Android
    cp -a
    cattyhouse
        11
    cattyhouse  
       2015-04-13 08:37:30 +08:00 via iPhone   2
    楼上的你们都把引导文件给无视了?直接复制过去是没有grub的,根本启动不了。

    官方有wiki,善用搜索。

    http://www.gentoo-wiki.info/HOWTO_Move_Gentoo_Installation_to_new_hard_disk
    clino
        12
    clino  
       2015-04-13 08:38:36 +08:00
    clonezilla之类的?
    xiaobu
        13
    xiaobu  
       2015-04-13 08:42:10 +08:00
    dd 或者pe里的ghost
    jokester
        14
    jokester  
       2015-04-13 08:42:37 +08:00
    cpio or dump
        15
    zhttty  
       2015-04-13 09:08:10 +08:00 via Android
    某宝硬盘对拷机~
    yaxin
        16
    yaxin  
       2015-04-13 09:25:13 +08:00
    驱动,windows下这么做会蓝屏
    snnn
        17
    snnn  
       2015-04-13 09:35:06 +08:00
    上面说的这些都不靠谱。

    首先,dd是最不靠谱的。dd要求硬盘的物理参数完全一样。

    其次,就算你用tar或者dumpfs这样的方式搞过去了。比较现代的linux发行版,都会把uuid写入到配置文件以及启动镜像中。你确保你有能力把这些东西都改对了,否则根本就启动不了,最常见的会挂在mount root filesystem的时候。
    9hills
        18
    9hills  
       2015-04-13 09:39:45 +08:00 via iPhone
    DD 我个人感觉很靠谱
    jokester
        19
    jokester  
       2015-04-13 09:48:42 +08:00
    @snnn 人gentoo都装好了, 未必不会改uuid..
    ryd994
        20
    ryd994  
       2015-04-13 10:06:06 +08:00 via Android
    @snnn dd只要源比目标小就行,然后resize
    源比目标大的话先resize
    大家都是过来人,别一句都不靠谱,一棍子打死一群人
    ilotuo
        21
    ilotuo  
       2015-04-13 10:17:49 +08:00 via Android
    这个我试过 重装一个相同的系统。
    把 etc usr home 复制过去 就ok了。
    我经常放假回家就是带块硬盘回去。
    不过我是两台都是amd 。所以软件都能兼容吧
    fangdingjun
        22
    fangdingjun  
       2015-04-13 10:19:40 +08:00
    这事我干过,用rsync或cp,
    完了之后装一下grub就好了

    做成了脚本,生产线上用这个方法一天装好几百台系统。
    zhjits
        23
    zhjits  
       2015-04-13 10:24:34 +08:00
    不是直接 tar 过去然后 grub 一下么
    TankyWoo
        24
    TankyWoo  
       2015-04-13 10:27:23 +08:00
    我的gentoo从12年到现在,各种迁移,都是用的rsync同步后,chroot进去装grub
    weyou
        25
    weyou  
       2015-04-13 10:37:00 +08:00
    dd可以的, 最近才把物理硬盘dd到虚拟硬盘,完全没有问题。 你这个应用场景差不多。
    halczy
        26
    halczy  
       2015-04-13 10:48:03 +08:00 via iPhone
    DD没问题,不要乱说不靠谱。先用GParted之类的把分区调到120GB。再用DD全盘烤。
    huangzxx
        27
    huangzxx  
       2015-04-13 11:03:30 +08:00
    我是 tar 过去,然后 chroot 装 grub,改 fstab
    lu18887
        28
    lu18887  
       2015-04-13 11:58:02 +08:00
    越底层的方法要求对设备的一致性要求越高,出了问题要改的地方也比较难!建议从上层一点的级别来做DD没试过
    Havee
        29
    Havee  
       2015-04-13 12:23:39 +08:00
    1. dd,uuid改下
    2. cpio,uuid改下以及引导(grub or syslinux)装下

    dd最快,cpio其次,tar 或 cp 比较慢
    oOpaopaoOo
        30
    oOpaopaoOo  
       
    硬盘对刻吧
    julypanda
        31
    julypanda  
       2015-04-13 12:44:58 +08:00
    clonezilla
    chooperchang
        32
    chooperchang  
       2015-04-13 12:47:57 +08:00
    我是arch,挂载上移动硬盘后从根目录tar,当然,排除挂载点。
    换硬盘后用liveCD引导再tar回去,只有链接efi变量要手动操作,chroot后再手动修改下grub修复引导就好了。
    caiya21
        33
    caiya21  
       2015-04-13 13:16:40 +08:00
    个人感觉是引导会出问题吧
    phoeagon
        34
    phoeagon  
       2015-04-13 13:47:49 +08:00
    @snnn uuid很容易改啊。我把系HDD移到SSD就是拷文件,改fstab再修grub
    TinyBBC
        35
    TinyBBC  
       2015-04-13 14:51:53 +08:00
    clonezilla必须的,只要保证160G的已用空间在120以下,基本上一定成功。
    ncisoft
        36
    ncisoft  
       2015-04-13 14:58:36 +08:00
    gparted
    kumu
        37
    kumu  
       2015-04-13 15:00:11 +08:00
    rsync 同步,然后 grub-install 安装 grub 即可
    likuku
        38
    likuku  
       2015-04-13 15:20:00 +08:00
    liveCD + tar / rsync 再 chroot 到新硬盘,grub 重装到新硬盘,完毕。

    参考:

    copy完整一个系统或硬盘 - V2EX :
    t/69016
    mybin
        39
    mybin  
       2015-04-13 16:13:16 +08:00
    @cattyhouse grub多大个事,chroot过去grub-install就行了。
    我也刚换SSD没多久,LiveUSB进去直接tar,跳过不需要备份的,记得保留权限,最后chroot装grub更新cfg。uuid改下就好。
    snnn
        40
    snnn  
       2015-04-13 18:10:47 +08:00   1
    @zhjits 高版本的linux,initram要重新生。
    poke707
        41
    poke707  
       2015-04-13 20:36:27 +08:00
    衍生个问题,现有AB两个硬盘,A是linux,/和/home两个分区;B是数据盘,若干个分区,无OS
    如果想把A的根分区DD到B的一个空分区,令B硬盘能单独启动linux而不影响现有分区,需要如何操作?
    nightcat
        42
    nightcat  
       2015-04-13 20:44:17 +08:00
    I just do this a week ago,with gparted,copy and paste,then grub-install and grub-mkconfig,so easy.
    xieyudi1990
        43
    xieyudi1990  
       2015-04-14 10:55:39 +08:00 via iPhone
    直接整盘dd照理说要调整分区参数 (mbr, pbr, gpt不熟不过应该类似).

    我有几次整块硬盘重新分区的经历 (保留原来的系统). 我习惯先用tar cvpf从/做个镜像备份到移动硬盘, 然后分区, 再用U盘启动, 将新的空白分区mount, 然后tar xvpf恢复镜像, 最后chroot进去更新grub以及fstab的的uuid.

    其实整个过程和恢复Windows一样, 基本就是三步: 备份, 还原, 启动.
    holinhot
        44
    holinhot  
       2015-04-14 11:03:27 +08:00
    dd
    frozenfall
        45
    frozenfall  
       2015-4-14 11:56:39 +08:00
    用再生龙,和WINDOWS下的ghost一样,我用来批量回复公司的服务器产品
    archbishop
        46
    archbishop  
       2015-04-15 13:12:29 +08:00
    clonezilla解救你
    notgood
        47
    notgood  
       2019-10-01 22:34:57 +08:00
    @nikolai
    @ryd994
    @fangdingjun
    @TankyWoo
    @kumu
    @likuku 各位大佬, 请问我想直接克隆 VPS A 的系统 到 VPS B 上, 通过 ssh 方式来运行 rsync, 命令行这样写有问题吗? 谢谢指导;
    rsync -avz --progress --delete [email protected]:/dev/vda /dev/vda

    VPS A 和 B 都是 centos7 x64, 同步完最后需要先执行 grub2-mkconfig -o /boot/grub2/grub.cfg 再执行 grub2-install /dev/vda 吗?
    programV2
        48
    programV2  
       2019-10-06 23:30:43 +08:00 via iPhone
    @snnn 大佬,请问 initram 如何重新生成?谢谢我 用命令 dracut -f /boot/initramfs 不管用
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     898 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 21:29 PVG 05:29 LAX 14:29 JFK 17:29
    Do have faith in what you're 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