在安装前积极fsck磁盘


12

我有一台旧的HP Athlon机器,用于在旧处理器下测试软件。我们经常出现电源不足的情况,在最后一个电源耗尽之后,磁盘一片混乱。太糟糕了,我无法运行fsck并分发所有问题。我执行了全新的操作系统安装,但仍然收到fsck投诉。

我想最后一次尝试重新加载Linux,然后再谴责硬盘或计算机。在创建文件系统之后但在安装之前,我希望fsck执行一次激进的操作以将可疑块标记为坏块。

磁盘很大(大约500 GB),而Debian 8发行版相对较小(通常8-12 GB绰绰有余),所以我不在乎好块是否被标记为坏块。我也喜欢GUI安装,但是我还没有结婚。

我有两个问题:

  1. Debian 8是否提供选择fsck在安装基本系统之前执行?如果是这样,它在哪里?如果没有,那么流程是什么?

  2. 是否fsck有设置来控制将块标记为不良的积极程度?如果是这样,那是什么?如果没有,那可以用什么呢?


编辑:该机器是HP5850。进入BIOS,导航至“存储”,然后进行驱动器保护系统(DPS)自检,DPS建议更换驱动器。DPS没有提供任何统计数据,所以我不确定造成的损害程度。

考虑到我可以花12美元购买一个[旧的]新SATA II驱动器,我将更换它。浪费时间或精力是没有意义的。


相关参考文献如下。这两个问题似乎都没有解决。


为什么不使用SpinRite
彼得·莫滕森

如果您有任何坏块,则整个驱动器实际上会发生故障,因此不应使用。
克莱里斯

2
“积极地fsck磁盘”看起来太脏了……
A. Mirabeau,2016年

Answers:


19
  1. “ Debian 8是否提供了在安装基本系统之前执行fsck的选择?如果可以,在哪里?如果没有,那么过程是什么?”

    或者,首先下载并刻录GPartEd CD(或写入拇指驱动器)。在运行安装程序之前,请GPartEd根据自己的喜好引导磁盘并对其进行分区,然后运行fsck或只是badblocks长时间运行。

    当您运行Debian安装程序时,只需告诉它如何使用那里的分区即可。安装程序不需要创建自己的分区。使用现有分区非常高兴。

  2. “ fsck是否有一个设置来控制将块标记为不良的积极程度?如果是,它是什么?如果没有,那么可以使用什么?”

    -c选项将e2fsck导致其运行badblocks程序扫描坏块。您也可以直接运行badblocks。默认情况下,badblocks执行只读测试。为了更具攻击性,您可以指定-n一个非破坏性的读写测试。您还可以设置-p选项以增加其通过的次数。

    您可能要badblocks在分区之前运行。这样,您可以指定更快-w的只写测试。


1
John,+ 1,只是好奇,是否badblocks有任何方法可以在硬件级别或仅在FS级别进行标记?
heemayl

3
@heemayl我的理解是,在现代硬盘上,硬盘的固件会尝试执行其自身的所有坏块管理。运行的目的badblocks仅仅是强制硬盘读取/写入所有扇区。硬盘会自己检测并重新映射坏扇区,并且如果所有功能都能正常工作,badblocks则永远不会通知程序硬盘正在执行此操作。
John1024 '16

嗯..可理解的。因此,从本质上讲,fsck可以标记FS上的块,但是badblocks只能帮助磁盘固件进行标记,而不做任何事情吗?
heemayl

3
@heemayl在过去,badblocks会吐出一个坏扇区列表,文件系统会记录下来。在现代,badblocks FS仍然尝试这样做,但是对于现代HD,该列表通常为空。
John1024 '16

1
@heemayl,如果列表不为空,则磁盘通常坏得很厉害,您最好的选择是更换它。
2016年

7

如果您经常遇到fsck错误,则驱动器可能还会咳血。即使您将每个坏块都标记为坏块,不久也不会有更多块坏掉。我想如果您真的需要(Ctrl + alt + F2切换到tty2),您可以换成另一个tty来执行fsck,但是如果您所说的话,我不能足够强调您需要多少新硬盘是准确的。


“如果您经常遇到fsck错误...” -我不确定的是fsck重新安装后出现了少量问题,或者是冰山一角。系统启动,遇到一些文件系统错误(4或6),通过重新安装为只读方式进行恢复,然后启动。

