一次更换机箱引发的“血案”

456 阅读6分钟

最近看自己傻大黑粗的机箱越发不顺眼了,在桌面上雄踞了“半壁江山”,碍眼又碍事,正好又看到了赵德柱的关于itx机箱的介绍视频,索性直接换个itx机箱玩玩。

其实最终没有换标准的itx机箱(10升以上自动退群/滑稽),选择了先马趣造,作为民谣爱好者,趣(去)造(躁)这名字深合我意 (其实是因为便宜)。

装完的效果

20211019_051945.jpg 为了这个小东西,付出的代价不可谓不惨痛。

“噩梦”之始

换机箱首先得换主板,将原来的ATX主板换成MATX主板,在海鲜市场逛了一圈,搞定。悲剧也从这里开始。因为主板先到手,我就想着先点亮看看。可是把CPU、内存等配件插好后,并没有成功点亮。然后开始了排查工作,经过各种清灰、擦金手指、扣电池后,依然未能点亮。但是商家又信誓旦旦地保证主板是正常的。只好继续使用排除法,把配件继续安装回老主板看看,如果没问题那就是新主板的问题。终于悲剧发生了,老主板也无法点亮。接着又是一通排查,最终将问题定位在固态硬盘上。是的,喜闻乐见的事发生了,硬盘挂了。

f11a67a1d85843238e3b4dc9282a5618_th.webp

好吧,也没有那么严重。毕竟平时还是有注意备份重要文件的,个人文档、图片都每日备份,问题应该不大。只是安装软件、系统配置这些大概是找不到了,需要重新配置。只能在以后慢慢修复了。

"我真傻,真的,我单知道要备份个人文件,不知道备份系统文件"/滑稽。

重装系统

我的PC上一共装了三个系统,windows、Ubuntu、macos,其中windows单独一个硬盘,ubuntu和macos在一个盘上。windows很少用,主要用来打游戏,平时学习工作都是用ubuntu和macos。简而言之,windows随便挂没关系,游戏重新从steam下载就行了,可惜这次挂的偏偏是另一块盘,简直肠子都毁青了。。。果然是便宜没好货,三星970 evo毫发无损,"渣土顿"nv1则坐实了“渣土”之名。

按照之前的经验,顺利重装好了黑果和ubuntu。

修复引导

  1. 修复windows引导

    1.1. 先制作pe启动盘(应该有更简单的方式,其实就是将efi引导定位到windows目录)。

    下载了好几个pe都不能用,不知道是姿势不对还是啥问题。最后找到个有用的。 cloud.189.cn/web/share?c… ((访问码:gx8p)

    1.2. 在ubuntu上安装woeusb-ng

    sudo apt-get install python3-pip
    sudo pip3 install WoeUSB-ng
    

    1.3. 用woeusb-ng制作pe启动盘

    Screenshot from 2021-10-12 03-06-39.png

    1.4. 修复windows引导

进入pe系统,用uefi引导修复工具配合分区工具生成efi引导文件。

点击uefi引导修复 IMG_20211017_000752.jpg

打开分区工具 MVIMG_20211017_000859.jpg

选择一个efi分区,如果没有就创建一个
MVIMG_20211017_000910.jpg

定位到windows目录 MVIMG_20211017_000939.jpg

搞定。 重启则会发现多了一个uefi引导项。点击这个新的引导项即可进入windows。

  1. 修复grub并美化

使用 boot-repair 工具

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt install -y boot-repair

安装完之后,运行命令会调起交互界面

boot-repair

Screenshot from 2021-10-19 07-22-39.png

选择Recommended repair即可。

美化grub,效果如下

MVIMG_20211017_001105.jpg

主题库

去主题库下载主题,解压,执行install.sh即可。

但有时我们需要添加自定义的图标,比如我这里的macos就是自定义的图标,默认不支持。网上的方案大多是修改/boot/grub/grub.cfg',但是这会在运行update-grub后失效。

可以修改/etc/grub.d/proxifiedScripts/custom,如果没有这个文件可以安装grub-customizer添加entry,然后再修改这个文件。

menuentry "macos" --class macos {
	insmod part_gpt
	insmod fat
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root  67E3-17ED
	else
	  search --no-floppy --fs-uuid --set=root 67E3-17ED
	fi
	chainloader /EFI/OC/OpenCore.efi
}

保证--class macos 与 图标的名字macos.png保持一致即可。

恢复系统

  1. ubuntu

    1.1. home目录:有备份,直接恢复。个别文件有权限问题,没有完美恢复。

    1.2. dotfiles: 在git上有备份,但是需要先安装一些软件再恢复

    ubuntu默认安装small version without GUI版本,可以在vim中输入:version查看。所以要先安装vim-gui-common才能使用vim插件。

    再安装zsh、tmux。

    下载备份的dotfiles,执行dotfiles中的脚本,将配置文件软链接到dotfiles目录。

    安装powerline字体

    sudo apt-get install fonts-powerline -y
    

    1.3. 其他工具

    vscode登录账号从云端恢复。

    idea之前也备份过setting到云盘,直接导入即可。

  2. macos

dotfiles是跨平台同步的,所以直接拉下来安装就可以了。个人文档从icloud和onedrive里恢复,基本上也能恢复个七七八八。

反思

经过此次"事故",意识到了全盘备份的重要性,想要轻松恢复系统还是要全盘备份。

经过测试,找到了一个可行的方案:先将备份盘(2TB机械)用mac的磁盘工具进行分区:一个efi备份分区(fat)、一个ubuntu备份分区(unformatted)、一个macos备份分区(apfs)。这里最好不要直接把系统盘备份到备份盘,因为这三个部分生命周期是分开的。哪个出问题恢复哪个就行了,不需要全盘恢复。

使用的工具很简单,就是ubuntu自带的dd命令。比如:

dd if=/dev/nvme0n1p1 of=/dev/sdc1

要注意of需要大于等于if。

dd是看不到进度的,如果想看进度可以输入以下命令:

watch -n 5 killall -USR1 dd

kill.png

直接将三个分区复制到三个备份分区即可。备份完成后,会发现多了几个启动项,可以选择他们启动系统,实测可以正常启动。但是因为复制的时候分区的id也一起复制了,所以现在有两个相同id的分区,这个就看系统是依照什么顺序使用磁盘了。但是如果把原nvme盘拔掉,可以正常引导备份盘启动。这已经达到了全盘备份的目标。

windows的话直接用系统自带备份,排除steam游戏目录。

总结一下目前的备份方案:个人文件(或主目录)每日备份(本地和云盘各一份),系统每周全盘备份一次。我的全量备份盘每次备份完就拔掉,因为一方面机械硬盘的噪音比较大,另一方面也会影响系统挂载(原因上面解释过了)。

希望下次出现数据丢失的问题能更好更快地恢复。

总结

一定要全盘备份!

一定要全盘备份!

一定要TMD全盘备份!!!