在尝试安装/更新内核和类似操作时,我的系统遇到了一些问题;像# bootctl install
result in这样的命令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
我有一台 Lenovo 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
什么是分区设置?你的ESP驱动有多大?你想用什么作为你的引导系统?这里最简单的方法可能是在 /esp 驱动器的 /EFI/BOOT 目录下创建一个 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:好的...通过运行树,当然,我们无法看到每个文件的大小。如果您运行 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 时正常工作。
可能是引导管理器。
试试这个命令:
如果这没有帮助,我只能建议重新安装。在重新安装之前,使用“数据定义”删除 nvme 驱动器。您可以从实时 USB 运行 DD。
注意,存储设备上的所有数据将被删除且无法恢复,请提前备份数据!
也许其他人有更好的解决方案。