如何删除启动项?

如何删除启动项?

在尝试安装/更新内核和类似操作时,我的系统遇到了一些问题;像这样的命令# bootctl install结果为no space left on the device.

我尝试从引导加载程序中删除多余的条目 - 使用 EFI Shell ( bcfg),从 USB 引导,并且efibootmgr- 无济于事:系统重新启动后,我收到一条消息,显示Boot Manager has recovered from an error我可以选择按Esc继续或F1进入 (BIOS) 菜单。我尝试禁用安全启动、删除条目、关闭电脑、取出电池并等待几分钟,然后启动并收到相同的消息。我什至更新了固件,只是为了看看是否是一个错误将条目保留在那里。

这是输出# efibootmgr -v

BootCurrent: 0019
Timeout: 0 seconds
BootOrder: 0017,0018,0019,001A,001B,001C,001D,001E,001F,0020,0021,0022
Boot0010  Setup FvFile(721c8b66-426c-4e86-8e99-3457c46ab0b9)
      dp: 04 06 14 00 66 8b 1c 72 6c 42 86 4e 8e 99 34 57 c4 6a b0 b9 / 7f ff 04 00
Boot0011  Boot Menu FvFile(126a762d-5758-4fca-8531-201a7f57f850)
      dp: 04 06 14 00 2d 76 6a 12 58 57 ca 4f 85 31 20 1a 7f 57 f8 50 / 7f ff 04 00
Boot0012  Diagnostic Splash Screen  FvFile(a7d8d9a6-6ab0-4aeb-ad9d-163e59a7a380)
      dp: 04 06 14 00 a6 d9 d8 a7 b0 6a eb 4a ad 9d 16 3e 59 a7 a3 80 / 7f ff 04 00
Boot0013  Lenovo Diagnostics    FvFile(3f7e615b-0d45-4f80-88dc-26b234958560)
      dp: 04 06 14 00 5b 61 7e 3f 45 0d 80 4f 88 dc 26 b2 34 95 85 60 / 7f ff 04 00
Boot0014  Startup Interrupt Menu    FvFile(f46ee6f4-4785-43a3-923d-7f786c3c8479)
      dp: 04 06 14 00 f4 e6 6e f4 85 47 a3 43 92 3d 7f 78 6c 3c 84 79 / 7f ff 04 00
Boot0015  Rescue and Recovery   FvFile(665d3f60-ad3e-4cad-8e26-db46eee9f1b5)
      dp: 04 06 14 00 60 3f 5d 66 3e ad ad 4c 8e 26 db 46 ee e9 f1 b5 / 7f ff 04 00
Boot0016  MEBx Hot Key  FvFile(ac6fd56a-3d41-4efd-a1b9-870293811a28)
      dp: 04 06 14 00 6a d5 6f ac 41 3d fd 4e a1 b9 87 02 93 81 1a 28 / 7f ff 04 00
Boot0017* USB CD    VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,86701296aa5a7848b66cd49dd3ba6a55)
      dp: 03 0a 24 00 d2 38 78 bc 82 0f 60 4d 83 16 c0 68 ee 79 d2 5b 86 70 12 96 aa 5a 78 48 b6 6c d4 9d d3 ba 6a 55 / 7f ff 04 00
Boot0018* USB FDD   VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,6ff015a28830b543a8b8641009461e49)
      dp: 03 0a 24 00 d2 38 78 bc 82 0f 60 4d 83 16 c0 68 ee 79 d2 5b 6f f0 15 a2 88 30 b5 43 a8 b8 64 10 09 46 1e 49 / 7f ff 04 00
Boot0019* NVMe0 VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,001c199932d94c4eae9aa0b6e98eb8a400)
      dp: 03 0a 25 00 d2 38 78 bc 82 0f 60 4d 83 16 c0 68 ee 79 d2 5b 00 1c 19 99 32 d9 4c 4e ae 9a a0 b6 e9 8e b8 a4 00 / 7f ff 04 00
