磁盘问题导致我无法启动,或将磁盘设置为只读。如何修复磁盘?

磁盘问题导致我无法启动,或将磁盘设置为只读。如何修复磁盘?

问题:

大约一周前开始,我的Ubuntu系统遇到了各种严重且奇怪的问题。有时整个系统会突然死机。我必须用蛮力按下电源按钮才能关闭机器。有时,所有文件突然变成只读。我必须重新启动机器,然后看起来正常,但稍后可能会出现上述问题。当我尝试关闭 Ubuntu 时,有时黑屏会显示有关磁盘错误的消息。


尝试修复:

我认为我的 WD 1T 硬盘存在一些需要修复的错误。因此,我在卸载有问题的硬盘后,在 Ubuntu 安装光盘或另一个硬盘中的 Ubuntu 中运行以下命令。但是,我无法解决这个问题。特别是,当我尝试运行时sudo e2fsck -b 8193 /dev/sda1,出现错误消息“参数无效”。详情如下所示,

1)首先,显示以下消息(仅复制与我要修复的fdisk -l相关部分):/dev/sda1

警告:在“/dev/sda”上检测到 GPT(GUID 分区表)! util fdisk 不支持 GPT。使用 GNU Parted。

磁盘 /dev/sda:1000.2 GB,1000204886016 字节
255个磁头,63个扇区/磁道,121601个柱面,总共1953525168个扇区
单位 = 1 * 512 = 512 字节的扇区
扇区大小(逻辑/物理):512 字节/4096 字节
I/O 大小(最小/最佳):4096 字节/4096 字节
磁盘标识符:0x00000000
设备引导开始结束块 ID 系统
/dev/sda1 1 1953525167 976762583+ ee GPT
分区 1 不在物理扇区边界上开始。

2)运行sudo fsck.ext4 -ck /dev/sda1,尝试修复硬盘

e2fsck 1.42.5(2012 年 7 月 29 日)
ext2fs_open2:超级块中的错误幻数
fsck.ext4:超级块无效,正在尝试备份块...
fsck.ext4:尝试打开 /dev/sda1 时超级块中的错误幻数
无法读取超级块或未描述正确的 ext2
文件系统。如果设备有效并且确实包含 ext2
文件系统(而不是交换或 ufs 或其他东西),然后是超级块
已损坏,您可以尝试使用备用超级块运行 e2fsck:
e2fsck -b 8193

3) sudo e2fsck -b 8193 /dev/sda1、尝试从块8193恢复超级块

e2fsck 1.42.5(2012 年 7 月 29 日)e2fsck:尝试时参数无效
打开/dev/sda1

无法读取超级块或未描述正确的 ext2
文件系统。如果设备有效并且确实包含 ext2
文件系统(而不是交换或 ufs 或其他东西),然后
超级块已损坏,您可以尝试使用以下命令运行 e2fsck
备用超级块:
    e2fsck -b 8193

4) sudo mke2fs -n /dev/sda1、定位其他备份块

mke2fs 1.42.5(2012 年 7 月 29 日)
文件系统标签=
操作系统类型:Linux
块大小=1024(log=0)
片段大小=1024(log=0)
步长=4块,条纹宽度=4块
48768 个索引节点,194560 个块
9728 个区块 (5.00%) 保留给超级用户
第一个数据块=1
最大文件系统块=67371008
24个块组
每组 8192 个块,每组 8192 个片段
每组 2032 个索引节点
存储在块上的超级块备份:
    8193、24577、40961、57345、73729

5) 对 4 中返回的所有其他超级块备份重做步骤 3。相同的错误显示为步骤 3。

gdiskPS:根据评论,我粘贴和的输出parted如下:

sudo gdisk -l /dev/sda
GPT fdisk (gdisk) 版本 0.8.5

分区表扫描:
  MBR:保护性
  BSD:不存在
  APM:不存在
  GPT:现在

找到具有保护性 MBR 的有效 GPT;使用 GPT。
磁盘 /dev/sda:1953525168 个扇区,931.5 GiB
逻辑扇区大小:512字节
磁盘标识符 (GUID):6166B96C-AD2A-4EF1-8967-1ACFA23FE2E4
分区表最多可容纳 128 个条目
第一个可用扇区是 34,最后一个可用扇区是 1953525134
分区将在 2048 扇区边界上对齐
总可用空间为 3437 个扇区 (1.7 MiB)

