[Bug Report] deepin 25开机不进入解锁LUKS硬盘的输密码界面,而进入initramfs Resolved
Tofloor
poster avatar
deepin
2025-07-02 21:31
Author

7月7日:解决方案

我重装了软件包:apt reinstall cryptsetup cryptsetup-bin cryptsetup-initramfs libcryptsetup12 usec-boot-crypt。然后就正常了。

我在重装的时候,apt显示:usec-boot-crypt这个包未被安装,但是存在着它的配置文件。这也许是因为之前的更新不小心把这个包删掉了。

重新安装usec-boot-crypt后,电脑启动时就能正常地进入解锁硬盘的界面了。


7月2日:原来的问题

系统配置如下:

  1. OS: Deepin 25 x86_64
  2. Kernel: 6.6.93-amd64-desktop-hwe
  3. Packages: 2380 (dpkg), 33 (flatpak)
  4. Shell: bash 5.2.21
  5. DE: DDE
  6. WM: KWin
  7. Terminal: deepin-terminal

在安装系统时,我选择了用LUKS加密整个硬盘。

我的deepin 25的所有软件都保持最新。

  1. 2025年7月2日下午更新了几个以“dde-”开头的包,并允许文件管理系统自我更新(底下的任务栏中央上方弹出一个窗口,是一个更新的通知,要我确认)。
  2. 重启后,系统会出现选择“启动deepin 25”或“启动对应于一个snapshot备份的deepin 25版本”。
  3. 正常情况下,接下来应该进入解锁硬盘的页面(中间有一个框,要求我输入密码)。
  4. 然而此时直接进入initramfs。

我目前的解决办法是:每次开机时手动解锁硬盘。

  1. 在进入了initramfs后,输入下述命令。
  2. cryptsetup luksOpen /dev/nvme0n1p3 TEST。(“TEST”是一个不重要的别名;“nvme0n1”是我的硬盘自带的名称,类似于“sda”;“p3”表示特定的一个分区,因为此时的/dev中存在着“nvme0”、“nvme0n1”、“nvme0n1p1”、“nvme0n1p2”、“nvme0n1p3”)
  3. fsck -y /dev/nvme0n1*(这一步的结果类似于“Boot: clean, 444/12334 files, 12345/123456 blocks”,记不清具体数值了;这一步有时可以省略)
  4. exit(然后会显示一些关于挂载的命令,接着就进入需要输入用户密码的登录界面了)

有些时候在进入initramfs时,会显示一两行英文,大致意思是:找不到对应于某个“UUID”的设备,然后“dropped”到了initramfs。(我觉得这是因为加密的硬盘还没有解锁)

我现在只能每次手动解锁加密的硬盘,系统的其他功能都正常。

希望早日修复开机时输入密码、解锁硬盘的界面。

Reply Favorite View the author
All Replies
130******17
deepin
2025-07-07 09:43
#1

进系统后看一下/etc/crypttab里面有没有相关条目,没有的话添加一条

luks_crypt0 /dev/nvme0n1p3 none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass

上述第二个字段替换为实际的物理分区

保存后执行 update-initramfs -u,再重启试试

Reply View the author
deepin
2025-07-07 10:26
#2
130******17

进系统后看一下/etc/crypttab里面有没有相关条目,没有的话添加一条

luks_crypt0 /dev/nvme0n1p3 none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass

上述第二个字段替换为实际的物理分区

保存后执行 update-initramfs -u,再重启试试

抱歉,似乎还是无法解决问题sad

/etc/crypttab 原本的内容如下:

# 				
luks_crypt0 UUID=a861213c-f9d2-4af9-98bb-93ecca8ceaff  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass

这会导致我在这个帖子中报告的问题:无法找到对应于这个UUID的设备。

我后来更改了几次/etc/crypttab的内容,然后运行sudo update-initramfs -u,可是依然会进入initramfs:

# 				
luks_crypt0 /dev/nvme0n1p3  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass
# 				
luks_crypt0 /dev/nvme0n1  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass
# 				
luks_crypt0 UUID=a861213c-f9d2-4af9-98bb-93ecca8ceaff  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass

luks_crypt0 /dev/nvme0n1  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass

luks_crypt0 /dev/nvme0n1p1  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass

luks_crypt0 /dev/nvme0n1p2  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass

luks_crypt0 /dev/nvme0n1p3  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass

这几种配置依然会导致原来的问题(进入initramfs,需要我手动解锁硬盘)。

另外,我再补充一下initramfs中命令行的一些细节:

