nvmjom  

Timeshift恢复踩坑记

​ 由于情绪比较激动,所以大部分都是我描述自己心路历程的废话,想看看我怎么莫名其妙又(并没有完全)解决了问题的话,直接目录->莫名其妙成功解决问题的办法,希望能够帮到你

​ 如果图一乐,就看完吧

R-C

​ 玩Linux就是折腾。以前玩过几次ArchLinux,系统崩过几次,长了教训,于是装了Timeshift做Rsync的备份,想着有个万一还有救。只是没想到,这一次,万一来了,还是出了状况。

​ 现在用的是Deepin V20,稳定性也还可以,界面也挺好看的,虽然偶尔会卡一下,不过倒不是什么大问题。但是当初装系统的时候留了个问题,分区给的太小了。。。总共给了60GB,如果只是玩玩应该也够了,问题就出在我是把Linux作为常用开发环境的,Windows也就周末打游戏用用。终于,就在昨天,这个问题爆发了。

​ 昨天,我的系统盘还是52/60GB,但我因为开发需要,需要在Linux下装Vivado。看着80多个G的安装包,我陷入了沉思。那总得搞啊,,,想了想,反正有备份,所以决定大胆尝试,扩容后重装系统再恢复回来,于是我先进行了下面的操作:

  • 用做Timeshift做最后一次备份
  • 从我的ntfs放游戏的分区割了45G下来,把之前闲置的30G分区给删了,然后把Linux系统盘格式化了。三个盘加起来135G,看起来差不多够了
  • 之前下了20.7.1的Deepin镜像拷贝进我的Ventoy U盘,装系统
  • 新系统装Timeshift,恢复!

​ 好,到这里为止我觉得应该会一切顺利,因为以前Deepin系统更新然后各种bug,我用Timeshift恢复,一切正常,然后开开心心等到bug fixed版本出了再快快乐乐更新的经历。但是!!!这次重启以后居然。。。进不了桌面了。。。

当时我的心情真是一万只草泥马奔腾而过QAQ

让我稍感安慰的是,按Ctrl+Alt+2还能切到命令行,还能进系统,不是完全炸了

但是,人生就是大起大落大起大落落落,正当我打算使用老办法(因为以前出现过更新后进不了桌面的类似情况),重装dde的时候,我看到了Read Only Filesystem bla bla bla,哦,G

我人傻了,为毛线会变成只读系统了。。。

好吧,虽然我很急但先别急

我决定先冷静一下,查查看还也没有救

万能的度娘(虽然实际上用的是bing)告诉我,运行mount看看系统分区的末尾挂载信息里面是不是有ro

我一看,有

然后她告诉我,umount,再mount成rw,问题就解决了

然后我试了,没用。。。

命令行告诉我,正挂着呢别挂了!

???

我不是umount了吗

然后我仔细看了看,发现一件事,度娘给的例子都是其它盘只读了,好像还没见过根目录的盘只读的。。。

握草

不会根目录没法umount吧

好吧,这条路是g了

又查,激动的发现曾经也有个老哥重装系统,也用timeshift恢复,然后进不了系统

但他的问题是以前的timeshift有点小bug,分区的UUID对不上,所以开不了,但我也不是进不了系统,我是进不了桌面还文件系统只读,以后想命令行用都不成啊。。。

莫名其妙成功解决问题的方法

​ 好吧,度娘已经救不了我了,我决定靠自己。

​ 冷静分析一下,我进入系统以后,自己看起来是没法umount自己了(系统文件都在根目录,我想umount根目录确实不靠谱,好比你不能自己开了自己吧。。。) ,那么问题来了,最开始是哪个老6埋伏了我,把系统盘挂成了ro(read only)???

​ 好像是grub

​ 所以,在刚开机进入引导页面的时候就已经决定我能不能正常进入系统了。

​ 于是,我重启了电脑,在引导界面我看到底部有一行贴心的小字:

...按E编辑...

​ 于是我把选项移到Deepin上,然后按了E,我发现在启动命令里面,还真有个ro:

	load_video
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_gpt
	insmod ext2
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root  fb15abff-15b2-4941-b972-3a79267455cb
	else
	  search --no-floppy --fs-uuid --set=root fb15abff-15b2-4941-b972-3a79267455cb
	fi
	linux	/boot/vmlinuz-5.15.77-amd64-desktop root=UUID=fb15abff-15b2-4941-b972-3a79267455cb ro splash quiet  DEEPIN_GFXMODE=$DEEPIN_GFXMODE
	initrd	/boot/initrd.img-5.15.77-amd64-desktop
	boot 

​ 我怀疑就是这个ro害的我进不去桌面!

​ 于是我把ro改成rw,然后,我成功进入桌面了

​ 这一段内容在/boot/grub/grub.cfg里面,这个文件记录了所有的efi启动的配置,挂载在这个目录的是EFI分区,我把里面所有的ro都改成rw,于是怎么启动都能进桌面了!!!

6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666

后记

​ 虽然这样莫名奇妙的解决了,但还是要复盘一下

​ 改完之后虽然能进桌面了,但在加载系统的时候按Esc还是能看到有一项挂载的任务出错了,应该正常情况下就是这一项任务把最开始ro挂载的系统盘改成rw。这项任务挂了,进入系统也就看到了ro(但,纯属瞎猜)。只能说通过这种神奇的操作,弥补了这一个任务。

​ 好吧,虽然落下了Deepin开机从十几秒到几十秒的后遗症,但好歹能正常使用了。

​ 血的教训啊QAQ

​ 尝试有风险,瞎搞需谨慎

​ 这个故事告诉我们,不管怎么瞎搞,一定要先做好备份,至少还有恢复的机会!!!

根据昨天发生在我自己身上的真实故事写的真实故事,对于技术上我瞎搞的部分,如果有大佬路过知道是怎么回事,敬请批评指正!

22.12.25更新

开机太慢了,开一次电脑非得给我1分半搞满,受不了了,还是找找方法

先上网查了一下Linux开机的全过程

查完我就发现问题在哪儿了:通过intrid重新挂载系统盘出错了!(虽然之前Esc也能看到知道出错,但不知道为啥)

而启动时的挂载信息都在/etc/fstab中,打开发现UUID不对

难怪挂载失败,因为UUID不对,找不到对应的盘,当然也就挂不上!

于是运行blkid命令查找UUID,然后就成功了

之前消失的swap也改回来了!

posted on 2022-12-14 11:05  nvmjom  阅读(1909)  评论(1编辑  收藏  举报