在我的系统分区上,我有一个无法删除的文件夹。该文件夹是通过从 Acronis TrueImage 备份恢复文件而创建的。
错误消息说:
错误 0x80070570:文件或目录已损坏且无法读取。
我已经多次尝试chkdsk /r /f在启动时运行,但问题仍然存在。
是否有任何其他实用程序或 chkdsk 选项可以尝试解决此问题?
为了为我的文件系统创建一个连续的空间来增长,我在 sda1 处创建了一个新的 EFI 系统分区,以便我可以从 sda5 处的当前分区迁移它。除了警告说:
内核:FAT-fs (sda1):卷未正确卸载。某些数据可能已损坏。请运行 fsck。
当我第一次创建 EFI 分区时,我没有注意到已经存在两天的警告。我卸载了文件系统并按如下方式执行了文件系统检查:
# umount /dev/sda1
# fsck -V /dev/sda1
fsck from util-linux 2.24
[/sbin/fsck.vfat (1) -- /boot/efi] fsck.vfat /dev/sda1
fsck.fat 3.0.24 (2013-11-23)
0x25: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
1) Remove dirty bit
2) No action
? 1
Leaving filesystem unchanged.
/dev/sda1: 14 files, 2435/51145 clusters
Run Code Online (Sandbox Code Playgroud)
我认为去除脏位可以解决这个问题。但它没有。实际应该怎么做?
我编写了一个简单的Nagios插件,它调用mysqlcheck(检查损坏的表),如果有损坏的表会发出警告。
但是,我的表现在都没有损坏。所以我不能 100% 确定我的插件工作正常。我有一个不是关键任务的开发服务器。如何强制其中一个(或任何)表损坏,以便我可以测试我的 nagios 警报?
作为记录,服务器是 Ubuntu Dapper,而 mysql 是 5.0 版
在 CentOS 上检查硬盘错误和早期故障迹象的最佳方法是什么?
我们有一组安装了 Linux、本地 Web 服务器和 PostgreSQL 的消费者终端。我们正在收到有关机器出现问题的现场报告,经过调查,似乎停电了,现在磁盘有问题。
我原以为问题只是数据库损坏,或者最近更改的文件被打乱了,但还有其他奇怪的报告。
index.php现在是目录)数据库损坏存在问题,但这是我可以预料的。我更惊讶的是更基本的文件系统问题——例如,权限或将文件更改为目录。这些问题也发生在最近没有更改的文件中(例如,软件代码和配置)。
这是 SSD 损坏的“正常”吗?最初我们认为它发生在一些便宜的 SSD 上,但我们在名牌(消费级)上发生了这种情况。
FWIW,我们不会在不干净的启动上执行 autofsck(不知道为什么 - 我是新手)。我们在某些地方安装了 UPS,但有时它没有正确完成等。这应该是固定的,但即便如此,人们仍然可以不干净地关闭终端等 - 所以它不是万无一失的。文件系统是ext4。
问题是:我们可以做些什么来缓解系统级别的问题?
我发现一些文章提到关闭硬件缓存或以同步模式安装驱动器,但我不确定这在这种情况下是否有帮助(元数据损坏和非最近更改)。我还阅读了有关以只读模式挂载文件系统的参考资料。我们不能这样做,因为我们需要编写,但如果有帮助,我们可以为代码和配置创建一个只读分区。
这是一个驱动器的例子sudo hdparm -i /dev/sda1:
Model=KINGSTON RBU-SMS151S364GG, FwRev=S9FM02.5, SerialNo=<deleted>
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=125045424
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive …Run Code Online (Sandbox Code Playgroud) 这与这个问题有些相关,但又是一个不同的问题。
我们有一个中央 Hg 存储库,通过 SSH 和mercurial-server为用户提供服务。我们有许多 Mac、Linux 和 Windows 客户端连接到它。
现在已经发生了两次,其中一个 Windows 用户损坏了他们的存储库,然后又被推回了破坏它的中央用户。我想在中央存储库上编写一个传入的钩子脚本,以防止交易被接受,如果它会破坏中央存储库。
虽然不幸的是我对 Mercurial 的了解不够,无法编写这样的脚本。其他人有没有遇到过这种情况?我个人不太确定为什么 hg 默认不这样做。
设置
我已经当了很长一段时间的程序员了,但我对深入的内部事物仍然有点模糊。
现在。我很清楚以下两种情况都不是一个好主意:
但是,有时您只是不得不这样做。有时,无论您做什么,进程都不会响应,有时,无论您做什么,计算机都不会响应。
让我们假设一个系统通过 mod_wsgi 运行 Apache 2、MySQL 5、PHP 5 和 Python 2.6.5。
注意:我在这里对 Mac OS X 最感兴趣,但是适用于任何 UNIX 系统的答案会帮助我解决问题。
我的顾虑
每次我必须做其中任何一个,尤其是第二个时,我很担心一段时间内有什么东西坏了。某处的某些文件可能已损坏——谁知道是哪个文件?计算机上有超过 1,000,000 个文件。
我经常使用 OS X,所以我将通过磁盘工具运行“验证磁盘”操作。它不会报告任何问题,但我仍然担心这一点。
如果某个地方的某个配置文件被搞砸了怎么办。或者更糟糕的是,如果某个地方的二进制文件损坏了怎么办。或者某个地方的脚本文件现在已损坏。如果某些硬件损坏怎么办?
如果我直到下个月才发现它,在危急情况下,当腐败或损坏导致灾难时怎么办?
或者,如果有价值的数据已经丢失怎么办?
我的希望
我希望这些担忧和担忧是没有根据的。毕竟,在之前做过很多次之后,真正糟糕的事情还没有发生。最糟糕的是我不得不修复一些 MySQL 表,但我似乎没有丢失任何数据。
但是,如果我的担忧不是没有根据的,并且在情况 1 或 2 中都可能发生真正的损害,那么我希望有一种方法可以检测到它并防止它发生。
我的问题
这可能是因为现代操作系统旨在确保在这些情况下不会丢失任何内容吗?这可能是因为现代软件旨在确保不会丢失任何东西吗?现代硬件设计怎么样?拔电源插头时有哪些措施?
我的问题是,对于这两种情况,究竟会出现什么问题,应该采取哪些步骤来修复它?
我的印象是,可能会出错的一件事是某些程序可能没有将其数据刷新到磁盘,因此任何应该写入磁盘的最新数据(例如,在断电前几秒钟) ) 可能会丢失。但除此之外呢?这个 5 秒数据丢失的问题会破坏系统吗?
隐藏在我硬盘驱动器上巨大文件森林中某处的随机文件损坏怎么办?
硬件损坏怎么办?
什么对我最有帮助
当您杀死 -9 进程或关闭整个系统的电源时,有关内部发生的情况的详细说明。(似乎是即时的,但有人可以帮我放慢速度吗?)
对这些场景中可能出错的所有事情的解释,以及(当然是粗略的)概率(即,这是非常不可能的,但这是可能的)......
描述现代硬件、操作系统和软件中已采取的措施,以防止发生这些情况时发生损坏或损坏。(安慰我)
除了“验证磁盘”之外,关于在 kill -9 或电源拉动后要做什么的说明,以真正确保驱动器上的某处没有损坏或损坏。
可以采取的措施来强化计算机设置,以便在必须杀死某些东西或必须切断电源时,减轻任何潜在的损害。
关于二进制文件的一些信息——apache 二进制文件或某个库可能有一个或两个随机字节在中间损坏,这不是真的吗?我如何向自己保证这不是由于拉力或击杀而发生的?
非常感谢!
我有一台运行在物理机主机上的虚拟机 (Debian)。虚拟机充当它经常通过本地网络接收的数据的缓冲区(此数据的周期为 0.5 秒,因此吞吐量相当高)。收到的任何数据都存储在虚拟机上,并通过 UDP 重复转发到外部服务器。一旦外部服务器(通过 UDP)确认它收到了一个数据包,原始数据就会从虚拟机中删除,并且不会再次发送到外部服务器。连接 VM 和外部服务器的 Internet 连接不可靠,这意味着它可能一次关闭数天。
托管 VM 的物理机每天会随机断电数次。无法判断何时会发生这种情况,也无法向系统添加 UPS、电池或类似解决方案。
最初,数据存储在虚拟机上基于文件的 HSQLDB 数据库中。但是,频繁的断电最终导致数据库脚本文件损坏(不是在文件系统级别,即可读,但HSQLDB无法理解),这就引出了我的问题:
在断电可能并且确实经常发生的环境中,数据应该如何存储?
我能想到的一种选择是使用平面文件,将每个数据包保存为文件系统上的一个文件。这样,如果文件因断电而损坏,则可以忽略它,其余数据保持完整。然而,这会带来一些问题,主要与可能存储在虚拟机上的数据量有关。每条数据间隔 0.5 秒,10 天内将生成 1,728,000 个文件。这至少意味着使用具有更多 inode 的文件系统来存储这些数据(当前的文件系统设置在大约 250,000 条消息和 30% 的磁盘空间使用时耗尽了 inode)。此外,它很难(并非不可能)管理。
还有其他选择吗?是否有在 Debian 上运行的数据库引擎不会因断电而损坏?另外,应该为此使用什么文件系统?ext3 是目前使用的。
在虚拟机上运行的软件是使用 Java 6 编写的,因此希望该解决方案不会不兼容。
设想:
执行从旧 Server 2008 R2 到新 Server 2016 的服务器迁移,遵循此服务器故障指南:使用 Robocopy 进行文件服务器迁移
Robocopy 完成后,在 Server 2016 上为复制的卷启用重复数据删除,然后使用 PowerShell 手动开始重复数据删除。几个小时后,它完成并恢复了大约 25% 的磁盘空间。
再次运行 Robocopy 以复制初始副本中可能遗漏的任何内容,作为对新服务器的最终检查。
....但是 Robocopy(从 Server 2016 运行)不理解重复数据删除,因此继续将重复数据删除块存储作为垃圾..
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------
Started : Sunday, July 8, 2018 12:10:02 PM
Source : \\SERVER-2008\e$\
Dest : \\SERVER-2016\e$\
Files : *.*
Options : *.* /TEE /S /E /COPYALL /PURGE /MIR /ZB /NP /MT:32 /R:1 /W:10
------------------------------------------------------------------------------
*EXTRA Dir -1 \\SERVER-2016\e$\System Volume Information\Dedup\
*EXTRA Dir -1 \\SERVER-2016\e$\System …Run Code Online (Sandbox Code Playgroud) 尝试使用以下rsync命令更新服务器上的文件:
rsync -ravq -e "ssh -o ConnectTimeout=2 -o ServerAliveInterval=2 -ServerAliveCountMax=2" --delete ./local_dir user@$SERVER:/dest_dir
Run Code Online (Sandbox Code Playgroud)
corrupt packet 错误不断被抛出,特别是:
rsync: writefd_unbuffered failed to write 4092 bytes to socket [sender]: Broken pipe (32)
rsync: connection unexpectedly closed (11337 bytes received so far) [sender]
rsync error: unexplained error (code 255) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [sender=3.0.9]
Run Code Online (Sandbox Code Playgroud)
这可能与ssh超时有关,因为它似乎发生在大(r)文件中。另外,我一直在使用 WinSCP 超时。这只会发生在我身上;与我一起工作的几个使用此服务器的人没有同样的问题。
rsync从 Windows 7 中的 Cygwin 终端使用Centos 6.3 服务器。
我不确定还有哪些其他信息可能有用或如何获取这些信息。我会根据任何建议更新问题或添加评论。
我应该如何解决这个问题?
非常感谢!
corruption ×10
filesystems ×2
linux ×2
centos ×1
debian ×1
ext4 ×1
fat32 ×1
fsck ×1
hard-drive ×1
kill ×1
mercurial ×1
monitoring ×1
mysql ×1
nagios ×1
ntfs ×1
packetloss ×1
partition ×1
robocopy ×1
rsync ×1
ssd ×1
ssh ×1
windows-7 ×1