文章目录
背景解决方案数据丢失软件安装 总结背景
前一段时间,我的电脑突然就开不了机了,进入安全模式之后,发现硬盘无法读取,大概率是硬盘坏掉了。电脑是 MacBook,自己不太好换。于是跑到华强北,找了一家维修店,师傅给换了一块硬盘就好了(这里感谢一下董老师,带我跑华强北去维修)。
在硬盘坏掉之后,我发现可能会面临以下几个问题:
隐私泄漏(社死),电脑里面可能存了不想让别人知道的东东,如果硬盘修复一下又能够继续使用了,维修的师傅可能会看到硬盘上的内容,特别是如果不是立等可取的话,电脑放在别人那里很没安全感;数据丢失,如果硬盘坏掉,里面的数据全部或者部分都会丢掉;系统重装,所有软件重新安装,环境变量需要重新配置,非常的麻烦。
解决方案
因为我的硬盘是整个坏掉了,里面的数据也没办法读取了,所以也不存在社死的问题,换了硬盘之后,我就把坏掉的硬盘拿回家了。
这里主要分享一下数据丢失和软件重装的解决方案。
数据丢失
备份!备份!备份!重要的事情说三遍!
我在家里部署了一台 NAS,所有的数据我都会定期的往里面存,我用的是群晖的机器 DS220+ ,这个型号有两个硬盘插槽,互相备份,除非两块硬盘同时坏掉,否则数据不会丢失。
另外,它里面还有非常多的套件,有一个网盘同步的套件,可以将本地的数据同步到网盘里面,基本上市面上主流的网盘都支持,我就开了个百度网盘,将本地的数据再同步到百度网盘里面,这样就更加不会丢失了。
有个问题,群晖的用户量比较大,用它的 QuickConnect 服务,在外网访问的时候有时候速度会比较慢,在局域网里面就没问题。
这里可以考虑下国产的方案,比如华为家庭存储,使用华为全家桶的话,体验会比较好。
软件安装
还有另外一个让人烦恼的问题,就是换了硬盘之后,软件都必须重新安装,有一些环境变量还需要重新配置,都是一些没有技术含量的体力活,特别费劲。也可以将整个系统进行备份,但是这样就不太灵活,不方便随时更改。
docker可以解决么?
一开始,我想是不是可以用 docker 来解决呢?比如用 docker 部署一个 Android 的开发环境,这样当换电脑的时候,只要把对应的镜像下载到本地就可以了,而不需要再重新安装 java,Android studio,Android sdk,NDK 乱七八糟的一堆东西。
想象得很美好,但实际上好像不太行。docker 本身是用于部署运维的工具,对于 UI 貌似支持得不太好,而且 docker 在 Mac 上虚拟出一个 linux 环境,性能肯定没有直接在本机上跑好,所以这个方案不是很好。
homebrew
接着我想是不是可以用脚本来解决呢?
本质上我只是不想再做一些重复的体力活,如果将安装和配置环境变量的过程用脚本来实现,我只需要执行一下,就自动将环境配置好了,这样也能够满足我的需求,而且脚本还可以随时修改。
然后我就发现了 homebrew 这个神器!我们常用的一些软件,竟然都可以用它来安装,并且安装完成之后自动就帮我们配置好了环境变量!特别方便!
这里可以直接搜索它支持安装的软件
https://formulae.brew.sh/
然后,再写个脚本,就可以将我们需要的软件批量安装了!
分享一下我写的脚本,除了 ohmyzsh 是需要自己写安装过程,其他的软件都只要一行代码就可以了
#!/usr/bin/env base#一些基础的软件init() {/bin/bash -c "$(curl -fsSL /ineo6/homebrew-install/raw/master/install.sh)"brew install gitbrew install git-lfsohmyzsh}ohmyzsh() {# 安装sh -c "$(curl -fsSL /mirrors/oh-my-zsh/raw/master/tools/install.sh)"#安装插件git clone /bright_007_admin/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions#配置插件tobeReplaced='plugins=(git)'replaced='plugins=(git zsh-autosuggestions)'file=~/.zshrcsed -i '.bak' "s/$tobeReplaced/$replaced/" "${file}"#提升速度git config --add oh-my-zsh.hide-dirty 1git config --add oh-my-zsh.hide-status 1}android() {brew install --cask android-studiobrew install --cask homebrew/cask-versions/adoptopenjdk8# brew install --cask android-sdk# brew install --cask android-ndkbrew install gradlebrew install android-platform-toolsbrew install --cask flutter}other() {brew install nodejsbrew install npmbrew install python3# 博客工具npm install hexo-cli -gbrew install --cask intellij-idea-ce}tools() {brew install --cask visual-studio-codebrew install --cask snipastebrew install --cask utoolsbrew install --cask google-chromebrew install --cask wpsoffice-cnbrew install --cask betterzipbrew install --cask safeincloud-password-managerbrew install --cask wechatbrew install --cask qqbrew install --cask wechatworkbrew install --cask notion}finish() {brew cleanup}#功能:往环境变量文件里面写入内容,如果文件里面已经存在,则不写入write() {content=$1# 环境变量文件envFile=~/.zshrcif cat $envFile | grep "$content" >/dev/null; thenecho "已经存在配置${content},不写入"elseecho "写入配置${content}"echo "${content}" >>$envFilefi}echo "开始配置"initandroidothertoolsfinishecho "结束配置"
总结
所以终极解决方案就是 NAS + homebrew
如果觉得《硬盘坏掉之后》对你有帮助,请点赞、收藏,并留下你的观点哦!