@jww您可以张贴一些上述文件系统错误的确切示例吗?
John Leuenhagen '16

为什么要切换到另一个tty?这样做有什么好处?
fpmurphy '16

@ fpmurphy1听起来好像他无法打开终端窗口,所以切换到另一个tty将是进入Shell的下一个最佳方法。
John Leuenhagen '16

@jww:每次都报告相同的块,还是在每次引导时报告新的块?
TMN

5
  1. 不,我认为这不值得。Fsck(由大多数文件系统实现)不检查驱动器。它会验证文件系统元数据,并确保在安装它们时视图是一致的。在安装之前进行此操作没有多大意义,因为根据定义,您将只有空白空间。

  2. 请改用badblocks。如果要确保数据不会丢失,请使用支持清理的文件系统。Lvm本身也可以做到


3

要检查现代磁盘的可靠性,请考虑使用内置测试。您可以使用smartctl实用程序来触发它们,例如:

smartctl -t long /dev/sdx
#wait an hour or two
smartctl -a /dev/sdx
#should have recorded a result in the self-test log

如果要事先确保最近已写入所有内容,以便发现无法正确写入的扇区,则可以使用/ dev / urandom中的dd覆盖整个介质,也可以使用随机化方法之一切碎选项。


3
请注意,在500GB驱动器上,ddfrom /dev/random可能需要几天才能完成。
德米特里·格里戈里耶夫

1
固定的错别字,thx :)不想拼写出确切的dd语法,因为我想避免在命令行周围加上命令行,如果不小心将其粘贴到shell中,将导致真正不可恢复的数据丢失。
rackandboneman

不幸的是,Debian似乎没有提供smartctlE: Unable to locate package smartctl。它是Red Hat / Fedora实用程序吗?

debian / ubuntu软件包是smartmontools。顺便说一句,使用apt-cache搜索来搜索哪个包中有东西。
rackandboneman'8

2

我建议您使用只能在Windows上运行的制造商的低级格式化软件(如果有的话)(或者如果您幸运的话,从可引导CD / DVD / USB上下载,您可以从其网站下载图像) 。如果您对操作有足够的控制权以减少报告的驱动器容量以换取更大的备用扇区池,则应该这样做,因为在测试驱动器时,如@rackandboneman所建议的那样,许多备用磁盘已被替换。拥有一个400 GB或450 GB的驱动器,将所有坏扇区替换为备用磁盘,而将更多坏磁盘留给将来的缺陷,这比耗尽备用磁盘池和无法透明地重新映射未来的坏扇区要好得多。


我能够为DOS运行SeaTools。SeaTools报告SMART 没有触发,这似乎很不正常。在长时间的测试短的测试立即失败。我将磁盘大小减小到32 GB;然后再次进行长时间测试。SeaTools在1190000大关附近发现了4个不良LBA,并对其进行了修复。全新的操作系统安装非常完美;并随后重新启动没有问题。自从我购买了替换的SATA II驱动器以来,如果现有驱动器发生故障,我将其保留为热备用。

@jww可惜您已经接受了另一个答案。
蒙迪·哈德

是的,这是Q&A陷阱...我必须问一些具体问题才能获得准确的答案。如果我会问“如何在出现故障的硬盘驱动器上安装Linux”,那么这个问题可能就已经解决了。

0

如果没有可用的高级工具,请执行一些基本操作(例如,它是USB光盘,而SMART无法使用):

dd if=/dev/sdX of=/dev/null bs=1M

将读取所有光盘。您会在dmesg日志中看到是否存在无法读取的扇区。尽管它不会告诉您重试后是否能够读取它们。它不尽如人意,badblocks但我提到它的普遍性。

如果扇区坏,而您不想在光盘上放任何东西:

dd if=/dev/zero of=/dev/sdX bs=1M

将导致所有块被重写。如果存在无法读取的扇区,这将导致它们与重新分配池中的扇区交换并再次变得可用。

如果您有正在重新分配的光盘,则该光盘即将退出。我不会将它用于任何重要的事情,但是有时您拥有的数据并不那么在乎,因此可能还可以。

如果是SSD,则情况会有所不同,并且这些都不适用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.