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

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

  •  1
     
  •   viator42 · 2015-04-12 23:43:48 +08:00 · 29609 次点击
    这是一个创建于 3512 天前的主题,其中的信息可能已经有所发展或是发生改变。
    原来有一块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  
       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
    zhttty
        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  
       2015-04-13 12:35:35 +08:00
    硬盘对刻吧
    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 :
    https://www.v2ex.com/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-04-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   ·   实用小工具   ·   2788 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:44 · PVG 22:44 · LAX 06:44 · JFK 09:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.