这段日志核心反映了 Deepin 系统安装过程中 GRUB 引导程序配置失败,具体原因和关键信息解析如下:
- 核心错误根源: 所有警告和错误最终指向同一问题——“No space left on device”(设备空间不足),且聚焦于 EFI 相关操作,说明是电脑的** EFI 系统分区(ESP 分区)容量不足**,导致无法完成引导项注册。
- 关键日志含义拆解:
- “Cannot set EFI variable Boot0000”:EFI 变量(用于记录启动项信息,如“Boot0000”是第一个启动项)无法设置,因空间不足。
- “efivarfs_set_variable: writing to fd 7 failed”:向 EFI 变量文件系统(efivarfs,用于管理 EFI 变量)写入数据时失败,本质是 ESP 分区无剩余空间。
- “grub-install error: failed to register the EFI boot entry”:GRUB 引导程序(系统启动的核心组件)无法在 EFI 中注册启动项,直接导致安装中断。
- 安装环境信息: 日志中“--target=x86_64-efi --uefi-secure-boot deepin”表明,安装程序正以 UEFI 安全启动模式(主流现代电脑启动模式)为 64 位 Deepin 系统配置 GRUB,但因 ESP 分区空间不够,整个引导配置流程失败。
根据之前日志中“设备空间不足”的核心原因(EFI 系统分区(ESP 分区)容量不足,导致 GRUB 无法注册引导项),需分「安装系统时」和「已安装系统后」两种场景针对性解决,以下是具体步骤(以 Deepin/Linux 系统为例,Windows 场景可参考类似逻辑):
一、场景1:安装 Deepin 系统时遇到此问题(最常见)
安装过程中触发 ESP 分区空间不足,本质是当前电脑的 ESP 分区剩余容量<GRUB 引导程序所需空间(通常需至少 100-200MB 剩余空间,建议 ESP 分区总容量预留 512MB-1GB),需通过调整分区解决:
步骤1:确认 ESP 分区现状
-
进入 Deepin 安装界面的「分区工具」(或通过安装 U 盘启动后,在终端执行
lsblk
或fdisk -l
命令); -
找到 ESP 分区:通常标记为
EFI System Partition
,文件系统为vfat
,大小可能仅 100MB(部分旧电脑默认值),且剩余空间接近 0。步骤2:解决思路(二选一,按难度从低到高)
方案A:删除 ESP 分区内无用的旧引导文件(优先尝试,无需重新分区)
若 ESP 分区内存在其他系统(如旧 Windows、旧 Linux 发行版)的残留引导文件,可直接删除释放空间:
-
在安装界面打开「终端」(部分安装程序有「试用系统」选项,进入后打开终端更方便);
-
挂载 ESP 分区(假设 ESP 分区路径为
/dev/sda1
,需根据lsblk
结果替换):mkdir /mnt/esp # 创建临时挂载目录 mount /dev/sda1 /mnt/esp # 挂载 ESP 分区到 /mnt/esp
-
查看 ESP 分区内的引导目录(不同系统的引导文件路径不同):
ls /mnt/esp/EFI # 通常所有系统的引导文件都在 EFI 目录下
- 常见目录:
Microsoft
(Windows)、ubuntu
(Ubuntu)、deepin
(旧 Deepin 引导)、boot
(通用引导)等;
- 常见目录:
-
删除无用目录(如已卸载的旧系统引导):
# 示例:删除旧 Windows 引导(若已无 Windows 系统) rm -rf /mnt/esp/EFI/Microsoft # 示例:删除旧 Ubuntu 引导(若已无 Ubuntu 系统) rm -rf /mnt/esp/EFI/ubuntu
-
查看剩余空间是否足够:
df -h /mnt/esp # 若剩余空间 ≥100MB,即可重新执行 GRUB 安装
-
卸载 ESP 分区,返回安装界面继续:
umount /mnt/esp
方案B:扩容 ESP 分区(若无无用文件可删,需调整硬盘分区)
若 ESP 分区本身总容量过小(如仅 100MB),需从其他分区“挪用”空间扩容(需注意:此操作会修改分区表,建议先备份重要数据):
-
进入 Deepin 安装 U 盘的「试用系统」,打开「GParted 分区编辑器」(Deepin 预装,或通过
sudo apt install gparted
安装); -
找到 ESP 分区(如
/dev/sda1
)和相邻的空闲分区/可缩减分区(建议选择空间充足的非系统分区,如NTFS
数据分区); -
缩减相邻分区的容量(腾出空间给 ESP):
- 右键点击相邻分区 →「Resize/Move」→ 拖动分区末尾的滑块,缩减出 至少 200MB 空闲空间(空闲空间需与 ESP 分区物理相邻,即无其他分区隔开);
- 点击「Apply」(对勾图标)执行操作,等待完成(过程中勿中断,避免分区损坏)。
- 扩容 ESP 分区:
- 右键点击 ESP 分区 →「Resize/Move」→ 拖动 ESP 分区的末尾滑块,将相邻的空闲空间“合并”到 ESP 分区;
- 再次点击「Apply」执行,完成后 ESP 分区总容量建议 ≥512MB。
-
重启电脑,重新进入 Deepin 安装界面,此时 ESP 空间足够,可正常完成 GRUB 安装。
方案C:重新创建 ESP 分区(若硬盘无重要数据,最彻底)
若电脑硬盘为空(或可格式化),可在安装时直接重新创建一个足够大的 ESP 分区:
-
进入 Deepin 安装的「分区步骤」,选择「手动分区」;
-
找到硬盘的「未分配空间」,新建分区:
- 分区类型:
EFI System Partition
(ESP 分区);- 文件系统:
vfat
; - 大小:设置为 512MB 或 1GB(避免后续空间不足);
- 挂载点:无需手动设置(安装程序会自动识别为 ESP 分区);
- 文件系统:
-
继续完成其他分区(如
/
根分区、swap
交换分区)的创建,后续安装流程会自动将 GRUB 写入新的 ESP 分区,不会再提示空间不足。二、场景2:已安装 Deepin 系统后,更新 GRUB 时遇到此问题
已正常使用的系统,因更新 GRUB 或新增引导项导致 ESP 空间不足,解决步骤更简单:
-
打开终端,先查看 ESP 分区的挂载路径和剩余空间:
# 查看 ESP 分区挂载情况(通常已自动挂载到 /boot/efi) df -h | grep vfat # 若输出类似 "/dev/sda1 512M 480M 32M 94% /boot/efi",说明剩余空间不足
-
进入 ESP 分区的引导目录,删除无用引导文件:
cd /boot/efi/EFI # 进入引导文件根目录 ls # 查看所有系统的引导目录(如 deepin、Microsoft、ubuntu 等) # 删除无用目录(如已卸载的旧系统引导,示例:删除旧 Ubuntu 引导) sudo rm -rf ./ubuntu
-
清理 GRUB 缓存文件(进一步释放空间):
sudo rm -rf /boot/efi/EFI/deepin/grub/grub.cfg.old # 旧 GRUB 配置文件 sudo update-grub # 重新生成 GRUB 配置(此时会自动写入 ESP 分区,因空间已足够)
三、关键注意事项
-
备份数据优先:修改分区表(扩容/删除分区)前,务必用移动硬盘备份硬盘内的重要文件,避免操作失误导致数据丢失;
-
区分 UEFI 和 Legacy 模式:此问题仅发生在 UEFI 启动模式(依赖 ESP 分区),若电脑是 Legacy 模式(MBR 分区表,无 ESP 分区),不会出现此类错误;
-
ESP 分区容量建议:新安装系统时,ESP 分区总容量建议设置为 512MB-1GB,足以容纳多个系统的引导文件(如 Windows + Deepin 双系统),避免后续频繁出现空间不足。 通过以上步骤,可彻底解决“EFI 设备空间不足导致 GRUB 安装失败”的问题,根据自身是否已安装系统、是否有数据备份等情况,选择对应方案即可。
写的清清楚楚:No space left on device. 磁盘空间不足
可是efi还剩200多MB,不应该安装失败才对啊,所以efi需要多少才能安装
好吧,我扩到500MB试试
如果首次安装不熟悉,建于先看一下官网的安装教程哈
https://www.deepin.org/zh/deepin-25-installation/
估计楼主的ESP分区才100吧? 我的260M也没问题,我的是双系统win11+Deepin 25
我改到1GB了还是不行
大概知道了,我ventoy是MBR的,我试试换成GPT再试一次
我换rufus再试试
还是不行,bios升级了,也重置过了,12代12900H,幻16
还是不行,bios升级了,也重置过了,12代12900H,幻16
报错是什么?是不是安全启动没关,取消勾选显卡驱动,这些都试试
报错是什么?是不是安全启动没关,取消勾选显卡驱动,这些都试试
我大概知道了,我主板bios里的EFI NVRAM存满了,也就是/sys/firmware/efi/efivars,但是我不知道哪些可以删哪些不能删,没有dump开头的文件
问题是定位到了,可是无从下手
可是efi还剩200多MB,不应该安装失败才对啊,所以efi需要多少才能安装
我的efi是100M,反正你发的日志写的是空间不足
已经解决了,就是主板NVRAM内存不足无法进行写入,linux内核中有个特性,在启动安装iso之前,按e键在linux行的--前加入一个efi_no_storage_paranoia参数,就可以正常安装和启动了
Popular Events
More
ventory也升级过了,用过两种不同的启动方式都不行
deepin-installer-preinit.txt
deepin-installer-init.txt
deepin-installer-core.txt
deepin-installer.txt
2025-10-14, 13:04:51.734 [Warning] [Process.cpp Process::onReadWarning 31] grub-install: warning: Cannot set EFI variable Boot0000.
grub-install: warning: efivarfs_set_variable: writing to fd 7 failed: No space left on device.
grub-install: warning: _efi_set_variable_mode: ops->set_variable() failed: No space left on device.
grub-install: error: failed to register the EFI boot entry: No space left on device.
2025-10-14, 13:04:51.738 [Info ] [Process.cpp Process::onReadInfo 24] [2025-10-14 05:04:51][error] grub-install failed with --target=x86_64-efi --uefi-secure-boot deepin
2025-10-14, 13:04:51.739 [Error ] [ProgressFrame.cpp ProgressFrame::exitInstall 113] exit install. "/usr/share/deepin-installer/tools/hooks/in_chroot/04_setup_bootloader.job hooks run error."
2025-10-14, 13:05:28.564 [Info ] [DeviceManager.cpp DeviceManager::scanUSBDeviceInfos 411] startDev is : "/dev/sda" startDevPart is : "/dev/sda1"
2025-10-14, 13:05:28.569 [Warning] [DeviceManager.cpp DeviceManager::mountUSBDevices 909] fileInfoStr is : "0 250017792 linear /dev/sda1 0" 0 250017792 linear /dev/sda1 0
2025-10-14, 13:05:28.669 [Info ] [CommonFunc.cpp CommonFunc::mount 1574] "Command: mount /dev/mapper/Ventoy1 /media/Ventoy1 succeed."
2025-10-14, 13:05:29.679 [Info ] [DeviceManager.cpp DeviceManager::scanUSBDeviceInfos 411] startDev is : "/dev/sda" startDevPart is : "/dev/sda1"
2025-10-14, 13:05:30.703 [Info ] [DeviceManager.cpp DeviceManager::scanUSBDeviceInfos 411] startDev is : "/dev/sda" startDevPart is : "/dev/sda1"