找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 113|回复: 7

[求助] 有没有办法不修改引导文件,自适应长文件名

[复制链接]
发表于 3 小时前 | 显示全部楼层 |阅读模式
比如简单使用kali.iso。kali升级后就要重写启动grub.cfg。有没有办法让grub2自适应文件的变化。我用8.3文件名试了一下,行不通。那位前辈大神可以帮小弟看看怎么解决?

menuentry  "启动 kali "  --hotkey=k {
insmod loopback
        set isofile="/KALI-L~1.ISO"
        search --set -f "${isofile}"
        loopback loop "${isofile}"
        set gfxpayload=keep
        linux (loop)/live/vmlinuz-6.18.12+kali-amd64 boot=live components quiet splash noeject findiso="${isofile}" locales=zh_CN.UTF-8
        initrd (loop)/live/initrd.img-6.18.12+kali-amd64
}



 楼主| 发表于 3 小时前 | 显示全部楼层
放假折腾中
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
支持折腾
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
完整 grub.cfg 菜单项供测试
  1. menuentry "启动 Kali Linux (自适应ISO/内核)" --hotkey=k {
  2.   insmod part_gpt
  3.   insmod part_msdos
  4.   insmod fat
  5.   insmod ntfs
  6.   insmod iso9660
  7.   insmod loopback
  8.   insmod search_fs_uuid
  9.   insmod ext2

  10.   # --------------------------
  11.   # 1) 自动查找 Kali ISO(支持长文件名)
  12.   # --------------------------
  13.   # 匹配根目录下所有 kali 开头的 .iso(不区分大小写)
  14.   set isopattern="/kali*.iso"
  15.   # 或严格匹配:set isopattern="/kali-linux-*-live-amd64.iso"
  16.   search --no-floppy --file --set=root "${isopattern}"

  17.   # 把找到的第一个ISO赋值给 isofile
  18.   loopback loop "${root}${isopattern}"

  19.   # --------------------------
  20.   # 2) 自动匹配 /live/vmlinuz & initrd.img(通配内核版本)
  21.   # --------------------------
  22.   set kernel="(loop)/live/vmlinuz*"
  23.   set initrd="(loop)/live/initrd.img*"

  24.   # 加载内核 + 启动参数(findiso 用变量)
  25.   linux ${kernel} boot=live components quiet splash noeject \
  26.        findiso="${root}${isopattern}" locales=zh_CN.UTF-8

  27.   # 加载 initrd
  28.   initrd ${initrd}
  29. }
复制代码



点评

好 人  发表于 2 小时前

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
如果你经常放多个 Kali ISO,可用 GRUB2 for 循环 自动生成菜单项(可不用手动加):
  1. # 放在 grub.cfg 开头(全局)
  2. for iso in /kali*.iso /KALI*.ISO; do
  3.   if [ -f "${iso}" ]; then
  4.     menuentry "Kali Live: ${iso}" {
  5.       insmod loopback
  6.       search --set=root -f "${iso}"
  7.       loopback loop "${iso}"
  8.       linux (loop)/live/vmlinuz* boot=live components quiet splash noeject findiso="${iso}" locales=zh_CN.UTF-8
  9.       initrd (loop)/live/initrd.img*
  10.     }
  11.   fi
  12. done
复制代码


点评

助 人 为 乐  发表于 2 小时前

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

发表于 1 小时前 来自手机 | 显示全部楼层
围观大家讨论技术
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-4-4 20:36

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表