Fedora40系统中,利用Timeshift进行备份和崩溃还原

746 阅读8分钟

安装完毕Fedora40操作系统后,如果需要以后备份或者还原,需要进行如下步骤的设置:

1、下载timeshift-22.11.2-3.fc40.x86_64.rpm文件,点击转到 文件下载地址 ,下载指定版本为了防止以后timeshift升级后版本无法兼容。

2、安装本地的timeshift包

sudo dnf install timeshift-22.11.2-3.fc40.x86_64.rpm

3、打开timeshift,进行备份设置

image.png 此处作为第一次备份系统,建议把根目录下所有的目录都选择上。
备份文件建议放在外置U盘上保存。

特别说明: 此时的纯净Fedora40系统 + Timeshift安装文件做为初次备份文件,需要着重备份保存。
因为不管是使用Timeshift或者是再生龙备份的系统,如果在系统完全崩溃,无法进入操作系统的情况下,借助Live CD还原的系统,会破坏系统的Gurd引导文件,造成系统永远无法恢复。

此时需要先还原初次备份文件,然后进入本地的Fedora40系统,再使用Timeshift恢复镜像,否则会造成Timeshift的快照永远无法还原。

下边按步骤是 制作 初次备份文件

4、导出系统分区表和lsblk记录,备份到外置U盘

lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 465.8G  0 disk
├─sda1   8:1    0     1G  0 part /boot/efi
├─sda2   8:2    0    10G  0 part /boot
├─sda3   8:3    0 142.8G  0 part /
├─sda4   8:4    0    80G  0 part /var
├─sda5   8:5    0    50G  0 part /data1
├─sda6   8:6    0    50G  0 part /data2
├─sda7   8:7    0    50G  0 part /data3
├─sda8   8:8    0    50G  0 part /home
└─sda9   8:9    0    32G  0 part [SWAP]

导出分区表
sudo sfdisk --dump /dev/sda > sda_partition_table.dump

把lsblk运行结果和分区表,保存到外置U盘

5、通过Live CD盘进入系统,使用rsync备份初次备份文件初次备份文件可保证系统无法登陆后的恢复

进入系统后首先挂载分区,我安装Fedora40系统时分区较多,需要全部挂载。

//挂载分区,顺序不可错
sudo mkdir /mnt/fedora
sudo mount /dev/sda3 /mnt/fedora
sudo mount /dev/sda2 /mnt/fedora/boot
sudo mount /dev/sda1 /mnt/fedora/boot/efi
sudo mount /dev/sda4 /mnt/fedora/var
sudo mount /dev/sda5 /mnt/fedora/data1
sudo mount /dev/sda6 /mnt/fedora/data2
sudo mount /dev/sda7 /mnt/fedora/data3
sudo mount /dev/sda8 /mnt/fedora/home

在外部移动盘中创建fedora文件备份文件夹,假设外部U盘设备路径为/live/001-002/

sudo mkdir /live/001-002/fedora

复制整个系统数据
sudo rsync -aHAX /mnt/fedora/ /live/001-002/fedora/

备份数据不可通过sudo cp 方式复制进行,会造成数据权限会丢失
还有一种方式使用tar打包,尚未测试

sudo tar -czpvf /live/001-002/backup.tar.gz /mnt/fedora/

制作完成初次备份文件,永远放在U盘备用,万一系统崩溃无法进入时,或者在新电脑安装Fedora40系统时使用。

日常的备份可使用Timeshift进行界面化的操作进行,只要能进入系统,使用Timeshift备份的快照更方便恢复,Timeshift的备份文件,建议也放到外置U盘存储。
后边的恢复操作,仅限于系统崩溃,或者在另外一台新电脑复制操作系统使用。

6、恢复数据
如果可以登录系统,就可以使用Timeshift历次快照进行恢复,如果系统崩溃无法登录,可使用Live CD进入系统,重新挂载分区,如下操作:

//挂载分区,顺序不可错
sudo mkdir /mnt/fedora
sudo mount /dev/sda3 /mnt/fedora

//先创建文件夹在挂载
sudo mkdir /mnt/fedora/boot
sudo mount /dev/sda2 /mnt/fedora/boot

sudo mount /dev/sda1 /mnt/fedora/boot/efi

//先创建文件夹在挂载
sudo mkdir /mnt/fedora/var
sudo mount /dev/sda4 /mnt/fedora/var

//先创建文件夹在挂载
sudo mkdir /mnt/fedora/data1
sudo mount /dev/sda5 /mnt/fedora/data1

//先创建文件夹在挂载
sudo mkdir /mnt/fedora/data2
sudo mount /dev/sda6 /mnt/fedora/data2

//先创建文件夹在挂载
sudo mkdir /mnt/fedora/data3
sudo mount /dev/sda7 /mnt/fedora/data3

//先创建文件夹在挂载
sudo mkdir /mnt/fedora/home
sudo mount /dev/sda8 /mnt/fedora/home

然后挂载 初次备份文件的U盘,使用如下命令恢复整个系统到初始状态。

sudo rsync -aHAX  /live/001-002/fedora/ /mnt/fedora/

运行命令如果有文字警告,请重新运行一遍。

系统恢复到初始状态后,重新启动本地系统,应该可以登录。
登录系统后,挂载日常TimeShift的外部设置备份,使用Timeshift恢复历史快照,此时还原Timeshift快照备份,在恢复时候,可自动对应每个分区,但是如果没有初次备份文件,手工选择对应分区的话,及时修补Gurb2引导区文件,也不会正常还原系统。

