linux - 加密文件系统上缺少 super block

标签 linux encryption filesystems ubuntu-14.04 superblock

我有一个安装了 ubuntu 14 的硬盘。整个磁盘都是加密的。我的默认用户主目录也已加密。最近,在系统崩溃后,我在启动时看到一个 busybox (initramfs)。当我选择以恢复模式启动时,我可以掌握一些错误消息,例如“...无法读取偏移量 xyz 处的 block ...”。

我搜索并找到了这个问答:Boot drops to a (initramfs) prompts/busybox

我从 CD 启动并按照说明进行操作。但是我只能做...

sudo dumpe2fs /dev/sda1

...然后继续检查和修复/dev/sda1 上的 super block 。

如果我尝试...

sudo dumpe2fs /dev/sda2

...我收到以下错误消息:

dumpe2fs: Attempted to read block from filesystem resulted
in short read while trying to open /dev/sda2
Couldn't find valid filesystem superblock.

gparted 显示驱动器的分区和文件系统如下:

partition    file system    size    used    unused    flags
-------------------------------------------------------------
/dev/sda1    ext2           243M    210M    32M       boot
/dev/sda2    extended       465G    -       -         -
  /dev/sda5!!crypt-luks     465G    -       -         -
unallocated  unallocated      1M    -       -         -

sda5 的警告 (!!) 说 “Linux Unified Key Setup 加密还不受支持”

如果我尝试...

sudo dumpe2fs /dev/sda5

...它返回此错误消息:

dumpe2fs: Bad magic number in super-block while trying to open /dev/sda5
Couldn't find valid filesystem superblock.

挂载和读写访问 sda1 没有错误。

任何线索是什么原因以及我如何修复、安装和解密文件系统以正常启动或至少恢复数据?

最佳答案

给定的解决方案遗漏了一些解密文件系统和访问文件系统所需的命令。这是完整的解决方案

  1. 从 Ubuntu USB 启动

  2. >
    cryptsetup luksOpen /dev/rawdevice somename
    
  3. >
    sck /dev/mapper/somename
    

获取备份 super block :

  1. >
    sudo dumpe2fs /dev/mapper/ubuntu--vg-root | grep superblock
    

修复:

  1. >
    sudo fsck -b 32768 /dev/mapper/ubuntu--vg-root -y
    

验证:

  1. >
    mkdir /a
    
  2. >
    sudo mount /dev/mapper/ubuntu--vg-root /a
    

关于linux - 加密文件系统上缺少 super block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33819976/

相关文章:

c - 如何在 ELF 文件中查找变量类型?

linux - 将文件从 Windows 复制到适用于 Linux 的 Windows 子系统 (WSL)

linux - 剪切命令的输出

android - 有没有办法加密 iBeacon UUID 传输?

c++ - 如果我想加密文本,可以使用哪个 c++ 免费(无 GPL)库?

iphone - Objective-C 中的 3DES 加密

language-agnostic - 如何有效地搜索文件系统(算法方面)?

linux - VFS 和 NFS 有什么区别?

java - file.createNewFile() 创建最后修改时间早于实际创建时间的文件

c++ - C 和 C++ 标准库函数如何找到文件末尾?