Boot001A* NVMe1 VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,001c199932d94c4eae9aa0b6e98eb8a401)
      dp: 03 0a 25 00 d2 38 78 bc 82 0f 60 4d 83 16 c0 68 ee 79 d2 5b 00 1c 19 99 32 d9 4c 4e ae 9a a0 b6 e9 8e b8 a4 01 / 7f ff 04 00
Boot001B* ATA HDD2  VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f600)
      dp: 03 0a 25 00 d2 38 78 bc 82 0f 60 4d 83 16 c0 68 ee 79 d2 5b 91 af 62 59 56 44 9f 41 a7 b9 1f 4f 89 2a b0 f6 00 / 7f ff 04 00
Boot001C* ATA HDD3  VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f604)
      dp: 03 0a 25 00 d2 38 78 bc 82 0f 60 4d 83 16 c0 68 ee 79 d2 5b 91 af 62 59 56 44 9f 41 a7 b9 1f 4f 89 2a b0 f6 04 / 7f ff 04 00
Boot001D* ATA HDD0  VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f603)
      dp: 03 0a 25 00 d2 38 78 bc 82 0f 60 4d 83 16 c0 68 ee 79 d2 5b 91 af 62 59 56 44 9f 41 a7 b9 1f 4f 89 2a b0 f6 03 / 7f ff 04 00
Boot001E* ATA HDD1  VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f602)
      dp: 03 0a 25 00 d2 38 78 bc 82 0f 60 4d 83 16 c0 68 ee 79 d2 5b 91 af 62 59 56 44 9f 41 a7 b9 1f 4f 89 2a b0 f6 02 / 7f ff 04 00
Boot001F* USB HDD   VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,33e821aaaf33bc4789bd419f88c50803)
      dp: 03 0a 24 00 d2 38 78 bc 82 0f 60 4d 83 16 c0 68 ee 79 d2 5b 33 e8 21 aa af 33 bc 47 89 bd 41 9f 88 c5 08 03 / 7f ff 04 00
Boot0020* PCI LAN   VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,78a84aaf2b2afc4ea79cf5cc8f3d3803)
      dp: 03 0a 24 00 d2 38 78 bc 82 0f 60 4d 83 16 c0 68 ee 79 d2 5b 78 a8 4a af 2b 2a fc 4e a7 9c f5 cc 8f 3d 38 03 / 7f ff 04 00
Boot0021  Other CD  VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,aea2090adfde214e8b3a5e471856a35406)
      dp: 03 0a 25 00 d2 38 78 bc 82 0f 60 4d 83 16 c0 68 ee 79 d2 5b ae a2 09 0a df de 21 4e 8b 3a 5e 47 18 56 a3 54 06 / 7f ff 04 00
Boot0022  Other HDD VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f606)
      dp: 03 0a 25 00 d2 38 78 bc 82 0f 60 4d 83 16 c0 68 ee 79 d2 5b 91 af 62 59 56 44 9f 41 a7 b9 1f 4f 89 2a b0 f6 06 / 7f ff 04 00
Boot0023* IDER BOOT CDROM   PciRoot(0x0)/Pci(0x14,0x0)/USB(15,1)
      dp: 02 01 0c 00 d0 41 03 0a 00 00 00 00 / 01 01 06 00 00 14 / 03 05 06 00 0f 01 / 7f ff 04 00
Boot0024* IDER BOOT Floppy  PciRoot(0x0)/Pci(0x14,0x0)/USB(15,0)
      dp: 02 01 0c 00 d0 41 03 0a 00 00 00 00 / 01 01 06 00 00 14 / 03 05 06 00 0f 00 / 7f ff 04 00
Boot0025* ATA HDD   VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f6)
      dp: 03 0a 24 00 d2 38 78 bc 82 0f 60 4d 83 16 c0 68 ee 79 d2 5b 91 af 62 59 56 44 9f 41 a7 b9 1f 4f 89 2a b0 f6 / 7f ff 04 00
