linux如何优雅的关机

常见的关机三大法宝:拔电源、shutdown、poweroff

机械硬部结构

断电之前先来看下机械硬盘的内部结构

为了避免磁头和磁盘的接触磨损,现代机械硬盘会有一个磁头复位的装置,机械硬盘不工作时,磁头回到复位位置,磁头复位不是依靠电能的驱动,而是机械力量。 磁头上有个类似弹簧装置,一直试图将磁头拉回复位区,通电时磁头受磁力作用移动至磁盘上方。 如果机械硬盘突然断电,磁力消失,磁头瞬间被拉回,但因磁盘立刻停转,导致盘面形成空气消失以及主机震动等原因,磁头很容易落在盘面,被磁力拉回的瞬间造成磁盘损伤。

那固态硬盘SSD呢

FTL工作示意图

先来普及一个独木桥组件FTL的知识:FTL是固态硬盘中的逻辑地址(LBA,logical block addresses )和物理地址(PBA, physical block addresses)的对应表。简单讲就是操作系统操作LBA逻辑地址,具体写入有FTL控制真正的物理地址在哪里,由此可见FTL这个“阳关大道”的重要性。

FTL表如此重要,没了它,整个SSD/SD卡就没法工作了。如果在FTL写回Flash之前,还在内存的时候,忽然没电了,内存数据丢失,FTL表也就丢失了。有鉴于此,高端SSD和服务器SSD都加上了电容,来作为应急供电方案,让SSD控制器有时间把内存中的FTL表和一些缓存内容存到Flash上

拔电源的对硬件的损坏(机械盘的磁头)相对于数据的丢失是可以忽略的,如数据库正在写入数据、缓存还未持久化、集群数据没有平衡这些对程序员来讲是致命的,直接拔电源不仅够优雅还会有数据丢失风险,pass?

那shutdown、poweroff以及halt有什么区别呢?

网上文章有很多,说的大多都是一个来源,经过调查发现,这三个命令的最大区别如下

half:关机,不关电
poweroff:关机、关电、关机过程不阻止其他用户登录
shutdown:关机、关电、发送命令通知其他用户将要关机,可以通过参数指定定时关机,只有root权限才可以执行,
会创建nologin阻止新用户登录。

参考:

1、为什么固态会掉盘?著名的30分钟大法修复是什么原理?这么做对吗? - 知乎 (zhihu.com)

2、实测:电脑突然断电对硬盘有影响吗? (baidu.com)

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...