(initramfs) cryptsetup luksOpen /dev/nvme0n1p3 TEST
Enter passphrase for /dev/nvme0n1p3:
(initramfs) exit
Roota:clean, 223755/1638400 files, 2005658/6544640 blocks
mount -t ext4 /dev/mapper/vg1751457821-_dde_data /root/persistent
OSTREE=/ostree/data/f30edf82a126...88c.0/checkout
do data layer mount usr
do data layer mount opt
do data layer mount etc
2025/07/07 10:06:04 Failed to load config:failed to load config from /etc/deepin-immutable-ctl/deepin-immutable-ctl.conf: open /etc/deepin-immut...  file not found...
backend_syslog.go:49:  syslog is not availabel: Unix syslog delivery error
backend_syslog.go:49:  syslog is not availabel: Unix syslog delivery error
backend_syslog.go:49:  syslog is not availabel: Unix syslog delivery error
backend_syslog.go:49:  syslog is not availabel: Unix syslog delivery error
backend_syslog.go:49:  syslog is not availabel: Unix syslog delivery error
 overlay_manager.go:176: Upper config file:etc/upper/deepin-immutable-ctl/writable.json
 overlay_manager.go:187: Found available config file: /root/etc/deepin-immutable-ctl/writable.json

还是需要手动解锁硬盘,电脑才能正常开机。

Reply View the author
130******17
deepin
2025-07-07 10:58
#3

抱歉,似乎还是无法解决问题sad

/etc/crypttab 原本的内容如下:

# 				
luks_crypt0 UUID=a861213c-f9d2-4af9-98bb-93ecca8ceaff  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass

这会导致我在这个帖子中报告的问题:无法找到对应于这个UUID的设备。

我后来更改了几次/etc/crypttab的内容,然后运行sudo update-initramfs -u,可是依然会进入initramfs:

# 				
luks_crypt0 /dev/nvme0n1p3  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass
# 				
luks_crypt0 /dev/nvme0n1  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass
# 				
luks_crypt0 UUID=a861213c-f9d2-4af9-98bb-93ecca8ceaff  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass

luks_crypt0 /dev/nvme0n1  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass

luks_crypt0 /dev/nvme0n1p1  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass

luks_crypt0 /dev/nvme0n1p2  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass

luks_crypt0 /dev/nvme0n1p3  none luks,initramfs,keyscript=/lib/usec-crypt-kit/usec-askpass

这几种配置依然会导致原来的问题(进入initramfs,需要我手动解锁硬盘)。

另外,我再补充一下initramfs中命令行的一些细节:

(initramfs) cryptsetup luksOpen /dev/nvme0n1p3 TEST
Enter passphrase for /dev/nvme0n1p3:
(initramfs) exit
Roota:clean, 223755/1638400 files, 2005658/6544640 blocks
mount -t ext4 /dev/mapper/vg1751457821-_dde_data /root/persistent
OSTREE=/ostree/data/f30edf82a126...88c.0/checkout
do data layer mount usr
do data layer mount opt
do data layer mount etc
2025/07/07 10:06:04 Failed to load config:failed to load config from /etc/deepin-immutable-ctl/deepin-immutable-ctl.conf: open /etc/deepin-immut...  file not found...
backend_syslog.go:49:  syslog is not availabel: Unix syslog delivery error
backend_syslog.go:49:  syslog is not availabel: Unix syslog delivery error
backend_syslog.go:49:  syslog is not availabel: Unix syslog delivery error
backend_syslog.go:49:  syslog is not availabel: Unix syslog delivery error
backend_syslog.go:49:  syslog is not availabel: Unix syslog delivery error
 overlay_manager.go:176: Upper config file:etc/upper/deepin-immutable-ctl/writable.json
 overlay_manager.go:187: Found available config file: /root/etc/deepin-immutable-ctl/writable.json

还是需要手动解锁硬盘,电脑才能正常开机。

发一下进入系统后执行blkid和lsblk的结果。如果说没有找到对应分区,可能是分区改变了。
另一种可能是解锁组件损坏了,尝试重装apt reinstall cryptsetup cryptsetup-bin cryptsetup-initramfs libcryptsetup12 usec-boot-crypt

Reply View the author
deepin
2025-07-07 11:12
#4
130******17

发一下进入系统后执行blkid和lsblk的结果。如果说没有找到对应分区,可能是分区改变了。
另一种可能是解锁组件损坏了,尝试重装apt reinstall cryptsetup cryptsetup-bin cryptsetup-initramfs libcryptsetup12 usec-boot-crypt

非常感谢!like 问题已被解决。

我重装了软件包:apt reinstall cryptsetup cryptsetup-bin cryptsetup-initramfs libcryptsetup12 usec-boot-crypt。然后就正常了。

我在重装的时候,apt显示:usec-boot-crypt这个包未被安装,但是存在着它的配置文件。这也许是因为之前的更新不小心把这个包删掉了。

重新安装usec-boot-crypt后,电脑启动时就能正常地进入解锁硬盘的界面了。

Reply View the author