我已经安装了 2021 年的 kali Linux 副本,直到今天才更新它,更新后 xfce 重新加载并出现兼容性问题,所以我重新启动了我的电脑。然后 kali Linux 工作完美,但我仍然想继续我的更新。
当然,在我关闭电脑后,它中断了安装,所以我必须
sudo apt --fix-missing install
再次执行,它开始修复损坏的软件包,直到到达“grub-efi-amd64”软件包,然后冻结在
Installing for x86_64-efi platform
我真的不明白为什么它会扰乱 UFI,因为 kali linux 和 grub 可以完美启动。
那么,我不能跳过 grub-efi-amd64 软件包、忽略它或欺骗 apt 使其已经更新吗?
这里有一些可能有帮助的信息: - 它是 acer aspire PC(我听说了很多关于它们与 Linux 令人讨厌的不兼容的事情) - 4GB RAM(我不认为 ram 是问题,我什至做了一些交换存储) - Windows /Kali Linux 双启动。
我已经尝试将软件包设置为手动安装并将其搁置(使用 apt),但没有任何改变。
就是这样,请发送帮助。 (如果你想说如果你不懂 Kali Linux 就不要使用它,切换到 Ubuntu 或者升级是不必要的,请不要因为那太没用了)
谢谢
编辑:我已经禁用了 Windows 快速启动,因此 kali 可以完全访问驱动器。
以下是一些您可能会觉得有用的命令的输出:
┌──(azizbg㉿localhost)-[~]
└─$ efibootmgr
BootCurrent: 0004
Timeout: 0 seconds
BootOrder: 0004,0001,2001,2002,2003
Boot0000* USB HDD: Generic Flash Disk PciRoot(0x0)/Pci(0x15,0x0)/USB(2,0)/HD(1,MBR,0x78d3d2,0x800,0xf3b800)RC
Boot0001* Windows Boot Manager HD(2,GPT,9ca61072-663b-4c54-9198-bccb2732699e,0xfa000,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot0002* debian HD(2,GPT,9ca61072-663b-4c54-9198-bccb2732699e,0xfa000,0x32000)/File(\EFI\debian\grubx64.efi)
Boot0003* kali HD(2,GPT,9ca61072-663b-4c54-9198-bccb2732699e,0xfa000,0x32000)/File(\EFI\kali\grubx64.efi)
Boot0004* Windows Boot Manager HD(2,GPT,9ca61072-663b-4c54-9198-bccb2732699e,0xfa000,0x32000)/File(\EFI\kali\grubx64.efi)57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000033000100000010000000040000007fff0400
Boot2001* EFI USB Device RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network RC
┌──(azizbg㉿localhost)-[~]
└─$ lsblk -o +PARTUUID
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
PARTUUID
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 499M 0 part 93ff9109-4a5e-4db5-a2f2-5643d8ad0445
├─sda2 8:2 0 100M 0 part /boot/efi 9ca61072-663b-4c54-9198-bccb2732699e
├─sda3 8:3 0 16M 0 part 904ebc32-9dfd-4873-a341-cf43b8432521
├─sda4 8:4 0 345G 0 part a5735859-c9d3-4028-9b20-c7a310dda8e5
├─sda5 8:5 0 326G 0 part 36aa181f-c090-4ad8-81cc-a8da2da1c5cb
├─sda6 8:6 0 65.8G 0 part / b86598e5-a35f-49ee-89d6-e24077befae0
├─sda7 8:7 0 977M 0 part [SWAP] 490bd7dc-b489-4ec1-b423-4bfab187349d
├─sda8 8:8 0 92.7G 0 part 9079fbc2-f69c-4d70-8cd2-3727c1ba29a4
└─sda9 8:9 0 519M 0 part b16a2015-51c7-4261-b80a-bd4f38631a6a
sdb 8:16 1 7.6G 0 disk
└─sdb1 8:17 1 7.6G 0 part 0078d3d2-01
答案1
我有一些疯狂的尝试,你可能想尝试一下。我不保证它会有所帮助,并且它可能会完全阻止您启动 Kali 安装。
首先,看看是否可以成功运行这些:
sudo efibootmgr -B -b 0004
sudo efibootmgr -o 0003,0001,2001,2002,2003
然后再次运行,efibootmgr
看看它们是否至少看起来有效果,即,BootOrder
替换0004
为0003
,Boot0004
消失。
我不确定您是否在取消软件包更新后重新启动(或者您是否完全取消了它或只是让它停止)。
如果自更新停止(并被取消)以来您从未重新启动过,您可能希望在不重新启动的情况下恢复软件包更新。如果仍然不起作用,请考虑是否要冒险并重新启动。由于多种原因,您可能无法启动回 Kali。
如果您决定冒险,请efibootmgr
在重新启动之前再次检查并查看是否BootOrder
已更改(来自0003,0001,2001,2002,2003
)。还要检查是否Boot0003
已更改以及是否创建了任何新条目。如果其中任何一个碰巧属实,请考虑先报告,然后再继续做出重新启动决定。
在重新启动之前,您还可以查看是否efibootmgr -B -b 0003
有助于使更新成功运行。但同时删除Boot0004
和Boot0003
意味着很有可能(即,除非您的 UEFI 固件实际上由于某种原因锁定了启动变量和顺序)你将无法再次启动 Kali,除非您在重新启动之前运行此命令来重新创建条目:
efibootmgr -c -d /dev/sda -p 2 -l \EFI\kali\grubx64.efi -L kali
(如果更新有效,则不应运行此命令。只需运行efibootmgr
以检查更新/是否grub-install
为您重新创建了该条目。您甚至可能想检查一下efibootmgr
是否取消更新还首先为您重新创建了该条目。)
仔细检查efibootmgr
该条目是否已成功且正确地Boot0003
重新创建并添加到BootOrder
(最好/预期作为订单中的第一项)(即,看起来与原始条目相同)。
如果您在更新停止并被取消后重新启动,您可能需要先重新重新启动。重新启动后,检查是否Boot0004
仍然消失或返回(和/或是否0003
已被0004
inBootOrder
和替换BootCurrent
)。
0004
如果现在您在输出中看不到任何内容efibootmgr
。尝试恢复包更新并查看是否仍然停止。如果是这样,请efibootmgr -B -b 0003
按照上面所述进行考虑。
如果您看到该Boot0004
条目返回,就好像未执行删除一样,您可能需要检查 UEFI 设置并查看是否有任何选项可以锁定启动变量和/或顺序。 (我只在某些 UEFI 设置中听说过这样的选项。不确定确切的措辞。)如果您能够找到它,请禁用锁定并再次尝试上述解决方案。 (或者甚至可以直接恢复更新,然后先看看它现在是否有效。)