电脑忽然断电,从新开机后发现有的程序没法正常启动,缘由是配置文件损坏了。感受奇怪,为何在硬盘里的文件会内容丢失?html
1.可能:写数据的过程被中断,只完成了一部分。可能会出现乱码(由于只写了几个字节,不完整)、文件错误等。node
2.更大的可能:操做系统写文件操做有个缓存,并不会直接写入硬盘。web
内存可能有个缓存,磁盘也可能有个缓存,在数据会先保存在缓存中一段时间,累积到必定大小或者时间限度再一块儿写入磁盘中。centos
若是在这段时间内断电,那么缓存中的文件就丢失了,极端状况是写入了一部分数据,致使文件损坏。(能够经过“sync”命令强制同步,写入磁盘。)缓存
应对这种状况,文件系统通常有几种处理方式:安全
a)无论错误,没有任何形式的日志记录。若是怀疑有错,经过磁盘检测功能恢复。app
这样一旦断电,颇有可能出现文件丢失或者数据不全(文件错误)的状况;可是这种状况下的写性能是最好的。性能
b)只提供元数据日志,而没有完整数据日志。在设计上保证文件系统结构上可恢复,但不保证用户数据可恢复。centos7
保证了不会出现文件损坏的问题,可是不保证数据内容的正确和完整。spa
c)提供完整数据和元数据日志记录。能在用户数据层面上保证数据的绝对正确。
也就是数据要么是写以前的,要么是写以后的数据,而不会出现混乱的状况。
新建一个文件的步骤是:
1.inode bitmap 找到没有使用的inode 号码,写入文件属性;
2.根据block bitmap 找到没有使用中的block 号码,并将实际的资料写入block 中,且更新inode 的block 指向数据块;
3.将刚刚写入的inode 与block 资料同步更新inode bitmap 与block bitmap,并更新superblock 的内容。
日志型档案系统会在日志中记录进行到了哪一步,万一资料的纪录过程中发生了问题,只要去检查日志记录区块, 就能够知道哪一个档案发生了问题。同时能够保证整个操做要么完成,要么退回到开始操做以前。
过程示例如:http://www.cnblogs.com/youngerchina/archive/2012/01/15/5624631.html。
文件系统
引用至https://blog.csdn.net/u014743697/article/details/54089297
经过将硬盘划分为分区,数据会被分隔以及重组。当事故发生的时候,只有存储在被损坏分区上的数据会被破坏,很大可能上其它分区的数据能得以保留。这个缘由能够追溯到 Linux 操做系统尚未日志文件系统、任何电力故障都有可能致使灾难发生的时候。
使用分区也考虑到了安全和健壮性缘由,所以操做系统部分损坏并不意味着整个计算机就有风险或者会受到破坏。这也是当前采用分区的一个最重要因素。举个例子,用户建立了一些会填满磁盘的脚本、程序或者 web 应用,若是该磁盘只有一个大的分区,若是磁盘满了那么整个系统就不能工做。若是用户把数据保存在不一样的分区,那么就只有那个分区会受到影响,而系统分区或者其它数据分区仍能正常运行。
可是,拥有一个日志文件系统只能在掉电或者和存储设备意外断开链接时提供数据安全性,并不能在文件系统出现坏块或者发生逻辑错误时保护数据。对于这种状况,用户能够采用廉价磁盘冗余阵列的方案。
为何要切换文件系统?
ext4 文件系统由 ext3 文件系统改进而来,然后者又是从 ext2 文件系统改进而来。虽然 ext4 文件系统已经很是稳定,是过去几年中绝大部分发行版的默认选择,但它是基于陈旧的代码开发而来。另外, Linux 操做系统用户也须要不少 ext4 文件系统自己不提供的新功能。虽然经过某些软件能知足这种需求,但性能会受到影响,在文件系统层次作到这些能得到更好的性能。
文件系统主要用于控制全部程序在不使用数据时如何存储数据、如何访问数据以及有什么其它信息(元数据)和数据自己相关等。
从centos7开始,默认的文件系统从ext4变成了xfs。xfs支持的文件数量和文件大小高于ext4。
centos查看文件系统类型:
df -T 命令能够查看目录的文件系统类型。
参考:
http://blog.csdn.net/a421701136/article/details/51802070
https://www.zhihu.com/question/55711728
挂载点,分区和系统目录参考:
http://www.cnblogs.com/apprentice89/archive/2012/12/17/2821332.html
http://blog.csdn.net/imfinger/article/details/6071259/