如何在加密的文件系统上重置密码?

如何在加密的文件系统上重置密码?

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

知道加密文件系统的密码,以便系统启动,但我卡住了登录提示:我确实忘记了密码。

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

如果是这样,有人可以解释我该怎么做吗? (知道我从未手动安装过加密分区/文件系统)

答案1

全盘加密通常使用dm-crypt设备映射器目标来完成,其中包含嵌套的 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

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

  1. 启动 Live CD

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

    # cryptsetup luksOpen /dev/<partition> some_name
    

    其中<partition>应该是您的加密分区名称(sda2可能是)。 some_name只是……某个名字。这将提示您输入磁盘的加密密码并创建一个名为 的块设备/dev/mapper/some_name

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

    # vgscan
    # vgchange -ay
    

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

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

    # mount /dev/mapper/<vgname>-<lvname> /mnt
    

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

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

相关内容