linux拷贝文件断电后丢失,linux突然断电重启,配置文件丢失/程序无法打开/文件损坏...

电脑突然断电,重新开机后发现有的程序无法正常启动,原因是配置文件损坏了。感觉奇怪,为什么在硬盘里的文件会内容丢失?

1.可能:写数据的过程被中断,只完成了一部分。可能会出现乱码(因为只写了几个字节,不完整)、文件错误等。

2.更大的可能:操作系统写文件操作有个缓存,并不会直接写入硬盘。

内存可能有个缓存,磁盘也可能有个缓存,在数据会先保存在缓存中一段时间,累积到一定大小或者时间限度再一起写入磁盘中。

如果在这段时间内断电,那么缓存中的文件就丢失了,极端情况是写入了一部分数据,导致文件损坏。(可以通过“sync”命令强制同步,写入磁盘。)

应对这种情况,文件系统一般有几种处理方式:

a)不管错误,没有任何形式的日志记录。如果怀疑有错,通过磁盘检测功能恢复。

这样一旦断电,很有可能出现文件丢失或者数据不全(文件错误)的情况;但是这种情况下的写性能是最好的。

b)只提供元数据日志,而没有完整数据日志。在设计上保证文件系统结构上可恢复,但不保证用户数据可恢复。

保证了不会出现文件损坏的问题,但是不保证数据内容的正确和完整。

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/

Linux下通过.desktop 文件创建桌面程序图标及文件编写方式(Desktop Entry文件概述)

Linux下通过.desktop 文件创建桌面程序图标及文件编写方式 1.Desktop Entry文件概述:在 Windows 平台上,用户可以通过点击位于桌面或菜单上的快捷方式轻松打开目标应用程序 ...

[转]ubuntu linux下DNS重启后丢失

从网上得知 /etc/resolv.conf中的DNS配置是从/etc/resolvconf/resolv.conf.d/head中加载而来,所以每回改resolv.conf都会失效,在此文件里面已经 ...

[转]ubuntu linux下DNS重启后丢失(不是Network-manager造成的情况)

从网上得知 /etc/resolv.conf中的DNS配置是从/etc/resolvconf/resolv.conf.d/head中加载而来,所以每回改resolv.conf都会失效,在此文件里面已经 ...

qt程序实现打开文件夹

QString path=QDir::currentPath();//获取程序当前目录 path.replace("/","\\");//将地址中的" ...

xdg-open filename 以相应的程序 打开文件

[root@ok network-scripts]# xdg-open ifcfg-eth0

Linux突然断电后文件丢失的问题

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://yuyongid.blog.51cto.com/10626891/168504 ...

STM32 HAL库关于串口中断烧录程序后可以正常运行,断电重启后无法进入中断的问题分析以及解决方法

1.情景描述: 最近在做一个项目,X86的上位机通过串口控制MCU,使用串口中断接收上位机数据时,MCU在上电的情况下烧录程序,可以正常接收上位机的数据,在断电重启后,一直进入不了中断回调函数,上电的 ...

Ubuntu上安装和使用SSH,Xming+PuTTY在Windows下远程Linux主机使用图形界面的程序

自:http://blog.csdn.net/neofung/article/details/6574002 Ubuntu上安装和使用SSH  网上有很多介绍在Ubuntu下开启SSH服务的文章,但大 ...

Linux就这个范儿 第16章 谁都可以从头再来--从头开始编译一套Linux系统 nsswitch.conf配置文件

Linux就这个范儿 第16章 谁都可以从头再来--从头开始编译一套Linux系统  nsswitch.conf配置文件 朋友们,今天我对你们说,在此时此刻,我们虽然遭受种种困难和挫折,我仍然有一个梦 ...

随机推荐

xampp 下安装mysql-python

pip install mysql-python修改路径PATH="$PATH":(/mysql/bin 路径)brew install mysql-connector-c

nhibernat4.0.0.4000 bug

//类 NHibernate.Loader.Loader 中 protected virtual string[] ResultRowAliases { get { return null; } } ...

【BZOJ 3282】Tree Link Cut Tree模板题

知道了为什么要换根(changeroot),access后为什么有时要splay,以及LCT的其他操作,算是比较全面的啦吧,,, 现在才知道这些,,,真心弱,,, #include

Kalendar server Beijing Tiandiyuandian Technology Limited 果然是木马

我的Windows 7 系统,在开始菜单里面输入msconfig ,回车打开系统配置,隐藏所有Microsoft的进程,在服务和启动项里面都有 Kalendar server   Beijing Ti ...

Web Service 性能测试工具比较

背景 希望选择一款Web Service性能测试工具,能真实模拟大量用户访问网站时的请求,从而获取服务器当前的请求处理能力(请求数/秒).以微信服务器为例,每个用户用独立的登录token,做各种操作, ...

weblogic配置domain和删除domain

weblogic创建域的过程比较简单,但是在创建域之前一定要注意不能存在重名的domain. Domain简单定义为:是一个逻辑管理单元,Domain下面包含着weblogic应用服务器中的所有东西, ...

不同浏览器对URL最大长度的限制

不同浏览器对URL最大长度的限制   1.今天碰到一个bug,window.open后面的页面,接收参数不全,导致后台报错.实验了一下.发现是使用get方法请求服务器时,URL过长所致 微软官方的说明 ...

C#---------------继承和多态初步

继承:在程序中,如果一个类A:类B,这种机制就是继承. 子类可以继承父类的所有内容(成员)吗? 解析: 1.私有成员(属性和方法) 2.构造函数 3.final修饰过的方法,子类不能进行重写 3.访问 ...

第二次项目冲刺(Beta阶段)5.20

1.提供当天站立式会议照片一张 会议内容: ①检查前一天的任务情况,心得分享以及困难分析. ②制定新一轮的任务计划. 2.每个人的工作 (1)工作安排 队员 今日进展 明日安排 王婧 #42文件分类改 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值