Boot0026* ATAPI CD  VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,aea2090adfde214e8b3a5e471856a354)
      dp: 03 0a 24 00 d2 38 78 bc 82 0f 60 4d 83 16 c0 68 ee 79 d2 5b ae a2 09 0a df de 21 4e 8b 3a 5e 47 18 56 a3 54 / 7f ff 04 00

我有一台联想ThinkPad P51,它没有软驱,没有CD-ROM,只有一个(NVME)SSD...没有其他东西连接到PC。我在这里要疯了。

任何帮助是极大的赞赏!

编辑:# efibootmgr -v这些是我的台式电脑的结果:

BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0001
Boot0000* Linux Boot Manager    HD(1,GPT,5f8adc83-05ea-47d2-af93-1c80e7956e2f,0x800,0xff800)/File(\EFI\SYSTEMD\SYSTEMD-BOOTX64.EFI)
      dp: 04 01 2a 00 01 00 00 00 00 08 00 00 00 00 00 00 00 f8 0f 00 00 00 00 00 83 dc 8a 5f ea 05 d2 47 af 93 1c 80 e7 95 6e 2f 02 02 / 04 04 46 00 5c 00 45 00 46 00 49 00 5c 00 53 00 59 00 53 00 54 00 45 00 4d 00 44 00 5c 00 53 00 59 00 53 00 54 00 45 00 4d 00 44 00 2d 00 42 00 4f 00 4f 00 54 00 58 00 36 00 34 00 2e 00 45 00 46 00 49 00 00 00 / 7f ff 04 00
Boot0001* UEFI OS       HD(1,GPT,5f8adc83-05ea-47d2-af93-1c80e7956e2f,0x800,0xff800)/File(\EFI\BOOT\BOOTX64.EFI)0000424f
      dp: 04 01 2a 00 01 00 00 00 00 08 00 00 00 00 00 00 00 f8 0f 00 00 00 00 00 83 dc 8a 5f ea 05 d2 47 af 93 1c 80 e7 95 6e 2f 02 02 / 04 04 30 00 5c 00 45 00 46 00 49 00 5c 00 42 00 4f 00 4f 00 54 00 5c 00 42 00 4f 00 4f 00 54 00 58 00 36 00 34 00 2e 00 45 00 46 00 49 00 00 00 / 7f ff 04 00
    data: 00 00 42 4f

编辑2:这是的输出# fdisk -l /dev/nvme0n1

Disk /dev/nvme0n1: 465,76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 980 PRO 500GB               
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: [REDACTED]

Device           Start       End   Sectors   Size Type
/dev/nvme0n1p1    2048   1048575   1046528   511M EFI System
/dev/nvme0n1p2 1050624 976773119 975722496 465,3G Linux filesystem

# df -h /dev/nvme0n1p1

Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p1  510M  510M     0 100% /boot

输出tree /boot

/boot
├── amd-ucode.img
├── EFI
│   ├── BOOT
│   │   └── BOOTX64.EFI
│   ├── Linux
│   │   ├── linux-5.15.79-1-lts-6cbacb3c969c4299bfa70572a86032d6-rolling.efi
│   │   ├── linux-6.0.9-arch1-1-6cbacb3c969c4299bfa70572a86032d6-rolling.efi
│   │   └── linux-6.0.9-zen1-1-zen-6cbacb3c969c4299bfa70572a86032d6-rolling.efi
│   └── systemd
│       └── systemd-bootx64.efi
├── initramfs-linux-fallback.img
├── initramfs-linux.img
├── initramfs-linux-lts-fallback.img
├── initramfs-linux-lts.img
├── initramfs-linux-zen-fallback.img
├── initramfs-linux-zen.img
├── loader
│   ├── entries
│   │   ├── 2022-11-13_19-12-22_linux.conf
│   │   └── 2022-11-13_19-12-22_linux-lts.conf
│   ├── entries.srel
│   ├── loader.conf
│   └── random-seed
├── vmlinuz-linux
├── vmlinuz-linux-lts
└── vmlinuz-linux-zen

6 directories, 20 files

