[Feedback on issues] [已解决]主板NVRAM不足导致安装失败 Resolved
Tofloor
poster avatar
乌堆小透明
deepin
2025-10-14 14:03
Author

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"

Reply Favorite View the author
All Replies
𰻞𰻝面
deepin
2025-10-14 14:08
#1

写的清清楚楚:No space left on device. 磁盘空间不足

Reply View the author
kookboy
deepin
2025-10-14 14:14
#2

这段日志核心反映了 Deepin 系统安装过程中 GRUB 引导程序配置失败,具体原因和关键信息解析如下:

  1. 核心错误根源: 所有警告和错误最终指向同一问题——“No space left on device”(设备空间不足),且聚焦于 EFI 相关操作,说明是电脑的** EFI 系统分区(ESP 分区)容量不足**,导致无法完成引导项注册。
  2. 关键日志含义拆解
  • “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 中注册启动项,直接导致安装中断。
  1. 安装环境信息: 日志中“--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 分区现状

  1. 进入 Deepin 安装界面的「分区工具」(或通过安装 U 盘启动后,在终端执行 lsblkfdisk -l 命令);

  2. 找到 ESP 分区:通常标记为 EFI System Partition,文件系统为 vfat,大小可能仅 100MB(部分旧电脑默认值),且剩余空间接近 0。

    步骤2:解决思路(二选一,按难度从低到高)

    方案A:删除 ESP 分区内无用的旧引导文件(优先尝试,无需重新分区)

    若 ESP 分区内存在其他系统(如旧 Windows、旧 Linux 发行版)的残留引导文件,可直接删除释放空间:

  3. 在安装界面打开「终端」(部分安装程序有「试用系统」选项,进入后打开终端更方便);

  4. 挂载 ESP 分区(假设 ESP 分区路径为 /dev/sda1,需根据 lsblk 结果替换):

    mkdir /mnt/esp # 创建临时挂载目录
    mount /dev/sda1 /mnt/esp # 挂载 ESP 分区到 /mnt/esp
    
  5. 查看 ESP 分区内的引导目录(不同系统的引导文件路径不同):

    ls /mnt/esp/EFI # 通常所有系统的引导文件都在 EFI 目录下
    
    • 常见目录:Microsoft(Windows)、ubuntu(Ubuntu)、deepin(旧 Deepin 引导)、boot(通用引导)等;
  6. 删除无用目录(如已卸载的旧系统引导):

    # 示例:删除旧 Windows 引导(若已无 Windows 系统)
    rm -rf /mnt/esp/EFI/Microsoft
    # 示例:删除旧 Ubuntu 引导(若已无 Ubuntu 系统)
    rm -rf /mnt/esp/EFI/ubuntu
    
  7. 查看剩余空间是否足够:

    df -h /mnt/esp # 若剩余空间 ≥100MB,即可重新执行 GRUB 安装
    
  8. 卸载 ESP 分区,返回安装界面继续:

    umount /mnt/esp
    
    方案B:扩容 ESP 分区(若无无用文件可删,需调整硬盘分区)

    若 ESP 分区本身总容量过小(如仅 100MB),需从其他分区“挪用”空间扩容(需注意:此操作会修改分区表,建议先备份重要数据):

  9. 进入 Deepin 安装 U 盘的「试用系统」,打开「GParted 分区编辑器」(Deepin 预装,或通过 sudo apt install gparted 安装);

  10. 找到 ESP 分区(如 /dev/sda1)和相邻的空闲分区/可缩减分区(建议选择空间充足的非系统分区,如 NTFS 数据分区);

  11. 缩减相邻分区的容量(腾出空间给 ESP):

  • 右键点击相邻分区 →「Resize/Move」→ 拖动分区末尾的滑块,缩减出 至少 200MB 空闲空间(空闲空间需与 ESP 分区物理相邻,即无其他分区隔开);
    • 点击「Apply」(对勾图标)执行操作,等待完成(过程中勿中断,避免分区损坏)。
  1. 扩容 ESP 分区:
  • 右键点击 ESP 分区 →「Resize/Move」→ 拖动 ESP 分区的末尾滑块,将相邻的空闲空间“合并”到 ESP 分区;
    • 再次点击「Apply」执行,完成后 ESP 分区总容量建议 ≥512MB。
  1. 重启电脑,重新进入 Deepin 安装界面,此时 ESP 空间足够,可正常完成 GRUB 安装。

    方案C:重新创建 ESP 分区(若硬盘无重要数据,最彻底)

    若电脑硬盘为空(或可格式化),可在安装时直接重新创建一个足够大的 ESP 分区:

  2. 进入 Deepin 安装的「分区步骤」,选择「手动分区」;

  3. 找到硬盘的「未分配空间」,新建分区:

  • 分区类型:EFI System Partition(ESP 分区);
    • 文件系统:vfat
    • 大小:设置为 512MB 或 1GB(避免后续空间不足);
    • 挂载点:无需手动设置(安装程序会自动识别为 ESP 分区);
  1. 继续完成其他分区(如 / 根分区、swap 交换分区)的创建,后续安装流程会自动将 GRUB 写入新的 ESP 分区,不会再提示空间不足。

    二、场景2:已安装 Deepin 系统后,更新 GRUB 时遇到此问题

    已正常使用的系统,因更新 GRUB 或新增引导项导致 ESP 空间不足,解决步骤更简单:

  2. 打开终端,先查看 ESP 分区的挂载路径和剩余空间:

    # 查看 ESP 分区挂载情况(通常已自动挂载到 /boot/efi)
    df -h | grep vfat
    # 若输出类似 "/dev/sda1 512M 480M 32M 94% /boot/efi",说明剩余空间不足
    
  3. 进入 ESP 分区的引导目录,删除无用引导文件:

    cd /boot/efi/EFI # 进入引导文件根目录
    ls # 查看所有系统的引导目录(如 deepin、Microsoft、ubuntu 等)
    # 删除无用目录(如已卸载的旧系统引导,示例:删除旧 Ubuntu 引导)
    sudo rm -rf ./ubuntu
    
  4. 清理 GRUB 缓存文件(进一步释放空间):

    sudo rm -rf /boot/efi/EFI/deepin/grub/grub.cfg.old # 旧 GRUB 配置文件
    sudo update-grub # 重新生成 GRUB 配置(此时会自动写入 ESP 分区,因空间已足够)
    

    三、关键注意事项

  5. 备份数据优先:修改分区表(扩容/删除分区)前,务必用移动硬盘备份硬盘内的重要文件,避免操作失误导致数据丢失;

  6. 区分 UEFI 和 Legacy 模式:此问题仅发生在 UEFI 启动模式(依赖 ESP 分区),若电脑是 Legacy 模式(MBR 分区表,无 ESP 分区),不会出现此类错误;

  7. ESP 分区容量建议:新安装系统时,ESP 分区总容量建议设置为 512MB-1GB,足以容纳多个系统的引导文件(如 Windows + Deepin 双系统),避免后续频繁出现空间不足。 通过以上步骤,可彻底解决“EFI 设备空间不足导致 GRUB 安装失败”的问题,根据自身是否已安装系统、是否有数据备份等情况,选择对应方案即可。

