NVME 磁盘故障导致启动分区损坏、坏超级块错误

NVME 磁盘故障导致启动分区损坏、坏超级块错误

我最近在一台 PC 的 nvme 驱动器上安装了 Ubuntu 18.04 Server。在安装过程中,我选择使用 GPT 和 EXT4。正常运行几周后,系统出现磁盘故障,然后无法再直接启动到操作系统。

现在,只有通过从 BIOS 中选择 nvme 驱动器作为启动磁盘,才能启动操作系统。然后,系统将正常运行,直到出现另一个磁盘故障。

为了排除故障,我尝试运行 fsck:。sudo fsck /dev/nvme0n1这给出了一个错误The superblock could not be read or does not describe a valid ext2/ext3/ext4 filesystem

但是,如果我fsck确定某些分区,结果要么是相同的错误,要么是干净的 fsck 报告。

  • 分区 1(/dev/nvme0n1p1)是 1MB 的启动分区。fsck它会出现超级块错误。
  • 分区 2(/dev/nvme0n1p2)使用驱动器的剩余空间。fsck它给出了干净的结果。

我的问题是:

  1. 我认为分区 1 可能不是 EXT4,这就是为什么fsck它不起作用的原因。启动分区的典型文件系统或组织方案是什么?
  2. 我正在尝试修复周期性磁盘故障。超级块问题与此有关吗?如果没有,我应该如何进一步排除故障?
  3. 由于系统无法再启动进入操作系统,我认为启动分区已损坏。我该如何修复?这与磁盘故障有关吗?

以下是lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE,MODEL | egrep -v "^loop"

NAME        FSTYPE   LABEL                           MOUNTPOINT            SIZE MODEL
sda                                                                        1.8T ST2000DM008-2FR1
└─sda1      ext4                                                           1.8T 
sdb         iso9660  Ubuntu-Server 18.04.2 LTS amd64 /cdrom               14.9G USB Flash Drive 
├─sdb1      iso9660  Ubuntu-Server 18.04.2 LTS amd64                       834M 
└─sdb2      vfat     Ubuntu-Server 18.04.2 LTS amd64                       2.4M 
nvme0n1                                                                  465.8G Samsung SSD 970 EVO Plus 500GB          
├─nvme0n1p1                                                                  1M 
└─nvme0n1p2 ext4                                                         465.8G 

以下是输出sudo parted -l

Model: ATA ST2000DM008-2FR1 (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2000GB  2000GB  ext4


Model: Samsung SSD 970 EVO Plus 500GB (nvme)
Disk /dev/nvme0n1: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2097kB  1049kB                     bios_grub
 2      2097kB  500GB   500GB   ext4

答案1

如果使用较旧的内核,则需要较新的内核可能解决问题。然而在Arch Linux 固态硬盘/NVMe它说:

Linux 4.10 上的三星驱动器错误

在 Linux 4.10 上,驱动器可能会发生错误并导致系统不稳定。这似乎是驱动器无法使用的省电状态的结果。添加内核参数可 nvme_core.default_ps_max_latency_us=5500禁用最低的省电状态,从而防止写入错误。

这听起来是你迈出的最好的第一步。


回复评论

我的三星 960 Pro 与您的三星 970 EVO 类似。作为参考,我将附上我自己的系统,修复后您的系统看起来会类似:

$ lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE,MODEL | egrep -v "^loop"

NAME         FSTYPE LABEL            MOUNTPOINT   SIZE MODEL
nvme0n1                                           477G Samsung SSD 960 PRO 512GB               
├─nvme0n1p9  swap                    [SWAP]       7.9G 
├─nvme0n1p7  ext4   Old_Ubuntu_16.04 /mnt/old    23.1G 
├─nvme0n1p5  ntfs                                 859M 
├─nvme0n1p3                                        16M 
├─nvme0n1p1  ntfs                                 450M 
├─nvme0n1p8  ntfs   Shared_WSL+Linux /mnt/e         9G 
├─nvme0n1p10 ext4   Ubuntu_18.04     /mnt/clone  27.2G 
├─nvme0n1p6  ext4   New_Ubuntu_16.04 /           45.1G 
├─nvme0n1p4  ntfs   NVMe_Win10       /mnt/c     363.2G 
└─nvme0n1p2  vfat                    /boot/efi     99M 
sr0                                              1024M DVD+/-RW DW316  
sda                                             931.5G HGST HTS721010A9
├─sda4       ntfs   WINRETOOLS                    450M 
├─sda2                                            128M 
├─sda5       ntfs   Image                        11.4G 
├─sda3       ntfs   HGST_Win10       /mnt/d       919G 
└─sda1       vfat   ESP                           500M 

相关内容