答案1

分区设置是什么?您的 ESP 驱动器有多大?您想使用什么作为启动系统?这里最简单的方法可能是在 /EFI/BOOT 目录下的 /esp 驱动器中创建 bootx64.efi 文件。但是,如果 esp 分区上没有空间,这将是有问题的。

那么问题又来了:你的分区是什么样的? ESP 驱动器有多大?其中有多少已被使用?

附录:

我看到你的ESP大小是500M,应该足以容纳所有启动文件。尽管如此,最好还是看看 500M 有多少正在使用(df -h 会告诉我们)。

我认为,一步一步来是最好的方法。假设 ESP 上实际上有空间(我怀疑有),您需要使用 USB 启动,然后 chroot 到 nvme 的根目录。挂载根分区(例如 /mnt)并将 ESP 挂载为 /mnt 的子目录(例如 /mnt/efi)。然后chroot 到/mnt。现在您应该能够创建一个新的 efi 文件并将其放在 esp 上(在我的示例中为 /mnt/efi)。

或者,您说您已启动到 UEFI shell。进入 shell 后,根据提示符更改为硬盘驱动器上 esp 的 fs#(UEFI 将映射该驱动器等)。因此,在 shell 中,输入 fs0: 或 fs1: 或地图告诉您的任何内容是您的 esp。到达那里后,运行 ls 查看 ESP 上的内容。据推测,您将能够找到可启动的 efi 文件(也许是 bootx64.efi,或者 grubx64.efi)。进入该文件所在的目录后,只需键入其名称即可运行它。那么硬盘能启动吗?

因此有几种可能性:您可以创建一个新的引导 efi 文件,或者您可以在 ESP 上找到现有的 efi 文件。还有另一种可能性:从 UEFI shell 中,如果您的 vmlinuz 文件在那里,您可以使用该文件启动并告诉 UEFI 在哪里找到您的根目录。换句话说,导航到 esp (fs#:)。如果有 vmlinuz 和 initramfs,你可以写一行命令: \vmlinuz root=/dev/nvme??? \initramfs...它应该以这种方式启动。

附录2:令人惊奇的是它已经满了。好吧……这比我希望的要慢一点。我们需要知道是什么占据了该分区上的所有空间。只需列出目录(ls -s 或 ls -hs 以获得人类可读的大小(以 M 为单位))。肯定有一些东西可以删除,但在看到列表之前我们不知道是什么。

附录3:好的...通过运行tree,当然,我们无法看到每个文件的大小。如果您运行 ls -s 或 ls -sh,则会显示每个文件的大小。

无论如何,每个 initramfs 文件都可能在 40M 范围内,因此系统上的这些文件就占用了大量空间。每个vmlinuz文件大概有10M左右。因此,通过您的六个 initramfs 映像(总共大约 240M 或更多)和三个 vmlinuz 文件(大约 30-40M 以上),您的第一个近 300M 正在与它们一起使用。我无法知道各种 efi 文件有多大。

我不使用 systemd-boot,我猜这就是创建所有 linux...rolling.efi 文件的原因。所以我不知道它们有多大。

但是:启动时只需要一个 vmlinuz-linux 文件和一个 initramfs-linux.img 文件。

我建议您不要删除无关文件(直到我们知道它们是无关的),而是将它们移动到根驱动器(nvme0n1p2)。最简单的方法是移动 initramsf-lts 和 initramfs-zen 文件。这应该会释放足够的空间,以便您在升级到 6.09 时可以返回并让一切正常工作。

答案2

可能是引导管理器。
尝试这个命令:

sudo grub-mkconfig
sudo update-grub

如果这没有帮助,我只能建议重新安装。重新安装之前,请使用“数据定义”删除 nvme 驱动器。您可以从实时 USB 运行 DD。

注意,存储设备上的所有数据将被不可恢复地删除,请提前备份数据!

sudo dd if=/dev/zero of=/dev/nvme0n1 status=progress

也许其他人有更好的解决方案。

相关内容