检查只读 Btrfs 卷

检查只读 Btrfs 卷

在 Ubuntu 18.04 的系统上,有一个 Btrfs 卷安装为/home.它突然不由自主地切换到只读模式。文件中fstab有以下内容:

UUID=56b07769-992f-4c55-b620-c35d399a4c55 /home btrfs defaults,subvol=@home 0 2

df将此卷报告为/dev/sda2设备:

/dev/sda2  2,8T  2,1T  686G  76% /home

日志报告了两个扇区的问题,这很糟糕,但可能不是灾难性的:

$ dmesg
[...]
[255987.491752] sd 2:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[255987.491754] sd 2:0:0:0: [sda] tag#0 CDB: Read(16) 88 00 00 00 00 00 00 05 f8 80 00 00 00 08 00 00
[255987.491755] print_req_error: I/O error, dev sda, sector 391296
[255987.491758] Buffer I/O error on dev sda2, logical block 16, async page read
[255995.569797] sd 2:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[255995.569800] sd 2:0:0:0: [sda] tag#0 CDB: Read(16) 88 00 00 00 00 00 3f e9 2f 80 00 00 00 20 00 00
[255995.569801] print_req_error: I/O error, dev sda, sector 1072246656
[255995.569806] BTRFS error (device sda2): bdev /dev/sda2 errs: wr 5, rd 3371, flush 1, corrupt 0, gen 0

第一反应是以读/写模式重新挂载卷,但这导致了错误:

$ sudo mount -o remount,rw /home
mount: /home: mount point not mounted or bad option.

然后我尝试检查卷的运行状况,但令人惊讶的是,btrfs无法识别该卷:

$ sudo btrfs check --force -p /dev/sda2
WARNING: filesystem mounted, continuing because of --force
No valid Btrfs found on /dev/sda2
ERROR: cannot open file system

还有什么办法可以标记这些坏扇区并以读写模式重新挂载该卷?

答案1

  1. 关闭你的系统。
  2. 使用 Linux 发行版从 USB 记忆棒(或任何其他实时介质)启动
  3. 启动后安装用于搞乱 btrfs 的工具。 (我假设您的 USB 棒也是 ubuntu): sudo apt install btrfs-progs在 Ubuntu 20 或sudo apt install btrfs-tools更旧的系统上。 (它将安装在内存中)
  4. 安装工具来在硬件级别上处理磁盘:sudo apt install smartmontools
  5. 将磁盘挂载为只读:(mkdir /mnt/baddisk && mount -o ro /dev/sdb1 /mnt/baddisksdb1的情况可能会有所不同)
  6. 备份您的数据:rsync -Havz /mnt/baddisk someothersystem:/dataofbuggydisk/

现在才可以玩。

  • 用于smartctl -a /dev/sdb查看重新分配是否实际上仍然是一种选择。重新分配将由磁盘本身而不是 btrfs 进行低级别处理。
    如果磁盘不能做到这一点,你肯定也无法做到这一点。
  • 如果需要的话,你可以尝试一下btrfs rescuebtrfs check。但如果只有几个坏扇区,则可能不需要这样做。常规的 Ubuntu 配置可确保文件系统始终处于最佳状态。
    通常,您唯一应该担心的是 SMART 告诉您有关该磁盘的信息。smartctl时常检查一下。(现在 Ubuntu 可能也会为你执行此操作,并在必要时警告你,但我不确定这一点,为了安全起见,也可以手动执行此操作。)

编辑:我刚刚注意到您提到 Ubuntu 将您的磁盘置于只读模式。当它决定这样做时,你就会遇到真正的问题。这通常只会发生在以下情况:

  • 系统非正常关闭,但你没有提及,所以情况可能并非如此
  • 您遇到低级(磁盘,而不是文件系统)问题。

我强烈建议不要再使用该磁盘。理论上,当然可以恢复文件系统并继续使用该磁盘一段时间,但是您将要迟早会遇到大问题...

相关内容