草庐IT

timeshift恢复踩坑记

nvmjom 2023-03-28 原文

Timeshift恢复踩坑记

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

​ 如果图一乐,就看完吧

​ 玩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也改回来了!

有关timeshift恢复踩坑记的更多相关文章

  1. ruby - 警告 : RubyGems 1. 找不到 2+ 索引:RubyGems 将恢复到降低性能的旧索引 - 2

    警告:找不到RubyGems1.2+索引:RubyGems将恢复到降低性能的遗留索引。如果有人能帮我解决这个问题,我会给他们50.00美元我用尽了谷歌,重新安装了所有东西。我只想做gem安装...就是这样 最佳答案 删除罪魁祸首URL。就我而言,我使用的是Centos5.4,我收到的完整错误消息是:root#geminstallrackWARNING:RubyGems1.2+indexnotfoundfor:http://rubyworks.rubyforge.org/redhat/5/GEMS/x86_64/RubyGemswil

  2. ruby - 检查点并恢复 Ruby 中的堆 - 2

    Ruby的callcc捕获当前的延续,随后可以调用它来恢复控制,但不能恢复数据。我想捕捉当前的延续以及内存的当前图像。在我看来,捕获堆应该不是很困难;我可以依赖ObjectSpace::each_object和ObjectSpace::dump_all,或Marshal.dump,或简单地Object.clone。但是,我没有看到任何直接的方法来恢复堆。理想情况下,我想遍历object_id->object映射,为每个object_id恢复对象的旧图像(并重新添加object_id如果相应的对象已经被GC'd)。不出所料,没有Ruby级别的API可以让我这样做。我想知道是否有任何我可以

  3. ruby - 无法从 `sudo bundle install` 恢复 - 2

    我错误地在我的项目上运行了sudobundleinstall,现在当我以自己的身份运行它时bundleinstall我得到了权限被拒绝的错误(如下)。我在这里尝试了说明https://github.com/bundler/bundler/blob/master/ISSUES.md#other-problems,还尝试将我的项目克隆到一个新目录并从那里运行bundle,但没有用。请帮忙!error:cannotopen.git/FETCH_HEAD:PermissiondeniedRetryinggitfetch--force--quiet--tags"/home/akonsu/.bun

  4. camille mumu 模拟器 frida 踩坑记录 - 2

    1.了解监管机构已经卷到需要监控进程了,为了跟上通报步伐查了下资料,打算浅试一下camille,依据原作的文档初步了解到需要python3、adb、frida、模拟器(木木-已成功、夜神)、root手机,开始逐个尝试,记录一下所遇到的情况。 原作祭上:camille/use.mdatmaster·zhengjim/camille·GitHubhttps://www.cnblogs.com/zhengjim/p/15508738.html2.PythonPython38、pip更新电脑中如果有多个python环境的,记得改好名哦,不然会报错,我是配置了环境变量然后让38的置顶pip如果久没用了也

  5. ruby-on-rails - 如何恢复/撤消对 Activerecord 对象的本地更改? - 2

    有没有办法撤消/恢复对Activerecord对象的任何本地更改。例如:user=User.firstuser.name#"Fred"user.name="Sam"user.name_was#"Fred"user.revertuser.name#"Fred"我知道我可以执行user.reload但我不必访问数据库来执行此操作,因为旧值存储在对象的状态中。最好是Rails3解决方案。 最佳答案 如thisanswer中所述Rails4.2在ActiveModel::Dirty中引入了restore_attributes方法:user=

  6. ruby - 恢复 Rails 3's Bundle Install Path... It' s 现在安装在我的根目录中 - 2

    我在尝试安装vestal_versions插件时做了一些事情,最终在我的应用程序的根目录中创建了一个vestal_versions目录,内容如下:-Application-APP-DB-vestal_versions-ruby-1.8-bin-cache-doc-gems-specifications如果删除哪个会阻止应用程序运行...我如何更新bundle以将所有这些东西安装在正确的位置,我认为这是在应用程序之外? 最佳答案 bundleinstall使bundler将gem安装在相应的目录中。正在运行bundleinstall-

  7. 【修电脑】VMware 从GHO文件备份恢复Win10/Win7系统 - 2

    【修电脑】VMware从GHO文件备份恢复Win10/Win7系统注意参考硬盘知识一、硬盘接口的分类二、硬盘的分类按照硬盘材质分为两大类按照接口类型区分boot启动知识LegacyBIOS引导uefi引导启动流程查看系统的引导启动方式1.VMware新建win10x64系统2.制作老毛桃U盘winpe3.VMwarewin10从winpe老毛桃U盘启动4.GHO文件还原系统(失败,勿复现)5.GHO转vmdk6.成功实现经验总结注意本文仅供参考学习,任何因阅读者操作导致的数据损失和破坏,本文作者概不负责!参考GHOST文件如何导入虚拟机硬盘知识一、硬盘接口的分类硬盘接口通常分为五种类型:SAT

  8. javascript - JQuery BlockUI 鼠标加载光标不会在 Google Chrome 中恢复为默认值 - 2

    我的JQueryBlockUI鼠标加载光标在服务器响应后返回到FF中的默认光标,但在GoogleChrome中没有返回到默认光标,给人的印象是元素仍在加载。鼠标小Action。如何解决? 最佳答案 这是一个已知的Chromebug.当您访问该链接时,系统会建议一些解决方法。 关于javascript-JQueryBlockUI鼠标加载光标不会在GoogleChrome中恢复为默认值,我们在StackOverflow上找到一个类似的问题: https://sta

  9. javascript - angular js 在 watch 语句中恢复范围属性的更改 - 2

    我有一个选择框,当它发生变化时会触发一个httpPUT。html:js:$scope.$watch('color',function(newValue,oldValue){$http.put('...',{color:newValue})});问题是,如果http请求因任何原因失败,我希望选择框恢复到它以前的值。$scope.$watch('color',function(newValue,oldValue){req=$http.put('...',{color:newValue})req.error(function(){$scope.color=oldValue//willprob

  10. javascript - 视频结束后暂停和恢复光滑的 slider - 2

    我有一个slick.js包含视频的slider,我希望slider在到达视频幻灯片后暂停,并在视频结束而无需用户交互后恢复循环。我可以让此功能与循环中的第一个视频一起使用,但在第二个视频幻灯片上,一旦视频完成,slider将不会恢复。Fiddle我有一个控制台日志,它会在视频完成时写出,但在第二个视频完成后它不会说任何内容。我相信它没有看到播放光滑slider的功能。functionmyHandler(e){console.log('VideoComplete')$('.sliderMain').slick('slickPlay');} 最佳答案

随机推荐