You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

输入正确密码执行cryptsetup open失败,提示“No key available with this passphrase.”求助

输入正确密码执行cryptsetup open失败,提示“No key available with this passphrase.”求助

首先先给你吃颗定心丸:既然正常启动时GRUB能成功打开Slot 0,说明你的LUKS加密容器本身没坏,密码也没问题——问题肯定出在LiveUSB环境的操作细节上。我给你梳理几个排查和解决步骤:

1. 先确认LiveUSB的键盘布局是否正确

你说自己一直用en_US QWERTY键盘,但EndeavourOS的LiveUSB有时候可能默认不是美式键盘(比如部分地区的镜像会用当地布局),这会导致你输入的密码实际和你以为的不一样。

解决方法:
在Live终端里先执行:

loadkeys us

切换到美式键盘布局,然后再重新执行cryptsetup命令试试。

2. 用完整的cryptsetup命令(别漏了映射名)

你之前的命令sudo cryptsetup open /dev/nvme1n1p2其实不完整——cryptsetup需要你指定一个映射名称(比如cryptroot),否则可能会出现异常。正确的命令应该是:

sudo cryptsetup -v open /dev/nvme1n1p2 cryptroot

加上-v参数可以看到详细的执行日志,方便排查问题。输入密码后看具体的错误提示,如果还是密码不对,再回到第一步确认键盘布局。

3. 验证目标分区确实是LUKS加密容器

有时候可能会不小心选错分区,比如误选了EFI分区或者swap分区。用下面的命令确认:

sudo blkid /dev/nvme1n1p2

如果输出里有TYPE="crypto_LUKS",说明你选的分区是对的;如果没有,那你需要重新确认哪个是你的LUKS加密根分区(用lsblk看分区大小和类型,一般根分区是最大的那个)。

4. 查看LUKS密钥槽状态

执行下面的命令查看密钥槽的激活状态:

sudo cryptsetup luksDump /dev/nvme1n1p2

找到Slot 0的部分,确认它的状态是ENABLED——既然GRUB能打开它,这里肯定是ENABLED的,这一步只是再次验证容器本身没问题。

最后补充

等你成功打开LUKS容器后,接下来挂载BTRFS子卷的时候,别忘了指定你原来的子卷(比如/@),命令大概是:

sudo mount /dev/mapper/cryptroot /home/liveuser/m -o subvol=@

不过这是后话,先解决cryptsetup的问题就行。

备注:内容来源于stack exchange,提问作者alles1232

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 11:32:57