Reply View the author
乌堆小透明
deepin
2025-10-14 14:15
#3
𰻞𰻝面

写的清清楚楚:No space left on device. 磁盘空间不足

可是efi还剩200多MB,不应该安装失败才对啊,所以efi需要多少才能安装

Reply View the author
乌堆小透明
deepin
2025-10-14 14:16
#4

好吧,我扩到500MB试试

Reply View the author
deepin-流云
Moderator
Community OP
2025-10-14 14:19
#5

如果首次安装不熟悉,建于先看一下官网的安装教程哈

https://www.deepin.org/zh/deepin-25-installation/

image.png

Reply View the author
kookboy
deepin
2025-10-14 14:20
#6

估计楼主的ESP分区才100吧? 我的260M也没问题,我的是双系统win11+Deepin 25

截图_选择区域_20251014141822.png

Reply View the author
乌堆小透明
deepin
2025-10-14 14:31
#7

我改到1GB了还是不行

Reply View the author
乌堆小透明
deepin
2025-10-14 14:34
#8

大概知道了,我ventoy是MBR的,我试试换成GPT再试一次

Reply View the author
乌堆小透明
deepin
2025-10-14 15:08
#9

image.png我换rufus再试试

Reply View the author
乌堆小透明
deepin
2025-10-14 15:51
#10

还是不行,bios升级了,也重置过了,12代12900H,幻16

Reply View the author
deepin-流云
Moderator
Community OP
2025-10-14 16:12
#11
乌堆小透明

还是不行,bios升级了,也重置过了,12代12900H,幻16

报错是什么?是不是安全启动没关,取消勾选显卡驱动,这些都试试

Reply View the author
乌堆小透明
deepin
2025-10-14 17:15
#12
deepin-流云

报错是什么?是不是安全启动没关,取消勾选显卡驱动,这些都试试

我大概知道了,我主板bios里的EFI NVRAM存满了,也就是/sys/firmware/efi/efivars,但是我不知道哪些可以删哪些不能删,没有dump开头的文件

Reply View the author
乌堆小透明
deepin
2025-10-14 17:21
#13

问题是定位到了,可是无从下手

Reply View the author
𰻞𰻝面
deepin
2025-10-14 20:09
#14
乌堆小透明

可是efi还剩200多MB,不应该安装失败才对啊,所以efi需要多少才能安装

我的efi是100M,反正你发的日志写的是空间不足
image.png

Reply View the author
乌堆小透明
deepin
2025-10-15 13:52
#15

已经解决了,就是主板NVRAM内存不足无法进行写入,linux内核中有个特性,在启动安装iso之前,按e键在linux行的--前加入一个efi_no_storage_paranoia参数,就可以正常安装和启动了

Reply View the author