Linux 快速备份系统

2019-04-11 01:49:15 +08:00
 xcaptain

我有一台 xps 15 9570 的笔记本,512G 硬盘,因为硬盘不够用所以买了一块 1T 的西数 SSD,费了一晚上时间把原有的数据备份到新硬盘,现在分享一下踩过的坑,希望能帮到有需要的人

我总共尝试了 3 种方法:

  1. dd
  2. tar
  3. rsync

第一种 dd 是直接拷贝硬盘,速度极快我观察到的平均速度有 800M/s,但是生成的新硬盘大小变为 400G 了,还不好调整分区大小,所以我到这一步就放弃了

接下来尝试了 tar,照着 https://www.cnblogs.com/skynext/p/4023117.html 这篇文章操作的,速度比较慢,估计 100M 的速度吧,大概花了 1 小时同步完 400G 数据,不过同步完数据之后我重启系统发现不能引导新的硬盘,所以又格式化了

最后才意识到是引导的问题,但是又不想花 1 小时去复制数据,所以从网上找了一个 rsync 的命令,https://www.ostechnix.com/backup-entire-linux-system-using-rsync/ 照着做了一下速度还挺快,20 多分钟就把 400G 数据同步完了,接下来要做的就是修复引导

mount /dev/sda3 /mnt/
mount /dev/sda1 /mnt/boot
arch-chroot /mnt
编辑 /etc/fstab,修改对应分区的 uuid,可以通过 blkid 命令查看
# 生成 efi 文件
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
# 生成 ramfs
mkinitcpio -p linux

# 生成新的 grub.cfg 文件,生成完之后检查一下对应启动盘的 uuid 是否正确
grub-mkconfig -o /boot/grub/grub.cfg

以上操作执行完就得到了一块可引导的,包含完整数据的备份硬盘了,接下来设置 bios,给这块新银盘添加一个引导记录,开机按 F2 进入 bios,找到 boot sequence,添加一个 UEFI 引导记录(找到对应的 efi 文件,/boot/EFI/GRUB/grubx64.efi),然后保存开机就能进入了。

9553 次点击
所在节点    Linux
26 条回复
Bardon
2019-04-11 07:04:45 +08:00
cpio
wtks1
2019-04-11 07:25:27 +08:00
其实有一款叫再生龙的 linux 备份软件
chinesestudio
2019-04-11 07:40:08 +08:00
@wt clonezilla
neosfung
2019-04-11 08:02:13 +08:00
再生龙是我还在用的台湾软件
ys0290
2019-04-11 08:05:19 +08:00
进帖子前第一反应,clonezilla,不错的
cxh116
2019-04-11 08:43:40 +08:00
我直接用 cp -a 命令,新硬盘分好区,挂载,每个分区执行 cp 拷文件,改 fstab,改引导。1 小时就从 128g 的 ssd 换成 256g 的 ssd,顺便还完美的扩展分区的大小。
msg7086
2019-04-11 08:52:36 +08:00
一般就是
1. 建分区
2. rsync 复制文件
3. 修引导
Tink
2019-04-11 08:59:02 +08:00
其实 dd 可以的
itabas016
2019-04-11 09:03:17 +08:00
clonezilla 的 beginner 模式简直就是一键傻瓜式操作🙈
xcaptain
2019-04-11 09:13:14 +08:00
@msg7086 是的,这应该是最简单最安全的备份方式了
xcaptain
2019-04-11 09:22:35 +08:00
dd 和 tar 我是在 livecd 下操作的,因为如果是当前系统应该没法 dd 正在用的这块硬盘到一个新的硬盘吧(没测试过)

rsync 不用在 livecd 下操作,在当前系统给新硬盘分区挂在然后同步数据就行,不用在黑呼呼的 livecd 界面操作更有安全感
修改 /etc/fatab 的时候一定要用 uuid 标识分区,因为换了硬盘接口之后硬盘名可能就不叫 /dev/sda 了,另外每次格式化分区之后对应的 uuid 会变,所以要及时更新到 fatab

重新生成 cpio 是必要的,系统会解析不了 fstab 里面定义的分区

硬盘分区推荐使用 gpt 因为引导真是非常方便,直接复制 /boot 分区然后生成 grub 就行,不像 mbr 有个 512 字节的引导分区不好复制
xcaptain
2019-04-11 09:25:37 +08:00
@cxh116 如果是在当前系统备份的话应该要忽略掉一些如 /sys/dev/run 之类的目录,这些临时文件复制到了也没用
Mithrandir
2019-04-11 09:30:10 +08:00
aa514758835
2019-04-11 09:32:52 +08:00
如果是硬盘对拷的话你可以尝试 ghost,盘对盘拷贝,
yuhr123
2019-04-11 10:23:37 +08:00
硬盘对靠直接用 PE 的 diskginues 就可以,无需修复引导。

另外,大家说的再生龙 Clonezilla 也很好用。

还有 fsarchive 也很理想。
momocraft
2019-04-11 10:37:25 +08:00
用基于文件的工具转移根分区总让我觉得不安,害怕丢什么文件系统属性..

文件系统自带的转移安心点,如 btrfs snapshot/send/receive
xcaptain
2019-04-11 10:58:19 +08:00
大功告成

![最终图]( )
xcaptain
2019-04-11 11:00:07 +08:00




zeroDev
2019-04-11 13:19:45 +08:00
yulgang
2019-04-11 13:35:22 +08:00
@xcaptain dd 之后,使用 resize2fs 可以扩大分区吧,比如 resize2fs /dev/sda3

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/553920

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX