Liv*_*ius 8 superblock linux-mint btrfs
我有一个用 BTRFS 格式化的外部驱动器似乎拒绝安装:
$ sudo mount -vs -t btrfs -o ro,recovery,errors=continue /dev/sdb2 /media/user/dir
mount: /dev/sdb2: can't read superblock
Run Code Online (Sandbox Code Playgroud)
但是,当 BTRFS 认为所有超级块都可以时:
$ sudo btrfs rescue super-recover -v /dev/sdb2
All Devices:
Device: id = 1, name = /dev/sdb2
Before Recovering:
[All good supers]:
device name = /dev/sdb2
superblock bytenr = 65536
device name = /dev/sdb2
superblock bytenr = 67108864
device name = /dev/sdb2
superblock bytenr = 274877906944
[All bad supers]:
All supers are valid, no need to recover
Run Code Online (Sandbox Code Playgroud)
如果我尝试指定sb=$((67108864/4))
(mount
使用 1k 单位,因此您必须在具有 4k 块的系统上除以 4)以使用替代超级块之一,我会得到相同的错误。btrfs restore
从驱动器读取数据似乎也没有问题,并且btrfs check
只抱怨无效的缓存条目(并且clear_cache
在安装时没有帮助)。这种情况以前在另一个驱动器上发生过一次,btrfs check --repair
也没有奏效。 [1] 由于此驱动器上有大量数据,因此我有点不愿意将所有内容复制到其他地方btrfs restore
(这也意味着在其他地方寻找空间)、重新格式化并将所有内容复制回来。
有没有办法解决这个问题?有没有办法btrfs
直接调用,以便它执行挂载而不是依赖mount
?我找不到mount.btrfs
.
[1] 我有点不愿意使用btrfs check --repair
它,因为它带有很多关于作为最后手段的警告,特别是在它以前不起作用之后。
看起来 Btrfs 在更改块设备文件名(如 /dev/sda)方面存在问题。我也遇到过同样的问题:
创建了一个 Btrfs 文件系统,写入了一些数据,卸载了,从我的系统中删除了磁盘(它是一个 2.5 英寸 SATA 驱动器)。一周后,我用热插拔重新连接了驱动器,但无法安装它。.Can't read superblock
说btrfs rescue super-recover
一切都很好。我什至已经完成了btrfs check
,它也证实了一切都很好。
我正在运行较旧的内核:4.15 - 我认为这已经在较新版本的 Btrfs(较新的内核)中得到解决,但对于旧版本 - 只需重新启动即可。
系统将枚举驱动器,并且您的 Btrfs 文件系统挂载应该不会出现问题。
如果不起作用 - 尝试升级内核。
归档时间: |
|
查看次数: |
5755 次 |
最近记录: |