特别说明:在本地磁盘系统运行timeshift恢复快照时,还原界面的分区必须是系统自动对应的,手工选择对应还原无效。

image.png

下边是一些常用操作

一、格式化外部移动U盘
当使用一块U盘存储备份文件时,假如U盘有好几个区,现在需要对这个U盘进行格式化,可以使用如下命令:

sdX 需要根据lsblk命令查看 X的字母,sdX可为sda,sdb,sdc...

#进入U盘分区,格式化会清除U盘所有数据和分区表
sudo parted /dev/sdX

进入`parted` 交互界面
(parted) mklabel gpt

设置卷标名称为 uname
(parted) mkpart uname 0% 100%

退出parted
quit

格式化磁盘文件系统
# sudo mkfs.ext4 /dev/sdX1 

二、面对一台新的电脑,需要把当前已经安装很多软件的Fedora40操作系统,完全复制整个系统过去,需要进行如下步骤。

首先保证新电脑磁盘和旧电脑磁盘容量相同、新电脑磁盘上的分区表,必须和待导入的旧系统分区表完全一致。

然后使用上边第五步制作的初次备份文件,使用rsync命令,复制到到新电脑磁盘,此时新电脑上有一个兼容旧电脑Timeshift的版本,后边可借助旧电脑上Timeshift创建的快照数据,恢复已经安装的软件到新电脑上。

  1. 根据上边第四步中导出的分区表和lsblk命令结果,在新电脑上创建和旧系统一样的磁盘分区:

使用live cd 登录新电脑,然后挂载新电脑本地硬盘。

sudo parted /dev/sda 

先格式化新电脑的磁盘,此操作会清除磁盘数据和分区表
(parted) mklabel gpt 

硬盘重新进行分区,分区数字大小参考旧电脑分区
(parted) mkpart "EFI System Partition" fat32 2048s 2099199s 
(parted) set 1 boot on 
(parted) mkpart "/boot" 2099200s 23070699s 
(parted) mkpart "/" 23070720s 322459647s 
(parted) mkpart "/var" 322459648s 490231807s 
(parted) mkpart "/data1" 490231808s 595089407s 
(parted) mkpart "/data2" 595089408s 699947007s 
(parted) mkpart "/data3" 699947008s 804804607s 
(parted) mkpart "/home" 804804608s 909662207s 
(parted) mkpart "SWAP" 909662208s 976773134s '
(parted) set 9 swap on (parted) quit

格式化每个分区

#格式化引导区
sudo mkfs.vfat -F32 /dev/sda1  

#格式化其他分区
sudo mkfs.ext4 /dev/sda2 
sudo mkfs.ext4 /dev/sda3 
sudo mkfs.ext4 /dev/sda4 
sudo mkfs.ext4 /dev/sda5 
sudo mkfs.ext4 /dev/sda6 
sudo mkfs.ext4 /dev/sda7 
sudo mkfs.ext4 /dev/sda8 
sudo mkswap /dev/sda9 
sudo swapon /dev/sda9

给分区加上卷标,方便辨别
sudo e2label /dev/sda4 var 
sudo e2label /dev/sda5 data1 
sudo e2label /dev/sda6 data2 
sudo e2label /dev/sda7 data3 
sudo e2label /dev/sda8 home 

重新使用live cd启动系统,开始复制旧系统的全部文件

创建文件夹,并且挂载分区

sudo mkdir /mnt/fedora
sudo mount /dev/sda3 /mnt/fedora

sudo mkdir /mnt/fedora/boot
sudo mount /dev/sda2 /mnt/fedora/boot 

sudo mkdir /mnt/fedora/boot/efi
sudo mount /dev/sda1 /mnt/fedora/boot/efi

创建其他几个分区
sudo mkdir /mnt/fedora/var 
sudo mkdir /mnt/fedora/home 
sudo mkdir /mnt/fedora/data1 
sudo mkdir /mnt/fedora/data2 
sudo mkdir /mnt/fedora/data3 

然后挂载 
sudo mount /dev/sda4 /mnt/fedora/var 
sudo mount /dev/sda5 /mnt/fedora/data1 
sudo mount /dev/sda6 /mnt/fedora/data2 
sudo mount /dev/sda7 /mnt/fedora/data3 
sudo mount /dev/sda8
/mnt/fedora/home 

分区挂载完毕后,内部是空的,没有文件

现在连接上存储 初次备份文件的外部移动设备,初次备份文件是rsync备份的系统初次文件。

在live cd系统中,使用如下命令: sudo rsync -aHAX /u盘数据路径/fedora/ /mnt/fedora/

第一次运行可能有一些异常提示,第二次重复运行异常消失。 把备份文件全部恢复到硬盘的各个分区内, 然后重启系统。

此时系统从硬盘启动,如果可以正常进入本地Fedora操作系统,就可以加载Timeshift的备份快照进行恢复了。

如果此时没有正常进入fedora系统,而进入了GRUB 黑色界面,通常是因为GRUB引导加载器没有被正确配置或安装到新的系统中。

在Linux系统中,GRUB是负责启动操作系统的引导加载器,如果它没有正确指向您所恢复的Fedora系统的内核和initramfs,就会出现无法启动的情况。
如何修复GRUB,请看这篇文章:Fedora40重新安装GRUB和生成GRUB配置文件