编号 起始(扇区) 结束(扇区) 尺寸 代码 名称
   1 2048 391167 190.0 MiB EF00  
   2 391168 890879 244.0 MiB 0700  
   3 890880 1953523711 931.1 GiB 8E00  
`sudo parted -l `
型号:ATA WDC WD10EZEX-00R (scsi)(注意:这是有问题的磁盘)
磁盘/dev/sda:1000GB
扇区大小(逻辑/物理):512B/4096B
分区表:gpt

编号 开始 结束 大小 文件系统名称 标志
 1 1049kB 200MB 199MB fat32 引导
 2 200MB 456MB 256MB ext2
 3 456MB 1000GB 1000GB LVM


型号:ATA SAMSUNG HD103SJ (scsi)(注:这是另一个普通磁盘)
磁盘/dev/sdb:1000GB
扇区大小(逻辑/物理):512B/512B
分区表:msdos

编号 开始 结束 大小 类型 文件系统 标志
 1 1049kB 30.0GB 30.0GB 主 ext4
 4 30.0GB 1000GB 970GB 扩展 lba
 6 30.0GB 983GB 953GB 逻辑 ext4
 5 983GB 1000GB 16.9GB 逻辑 li​​nux-swap(v1)


模型:Linux 设备映射器(线性)(dm)
磁盘 /dev/mapper/ubuntu-root: 983GB
扇区大小(逻辑/物理):512B/4096B
分区表:循环

编号 开始 结束 大小 文件系统 标志
 1 0.00B 983GB 983GB ext4


模型:Linux 设备映射器(线性)(dm)
磁盘 /dev/mapper/ubuntu-swap_1: 16.9GB
扇区大小(逻辑/物理):512B/4096B
分区表:循环

编号 开始 结束 大小 文件系统 标志
 1 0.00B 16.9GB 16.9GB linux-swap(v1)

答案1

你正在尝试fsck做错事。庆幸的是,失败了……

你想跑fsck -f /dev/mapper/ubuntu-root-c如果您愿意,可以添加。您还需要检查smartctl -a /dev/sda磁盘是否指示 SMART 故障(备份、立即更换磁盘)或挂起扇区(尝试 -c)。

如果出现“未找到”错误,您需要首先启动 LVM。你会做这样的事情:

# vgscan 
# vgchange -ay

然后再尝试fsck上面的操作。

(你可以看出sda1是错误的,因为gdisk和parted都说它是200MB。而且,它是FAT32,而不是EXT4。你可以告诉LVM的东西,因为1T分区被列为LVM。你忽略fdisk,因为,好吧,它告诉你说它不支持 GPT)。

编辑:由于您的系统确实启动,另一种方法是仅运行shutdown -F -r now,这将导致您的计算机重新启动并执行完整的 fsck。但这不行fsck -c。此外,您还可以smartctl -a在启动磁盘上安全地运行。

答案2

你还没有提到你打算完成什么。您是否需要保存该磁盘中的重要数据,或者您只是想查明它是否已损坏?

我认为我的 WD 1T 硬盘存在一些需要修复的错误。

这是一个自相矛盾的说法。这里有两种可能的情况:

1) 您的硬盘驱动器有错误(即出现故障)。然后,您应该尝试尽快保存数据,最好通过使用 .txt 文件将磁盘映像到另一个硬盘dd。 “修复”硬盘是不可能的。成功保存数据后,您可以将其丢弃。

2) 您的文件系统有错误(即在某些方面不一致),但磁盘本身没有损坏。您通常可以使用 修复此问题e2fsck,但在尝试 fsck 文件系统之前创建备份映像不会有什么坏处,因为在某些情况下 fsck 可能会使情况变得更糟。


如果您只是想确定硬盘是否损坏,请对其运行 SMART 自检。以 root 身份执行以下命令:

smartctl -t long /dev/sda

这将需要几个小时。完成后,您可以通过以下方式查询结果

smartctl -a /dev/sda | less

向下滚动到该SMART Selective self-test log块。如果最上面的结果显示Completed without error,则您的硬盘没有问题。如果报告错误,则表明它已损坏,您需要尽快保存数据。

相关内容