|
我看了下你打包的veket_25.iso里面的/boot/grub/menu.lst,完全不对路子,你对系统引导理解是错误的。
#
# menu.lst
#
#color NORMAL HIGHLIGHT HELPTEXT HEADING
# f/b f/b f/b f/b
color light-gray/black yellow/red cyan/black light-blue/black
timeout 10
default 0
# 0.4.6a
graphicsmode -1 800 600
splashimage /boot/splash.jpg
title /veket_25.iso
find --ignore-floppies --ignore-cd --set-root /veket_25.iso
map /veket_25.iso (hd32) ;; map --hook
kernel (hd32)/vmlinuz find_iso=/veket_25.iso PSUBDIR=/ pmedia=cd pfix=fsck
initrd (hd32)/initrd.gz
title veket 25
kernel /vmlinuz pmedia=cd pfix=fsck
errorcheck off
initrd /initrd.gz
initrd /ucode.cpio /initrd.gz
title veket 25 - Copy SFS files to RAM
kernel /vmlinuz pmedia=cd pfix=fsck,copy
errorcheck off
initrd /initrd.gz
initrd /ucode.cpio /initrd.gz
title veket 25 - Don't copy SFS files to RAM
kernel /vmlinuz pmedia=cd pfix=fsck,nocopy
errorcheck off
initrd /initrd.gz
initrd /ucode.cpio /initrd.gz
title veket 25 - Force xorgwizard (xorgwizard)
kernel /vmlinuz pmedia=cd pfix=xorgwizard,fsck
errorcheck off
initrd /initrd.gz
initrd /ucode.cpio /initrd.gz
......
上面标红色的那段菜单,不是这样子玩的!veket_25.iso镜像内部根本不需要这段。
BIOS下面,那段菜单的意思是,可以从本地硬盘、优盘上面的grub4dos引导,用map命令仿真挂载veket_25.iso到(hd32)虚拟光盘,用kernel命令加载vmlinuz,用initrd命令加载initrd.gz,veket_25.iso你可以放在本地硬盘、优盘的任何一个盘符、任何一个英文不含空格的路径,都可以改菜单让他从veket_25.iso启动。比如我把veket_25.iso放在/linux/veket/lucky8k-25/veket_25.iso,在我的本地硬盘E:\盘的根目录下有menu.lst,通过我的C盘的bootmgr→引导grub4dos→加载E:\menu.lst菜单→启动/linux/veket/lucky8k-25/veket_25.iso,
当然直接用本地硬盘的MBR→grub4dos→加载E:\menu.lst菜单→启动/linux/veket/lucky8k-25/veket_25.iso也可以。
我的本地硬盘的MBR一般都是微软引导体系的bootmgr。
E:\menu.lst菜单如下:
title /linux/veket/lucky8k-25/veket_25.iso
find --ignore-floppies --ignore-cd --set-root /linux/veket/lucky8k-25/veket_25.iso
map /linux/veket/lucky8k-25/veket_25.iso (hd32) ;; map --hook
kernel (hd32)/vmlinuz find_iso=/linux/veket/lucky8k-25/veket_25.iso PSUBDIR=/ pmedia=cd pfix=fsck
initrd (hd32)/initrd.gz
根本不需要你在veket_25.iso内部的/boot/grub/menu.lst来上红色字体的那一段!那段代码写死了veket_25.iso的路径,这样子如果我把veket_25.iso放在/linux/veket/lucky8k-25/veket_25.iso,还怎么启动啊?本地硬盘的menu.lst文件可以随意更改,以适应veket.iso所在文件位置,veket.iso内部的/boot/grub/menu.lst怎么改?还需要在不破坏veket.iso光盘镜像MBR引导的情况下修改其内部的menu.lst,没有这样子玩的,这不是最终用户该干的事情,最终用户该改的是其本地硬盘的menu.lst。那段代码是放在本地硬盘、优盘的根目录下的menu.lst中的,而不是放在veket_25.iso的内部!
你对系统启动误解很深。实战上来讲,也应该是修改本地硬盘的menu.lst,而不是修改光盘镜像中的menu.lst。
你就不能用我的批处理试下吗?只需要几十秒就可以了。
我所说的需要/boot/grub/menu.lst,指的是,BIOS下面,直接从CDROM中启动,比如说把veket_25.iso刻录到光盘(ventoy也是模仿CDROM启动),veket_25.iso的主引导是grub4dos,(早期veket用的是isolinux),既然用了grub4dos,当然需要有/boot/grub/menu.lst菜单,就相当于把veket_25.iso直接放进CDROM中一样,那也只需要上面非红色字体的菜单即可!
grub4dos搜索其启动菜单的顺序是/menu.lst, /boot/grub/menu.lst, /grub/menu.lst,三个位置只要有一个地方有这个menu.lst即可。本地硬盘上,我都是修改第一处/menu.lst。当然veket.iso光盘镜像中,菜单位置是 /boot/grub/menu.lst,也是没有问题的。
|
|