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

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

  •  1
     
  •   viator42 · Apr 12, 2015 · 31393 views
    This topic created in 4224 days ago, the information mentioned may be changed or developed.
    原来有一块160G的硬盘做系统盘,装的是gentoo.现在入了一块120G的SSD,想把系统整个复制到新硬盘上,有什么可行的方案吗?
    gentoo这种折腾货真的不想装第二回了.
    48 replies  •  2019-10-06 23:30:43 +08:00
    tywtyw2002
    tywtyw2002
    Apr 13, 2015 via iPhone
    1
    参考kvm xen 模版制作
    rentaro
    rentaro
    Apr 13, 2015
    2
    dd
    manhere
    manhere
    Apr 13, 2015 via iPhone
    3
    G4L
    yanglingling
    yanglingling
    Apr 13, 2015
    4
    dd呀,不过驱动会出问题吧
    ryd994
    ryd994
    Apr 13, 2015
    6
    先resize缩到120G以下(越小越好)
    然后直接dd过去
    再resize到最大
    nikolai
    nikolai
    Apr 13, 2015
    7
    dd 或 rsync
    ericls
    ericls
    Apr 13, 2015
    8
    心中默念 “一切皆文件”
    ryd994
    ryd994
    Apr 13, 2015
    9
    @nikolai rsync的话要注意引导和fstab等
    swordfeng
    swordfeng
    Apr 13, 2015 via Android
    10
    cp -a
    cattyhouse
    cattyhouse
    Apr 13, 2015 via iPhone❤️2
    11
    楼上的你们都把引导文件给无视了?直接复制过去是没有grub的,根本启动不了。

    官方有wiki,善用搜索。

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

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

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

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

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

    参考:

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

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

    其实整个过程和恢复Windows一样, 基本就是三步: 备份, 还原, 启动.
    holinhot
    holinhot
    Apr 14, 2015
    44
    dd
    frozenfall
    frozenfall
    Apr 14, 2015
    45
    用再生龙,和WINDOWS下的ghost一样,我用来批量回复公司的服务器产品
    archbishop
    archbishop
    Apr 15, 2015
    46
    clonezilla解救你
    notgood
    notgood
    Oct 1, 2019
    47
    @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
    programV2
    Oct 6, 2019 via iPhone
    48
    @snnn 大佬,请问 initram 如何重新生成?谢谢🙏我 用命令 dracut -f /boot/initramfs 不管用
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5258 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 208ms · UTC 02:19 · PVG 10:19 · LAX 18:19 · JFK 21:19
    ♥ Do have faith in what you're doing.