如何在加密的 fs 上重置密码?

Ced*_*tin 9 filesystems password encryption livecd

我有一台自上个暑假以来就没有使用过的笔记本电脑:我确实在上面安装了 Debian 7 并使用 Debian 的功能对磁盘进行了完全加密,除了一个很小的引导加载程序(或一个很小的分区)我猜(不是太确定这是哪种加密或如何找出)。

确实知道加密文件系统的密码,因此系统可以启动,但是我遇到了登录提示:我确实忘记了密码。

看到我知道加密文件系统的密码,我认为我可以从 Live CD(甚至可能从 Debian 安装 CD?)启动并以某种方式“挂载”加密分区。

如果是这种情况,有人可以向我解释如何执行此操作吗?(知道我从未手动安装加密分区/文件系统)

And*_*ese 16

全盘加密通常使用dm-cryptDevice Mapper 目标完成,内部带有嵌套的 LVM(逻辑卷管理器)。所以要重置你的密码,你必须

  1. 解锁/打开加密容器;这是使用cryptsetup
  2. 激活逻辑卷;vgchange用于此。

通常你不需要关心这个。只需让initrd你的发行版提供的来完成这项工作,但告诉它不要启动/sbin/init而是其他东西——shell 会很好。只需init=/bin/sh在引导加载程序中附加到内核​​的命令行(使用 GRUB,您可以按下E相应的引导条目来编辑条目)。

然后你的内核应该正常启动,启动到initrd它应该询问你的密码并设置你的文件系统,但不是启动系统,而是让你进入一个 shell。在那里你必须

  1. 重新挂载/读写:mount -o rw,remount /
  2. 使用重置密码passwd <user>(因为您是root,所以不会提示您输入旧密码)
  3. 重新挂载/只读:(mount -o ro,remount /跳过这可能会混淆您的初始化脚本)
  4. 使用exec /sbin/init(或简单地reboot -f)启动常规的 init 。

如果这不起作用,您将不得不更加努力地采用该方法并从“外部”进行,即启动 Live CD。通常这应该可以通过使用 Debian 安装 CD 来实现——应该安装工具,因为安装程序必须以某种方式设置使用相同模式的加密:

  1. 启动 Live CD

  2. 通过发出打开加密分区

    # cryptsetup luksOpen /dev/<partition> some_name
    
    Run Code Online (Sandbox Code Playgroud)

    <partition>您的加密分区名称应该在哪里(sda2,可能)。 some_name只是……一些名字。这将提示您输入磁盘的加密密码并创建一个名为/dev/mapper/some_name.

  3. 激活逻辑卷。这通常应该通过发出

    # vgscan
    # vgchange -ay
    
    Run Code Online (Sandbox Code Playgroud)

    这将为 LVM 中的每个逻辑卷创建块设备文件/dev/mapper/

  4. 挂载包含/文件系统的卷:

    # mount /dev/mapper/<vgname>-<lvname> /mnt
    
    Run Code Online (Sandbox Code Playgroud)

    其中<vgname><lvname>是卷组和逻辑卷的名称。这取决于发行版的设置方式,但只要看看/dev/mapper/,通常名称是不言自明的。

  5. 相应地更改您的密码passwd <user>