全盘加密通常是使用dm-crypt
Device Mapper目标和内部嵌套的LVM(逻辑卷管理器)完成的。因此,要重置密码,您必须
- 解锁/打开加密容器;这是使用完成的
cryptsetup
- 激活逻辑卷;
vgchange
用于此。
通常,您不需要关心这一点。只需让initrd
您的发行版提供的功能即可完成工作,但告诉它不要开始,/sbin/init
而是告诉其他人-一个外壳会很好。只需init=/bin/sh
在引导加载程序中添加到内核的命令行即可(使用GRUB时,您可以按下E并选择适当的引导条目进行编辑)。
然后,您的内核应正常启动,引导至,initrd
该内核将要求您输入密码并设置文件系统,但与其将系统启动,不如将其放入外壳中。在那里你必须
- 重新安装
/
读写:mount -o rw,remount /
- 使用重置密码
passwd <user>
(因为您root
将不会被提示输入旧密码)
- 重新挂载为
/
只读:(mount -o ro,remount /
跳过此操作可能会使您的初始化脚本感到困惑)
- 使用
exec /sbin/init
(或简单地reboot -f
)启动常规init 。
如果这不起作用,则您将需要更加努力地采取这种方法,并从“外部”进行操作,也就是引导Live CD。通常,这应该可以通过使用Debian安装CD来实现-应该安装工具,因为安装程序必须以某种方式设置使用相同模式的加密:
引导Live CD
通过发出打开加密的分区
# cryptsetup luksOpen /dev/<partition> some_name
<partition>
您的加密分区名称应该在哪里(sda2
,可能是)。 some_name
只是……一些名字。这将提示您输入磁盘的加密密码,并创建一个名为的块设备/dev/mapper/some_name
。
激活逻辑卷。通常应该通过发出
# vgscan
# vgchange -ay
这将为LVM中的每个逻辑卷创建块设备文件/dev/mapper/
。
挂载包含/
文件系统的卷:
# mount /dev/mapper/<vgname>-<lvname> /mnt
其中<vgname>
和<lvname>
是卷组和逻辑卷的名称。这取决于发行版的设置方式,但是只要看一看/dev/mapper/
,通常名称是不言而喻的。
相应地更改密码passwd <user>
。