最近电脑出现了一些故障,送修期间,不得不在实验室的台式机上重装系统,配环境的过程花费了不少时间。为避免未来处理类似事情时耗费时间,特此整理一些备份策略。
先做以下准备:
除了通过硬盘备份,Ubuntu 还有类似 Time Machine 的工具,教程将在后边介绍。
通过 lsblk
命令查看硬盘信息,假设硬盘A为 /dev/sda
,硬盘B为 /dev/sdb
。
dd
或 ddrescue
进行数据拷贝dd 是主要用于低级别的数据复制和转换。
使用dd
命令拷贝数据:
dd if=/dev/sda of=/dev/sdb bs=4M status=progress
参数说明:
if
:输入文件(硬盘A)of
:输出文件(硬盘B)bs
:块大小,建议设置较大以提高拷贝速度status
:显示拷贝进度ddrescue 是一个专门用来从损坏的硬盘、光学介质或其他损坏的存储设备中尽可能多地恢复数据的高级工具。它比 dd 更智能、更有效率,适合用于数据恢复工作。
使用 ddrescue
命令进行断点续传:
ddrescue -f /dev/sda /dev/sdb rescuefile.log
-f
:强制覆盖目标硬盘dd
这类命令会完全拷贝硬盘,包括分区的 UUID 信息。为避免潜在的 UUID 冲突,可对新设备进行修改。
假设系统盘挂载在 /dev/sdb2
,使用 tune2fs
命令修改 UUID:
tune2fs /dev/sdb2 -U random
通过 blkid
查看修改后的 UUID:
sudo blkid /dev/sdb2
修改后,直接重启系统还会遇到 UUID 识别失败问题。此时,需更新 /etc/fstab
文件中的UUID设置。
mkdir /mnt/mydisk
mount /dev/sdb2 /mnt/mydisk
mount --bind /dev /mnt/mydisk/dev
mount --bind /proc /mnt/mydisk/proc
mount --bind /sys /mnt/mydisk/sys
chroot /mnt/mydisk
/etc/fstab
和更新 grub编辑 /etc/fstab
文件中的 UUID,然后更新 grub:
nano /etc/fstab
update-grub
chroot
环境并卸载硬盘exit
umount /mnt/mydisk/dev
umount /mnt/mydisk/proc
umount /mnt/mydisk/sys
umount /mnt/mydisk
完成上述步骤后,重启系统即可。
硬盘大小相同:直接使用 dd
完全拷贝即可。
硬盘A 比硬盘B 小:
dd
拷贝后,通过 gparted
扩大硬盘B的分区,调整 /dev/sdb
及其子分区的大小。硬盘A 比硬盘B 大,但使用量更少:
gparted
缩小硬盘A的分区,再使用 resize2fs
调整文件系统大小:resize2fs /dev/sdb1
此外,对于第三种情形,实测在 dd
拷贝过程中终止,且拷贝量大于硬盘A的实际使用量时,也可以正常使用,不需要额外的调整操作。
操作完成后,建议使用 e2fsck
检查文件系统的完整性:
e2fsck -f /dev/sdb
通过以上步骤,你可以高效、安全地完成硬盘之间的数据迁移和备份。
Timeshift 是一个功能强大的工具,可以在 Ubuntu 系统上实现类似于 Mac 的 Time Machine 的备份功能。以下是如何安装和使用 Timeshift 进行系统备份和恢复的详细步骤。
sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install timeshift
安装完成后,运行 Timeshift 配置向导:
sudo timeshift-gtk
按照向导的指引进行设置:
在 Timeshift 主界面中,点击“创建”按钮手动创建系统快照。这可以在需要进行重大系统更改前手动备份当前系统状态。
当系统出现问题时,可以使用 Timeshift 恢复到之前的快照:
如果需要将系统恢复到一个新的硬盘上,请按照以下步骤操作:
在 live 环境下,打开终端并安装 Timeshift:
sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install timeshift
运行 Timeshift:
sudo timeshift-launcher
恢复完成后,需要在新硬盘上安装引导程序(GRUB)。假设新的硬盘是 /dev/sdb
,可以执行以下命令:
sudo mount /dev/sdb1 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-install /dev/sdb
update-grub
exit
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev
sudo umount /mnt
完成这些步骤后,你应该能够从新的硬盘启动系统。
–
以上。