问题描述
- 这两天因为系统的自动更新显卡驱动,导致不能使用两块显卡驱动,我就想直接恢复一下没更新之前的镜像,然后选择了最近的7-11的镜像进行恢复,重启之后发现报错了,报系统不兼容,具体如下。
end Kernel panic - not syncing:VFS:unable to mount a unknown-block
- 内核问题,系统无法挂载根文件系统,有可能因为分区文件在恢复的过程中被破坏了,没有成功备份。除此之外,还有可能是因为磁盘空间不够,因为linux系统每一次更新都会将原来的内核版本保存,所以系统会同时拥有多个版本了。默认情况下,Ubuntu会将旧的内核添加到Grub2启动加载菜单中。可以运行如下的指令,看一下拥有多少内核版本。
- 运行如下指令
dpkg --list | grep linux-image
-
本来在重启过程中能够看到很多操作系统,恢复早期镜像之后看到的更少了。这里更新了三个系统内核,在更新的过程中,显卡驱动和内核就不兼容了,然后就不能同时运行两个显示屏了
-
比起重装一个显卡驱动,明显直接恢复镜像更加方便,我打开timeshift,看到如下镜像,选了最新的镜像,然后进行恢复,然后重启,就进入到了上面那张图的困境,没有办法启动。
-
然后断电重新启动,选择带有advanced选项,选择可以使用的内核版本,具体如下,这里用了别人的图
- 看到可选的内核版本,然后逐个进行试验即可,哪个能进点哪个。
- 进去之后,我就恢复了4月份的镜像,就到了目前这种情况。
问题解决
TimeShift的具体使用
-
备份保存地址
- 需要将系统的快照保存在系统硬盘之外的单独的存储卷上,我是保存在我额外买的固态硬盘上。
-
两种快照类型RSYNC和BTRFS
- RSYNC快照:
- 可以在任何地方保存数据,如果原始磁盘发生了不可恢复的错误,可以使用这个这个备份进行完全恢复。
- 使用rsync和硬链接进行备份,不同备份之间会共享公共文件,节省空间。
- 备份时间比较长,因为是增量备份
- 可以使用文件浏览器进行查看的完整系统备份
- BTRFS
- 是使用BTRFS文件系统的内嵌特征,仅支持使用Ubuntu系统
- 快照的时间更快,一秒之内就能完成。
- RSYNC快照:
-
Timeshift使用目标
- 不同于其他的esnapshot,BackInTime等系统,Timeshift系统的目的是保护系统文件和相关设置文件,不包括用户的用户个人的文档、图片以及音乐。(这里是我的问题,我总是直接把这个系统直接备份过去,也是因为我对于linux系统的文件了解的很糟糕)
- 如果要进行用户文件的备份,可以使用BackInTime,这个专门针对用户文件的备份
-
不同备份的标签
- H: Hourly
- D: Daily
- W: Weekly
- M: Monthly
- B: Boot
- O: On-demand (Manually created)
(这里说明我手动备份的可以使用,但是我设置的备份脚本就不行,还是需要看看因为什么的)
用户设置
存储位置
- TimeShift需要的设置很少,安装之后第一次运行一下,对系统备份一下。可以使用cron作业按照特定的时间对系统进行自动的快照。备份的方式自己在设置方式进行选择。
- 快照会保存在**/timeshift**路径下,你需要指定对应的路径,最好是在额外的磁盘中,不要在系统盘中。
备份计划
- 可以设定不同时间层次的备份
- boot是开机就备份,不过是开机十分钟之后在进行备份,并不会影响开机速度
快照方式选择
-
有两种方式可以选择,分别是RSYNC和BTRFS
-
RSYNC
- 通过使用RSYNC创建系统文件的副本,以及从以前的快照中硬链接未修改的文件来创建
- 在创建首个快照时,所有的文件都会被复制,后续的快照将在此基础上增加,未修改的文件会硬链接到以前的快照上
- 快照可以保存到任何一个格式化为Linux文件系统的磁盘,需要保存在非系统的外部磁盘上,即使原来的磁盘格式化了,也可以恢复系统
- 通过排除文件和目录来减少空间
-
BTRFS
- 这个快照是使用BTRFS文件系统的内嵌特征进行创建的
- 快照创建的过程是即时的,而且是文件系统层面的原子操作,不会中断
- 快照恢复是通过替换系统子卷来是实现的。因为文件不会被复制、删除或者覆盖,所以不会存在数据丢失的风险。快照恢复之后,现存的系统将保存为新的快照。
- 这个系统快照是对于系统字节级别的完美复制,不会排除任何东西
- 快照保存在原来的最初创建的磁盘上,不支持存储在别的磁盘上。如果系统盘丢失了,那么保存在系统盘上的磁盘也会丢失。
- BTRFS快照一开始的大小是零。因为系统文件会随着时间逐渐变化,新写入的数据将会占据新的磁盘空间。快照中的文件将会只想原始的数据块。
-
这里官方系统推荐是使用BTRFS,不过我用不了,而且我是备份在别的磁盘里面,所以还是选择了慢一点的RSYNC
备份数据的选择
- Timeshift一开始就是为了保护系统文件和设置而设计的,并不是一个备份工具,并不是专门保护用户数据的。用户home目录在默认情况下,并不会包含在系统中,这主要有两个优势
- 第一,当你恢复快照的时候,并不需要担心你的数据被覆盖重写
- 第二,你的home目录下方的音乐和视频文件不会浪费备份空间
- 在setting设置下方可以选择你需要备份的文件,hideen是是否需要备份所有的隐藏文件,除了root用户,不推荐备份所有的文件
- 这里是我写的,有问题,我默认是包含了所有的文件,所以我的备份文件会很多,很大,甚至有问题,所以,对于yunlong用户的文件,并不需要备份所有文件
备份恢复
- 在主窗口选择一个快照,直接点击恢复,会自动恢复到对应的系统版本
- 如果主系统直接坏了,你可以在新的计算机上,装好timeshift,然后读取对应的备份文件,就可以重建对应的系统
- 如果是在正在运行的系统中进行系统备份,那么需要重启计算机
- 选中需要备份的系统,直接进行恢复就行了
- 这里还是选择之前的内容,进行恢复一下,不过之前备份的目录有问题,包括了原有所有目录。有一些文档,还是写了挺多的,有点轴,就是要重新恢复一下,就是要看一下以前的目录,重新跳过一下。
- 头铁的我,还是失败了,启动失败,只能退出重启
- 重新进入系统,可以看到大部分的文档都已经恢复了,不过还是不能双屏幕显示,尝试卸载驱动,然后重新装,发现太费劲了,果断又还原回原始版本
- 这次还原是不包括用户的home目录,仅仅包括root用户的所有文件,所以不会删除我用户的东西,这些文件还存在。
总结
- 针对快照无法进行有效恢复的问题,其实是已经恢复了,只不过自动重启进入系统是有问题的,需要手动断电,自己进行重启,然后即可运行。手动断电,每一次都能够成功进去,但是还是不能双屏是因为七月份的几个备份都有问题,自动更新的驱动和内核不兼容,所以运行失败。
- 一定不要完全备份,完全备份占的空间大,而且自动重启还会失败,只需要对系统进行备份,也就是root用户需要备份所有文件。
- 关掉自动更新内核和驱动。这里并没有打开自动更新