技术解析

把一块硬盘上的 Linux 系统整个复制到新硬盘上的方法.
0
2021-07-02 15:20:13
idczone
原来有一块160G的硬盘做系统盘,装的是gentoo.现在入了一块120G的SSD,想把系统整个复制到新硬盘上,有什么可行的方案吗?
gentoo这种折腾货真的不想装第二回了.
参考kvm xen 模版制作

dd

G4L

dd呀,不过驱动会出问题吧

http://www.gentoo-wiki.info/HOWTO_Custom_Stage4

先resize缩到120G以下(越小越好)
然后直接dd过去
再resize到最大

dd 或 rsync

心中默念 “一切皆文件”

rsync的话要注意引导和fstab等

cp -a

楼上的你们都把引导文件给无视了?直接复制过去是没有grub的,根本启动不了。
官方有wiki,善用搜索。
http://www.gentoo-wiki.info/HOWTO_Move_Gentoo_Installation_to_new_hard_disk

clonezilla之类的?

dd 或者pe里的ghost

cpio or dump

某宝硬盘对拷机~

驱动,windows下这么做会蓝屏

上面说的这些都不靠谱。
首先,dd是最不靠谱的。dd要求硬盘的物理参数完全一样。
其次,就算你用tar或者dumpfs这样的方式搞过去了。比较现代的linux发行版,都会把uuid写入到配置文件以及启动镜像中。你确保你有能力把这些东西都改对了,否则根本就启动不了,最常见的会挂在mount root filesystem的时候。

DD 我个人感觉很靠谱

人gentoo都装好了, 未必不会改uuid..

dd只要源比目标小就行,然后resize
源比目标大的话先resize
大家都是过来人,别一句都不靠谱,一棍子打死一群人

这个我试过 重装一个相同的系统。
把 etc usr home 复制过去 就ok了。
我经常放假回家就是带块硬盘回去。
不过我是两台都是amd 。所以软件都能兼容吧

这事我干过,用rsync或cp,
完了之后装一下grub就好了
做成了脚本,生产线上用这个方法一天装好几百台系统。

不是直接 tar 过去然后 grub 一下么

我的gentoo从12年到现在,各种迁移,都是用的rsync同步后,chroot进去装grub

dd可以的, 最近才把物理硬盘dd到虚拟硬盘,完全没有问题。 你这个应用场景差不多。

DD没问题,不要乱说不靠谱。先用GParted之类的把分区调到120GB。再用DD全盘烤。

我是 tar 过去,然后 chroot 装 grub,改 fstab

越底层的方法要求对设备的一致性要求越高,出了问题要改的地方也比较难!建议从上层一点的级别来做····DD没试过

1. dd,uuid改下
2. cpio,uuid改下以及引导(grub or syslinux)装下
dd最快,cpio其次,tar 或 cp 比较慢

硬盘对刻吧

clonezilla

我是arch,挂载上移动硬盘后从根目录tar,当然,排除挂载点。
换硬盘后用liveCD引导再tar回去,只有链接efi变量要手动操作,chroot后再手动修改下grub修复引导就好了。

个人感觉是引导会出问题吧

uuid很容易改啊。我把系統從HDD移到SSD就是對拷文件,改fstab再修grub

clonezilla必须的,只要保证160G的已用空间在120以下,基本上一定成功。

gparted

rsync 同步,然后 grub-install 安装 grub 即可

liveCD + tar / rsync 再 chroot 到新硬盘,grub 重装到新硬盘,完毕。
参考:
copy完整一个系统或硬盘 - V2EX :
https://www.v2ex.com/t/69016

grub多大个事,chroot过去grub-install就行了。
我也刚换SSD没多久,LiveUSB进去直接tar,跳过不需要备份的,记得保留权限,最后chroot装grub更新cfg。uuid改下就好。

高版本的linux,initram要重新生。

衍生个问题,现有AB两个硬盘,A是linux,/和/home两个分区;B是数据盘,若干个分区,无OS
如果想把A的根分区DD到B的一个空分区,令B硬盘能单独启动linux而不影响现有分区,需要如何操作?

I just do this a week ago,with gparted,copy and paste,then grub-install and grub-mkconfig,so easy.

直接整盘dd照理说要调整分区参数 (mbr, pbr, gpt不熟不过应该类似).
我有几次整块硬盘重新分区的经历 (保留原来的系统). 我习惯先用tar cvpf从/做个镜像备份到移动硬盘, 然后分区, 再用U盘启动, 将新的空白分区mount, 然后tar xvpf恢复镜像, 最后chroot进去更新grub以及fstab的的uuid.
其实整个过程和恢复Windows一样, 基本就是三步: 备份, 还原, 启动.

dd

用再生龙,和WINDOWS下的ghost一样,我用来批量回复公司的服务器产品

clonezilla解救你






各位大佬, 请问我想直接克隆 VPS A 的系统 到 VPS B 上, 通过 ssh 方式来运行 rsync, 命令行这样写有问题吗? 谢谢指导;
rsync -avz --progress --delete [email&/dev/vda
VPS A 和 B 都是 centos7 x64, 同步完最后需要先执行 grub2-mkconfig -o /boot/grub2/grub.cfg 再执行 grub2-install /dev/vda 吗?

大佬,请问 initram 如何重新生成?谢谢
数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服