无忧启动论坛

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

[分享] 菜鸟个性化U盘V10 新版抄袭结果发布

[复制链接]
跳转到指定楼层
1#
发表于 2020-5-5 00:02:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 110654 于 2020-5-28 15:39 编辑

2020-5-29更新: EFI专用版(过主板安全启动第三方验证)      采用Ubuntu20.04的grub2.04版引导制作修改的,测试机型微软苏菲平板电脑链接: 链接: https://pan.baidu.com/s/1g2P2whSEx67z8bzECp1AOQ 提取码: cy5x

关于自己制作grub2-U盘版的代码 分析:

下面的代码是EFI-X64加入菜单文件定位路径
grub-mkimage.exe -d x86_64-efi -p /boot/grub2  -c grub.cfg -o bootx64.EFI -O x86_64-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file search
分析:
用这个软件grub-mkimage.exe -------- (在grub2-fot-windows目录按住上档键shift,右键选择启动命令行,可以直接开干了)
读取-d x86_64-efi目录----(grub2-fot-windows里面的对应模式的模块路径,默认就是这个,除非你移动了文件夹)
指定输出模块的路径 -p /boot/grub2----(用于存放模块的路径)
保存的文件的名字o bootx64.EFI-----(原教程是保存为另一个名字,其实后面又改一下,名字直接写需要的名字不香?)
定制的模式O x86_64-efi----(这个是用于菜单定义启动的类型,比如你写菜单if  [ ${grub_cpu} = i386 ] ;then   下面接菜单正式内容
这个代码的意思的if=如果,grub启动的时候cpu(模式)等于i386 那么就使用该if 开头, 以fi结尾的内容为菜单内容。 回来题目如果你改了这个名字,--O(大写)(空格)x86_64-efi   改成了-O efi64  那么你的菜单也要改成if  [ ${grub_cpu} = efi64 ] ;then
加入那些模块part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file search

其中加入的模块是以空格隔开,每一个模块对应的名字在对应的定制模式下面都应该有对应的文件,比如上面的代码分别加入part_gpt(用于读取GPT分区的模块,part_msdos(不晓得),disk(不晓得), fat(识别FAT文件系统的模块)。。。。。。。。但你加入的模块越多你定制出来的.efi文件就越大,当然即便你全部模块定制进去都可以,在启动的时候对应的模块都具备了该功能,如果你只定制了几个简单而且重要的模块,那么其他模块就必须在对应的模块,且菜单中要使用该模块的时候就必须要使用insmod ntfs命令加载进来,不然就没法使用该模块对应的功能。


下面的代码是BIOS加入菜单文件定位路径
grub-mkimage.exe -d I386-PC -p /boot/grub2 -c grub.cfg -o Core.img -O i386-pc biosdisk part_msdos fat exfat ext2 ntfs normal iso9660 search_fs_file normal search

其中grub.cfg是一个用于跳转菜单的菜单文件,只是直接打包进了bootx64.efi文件里面去了,这样做的目的就是位了在启动的时候他先加载内置的菜单.cfg文件,.cfg文件指向启动寻找哪里,然后才是你看到的内容菜单。其名字可以随便取,关键是内容要正确。

下面的代码是efi-x86加入菜单文件定位路径
grub-mkimage.exe -d i386-efi -p /boot/grub2 -c grub.cfg -o bootia32.EFI -O  i386-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file normal search

下面的代码是制作BIOS 引导
grub-mkimage.exe -d I386-PC -p (hd0,1)/boot/Grub2/ -o Core.img -O i386-pc biosdisk part_msdos fat exfat ext2 ntfs normal iso9660 search_fs_file normal search

下面的代码是制作bios引导的扇区文件
Copy /B Boot.img+Core.img G2ldr
copy 是windows的命令,把boot.img+core.img  合并为g2ldr文件,这个文件用来恢复u盘的mbr引导扇区(也就是bios启动的时候会从扇区找引导记录),bootice软件可以操作,如果grub2选项是灰色的表示,你的U盘保留扇区数低于63个,用bootice重新分区中  HDD单分区,保留扇区记得要大于63才能使用grub2引导,因为grub2需要。(PS:反正我按那个教程做出来用不起,无奈用了批处理制作的,倒现在还是蒙圈的,因为有人说,制作的core.img大于了32kb,我做出来是91kb,失败了。。。。)

下面的代码是制作EFI64引导
grub-mkimage.exe -d x86_64-efi  -p (hd0,1)/boot/Grub2/ -o bootx64.EFI -O x86_64-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file normal search

下面的代码是制作EFI32引导
grub-mkimage.exe -d i386-efi  -p (hd0,1)/boot/Grub2/ -o bootia32.EFI -O  i386-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file normal search

下面的代码是制作bios引导
grub-mkimage.exe -d I386-PC -p /boot/grub2 -o Core.img -O i386-pc biosdisk part_msdos fat exfat ext2 ntfs normal iso9660 search_fs_file normal search

其中原帖用的寻找菜单方式采用search_fs_file  模块,那么在制作EFI文件的时候不能少了对应的模块,
如果你遇到不能加载指定路径文件名的情况,可以试试UBUNTU的寻找方式。如:(注意不要少了configfile模块)
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
原帖中加入菜单文件到efi里面的 没有-p的参数,直接复制使用他的会报错误,反正我遇到了,于是我在-d后面加入-p参数就可以了,例如
-p /boot/grub2   




2020-5-28更新:升级grub2 到grub2.04版本,整合了菜单写法(是抄袭的)

硬盘版套装:(用于给硬盘添加grub2引导,如果是efi引导就更换套装改菜单就好了,bios的不推荐使用这个,建议使用grub4dos)
链接: https://pan.baidu.com/s/1otZqYFhptsumP-6aqb2YWQ 提取码: sb2a
U盘版套装:(检查一下wim文件,及菜单)
链接: https://pan.baidu.com/s/1CGTE_7mNIafyJR6HFJEq8Q 提取码: jebb

2020-5-9更新了一下。grub2与grub4dos的互相跳转功能,文件解构大体不变,根目录依旧只有2个文件夹boot  efi,关于grub2在bios模式下的扇区引导恢复,可以用bootice软件  点主引导记录,然后复制全部文件也就是那2个文件夹到U盘根目录就可以了,如果不想使用grub2作为BIOS引导,可以使用grub4dos,一样可以互相跳转(仅限BIOS模式)。


下载微云链接的整合包,是已处理好的。后续更新,风格包的细节优化,美观改善
grub2跳转grub4dos菜单写法:
menuentry "GRUB4DOS 引导菜单"  {         
      insmod ntldr   
      ntldr /boot/grub4dos/grldr
}

grub4dos跳转grub2菜单写法:

title  启动grub2菜单
find --set-root /boot/grub/g2ldr.mbr
chainloader /boot/grub/g2ldr.mbr


grub4dos的2级菜单写法:
title 启动2级菜单
configfile /boot/grub4dos/1.lst

grub2的2级菜单写法:
menuentry "进入2级菜单菜单" --class windows --class os  {
configfile /boot/grub/2.cfg;
}
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=375848&extra=page%3D1
https://a1ive.github.io/grub2-filemanager/
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=414556&extra=page%3D1

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=419688&extra=page%3D1

抄袭上面4个原帖链接,有兴趣的可以深度学习一下.下载中的已经整合了3个,网络启动那个目前没有整合,用的单独版本20200426.7z,原帖去下载吧.使用方式就是在一台或者主机中把PE或者系统ISO文件拖拽到BAT批处理上面自动运行网络启动服务器,其他的电脑用PXE就能启动了,问题提示最好是把文件解压到硬盘分区取个英文或者数字文件夹,把ISO文件也要复制过去,再拖拽到BAT命令,局域网有路由器的拖拽B.PROXYDHCP-bios.bat,没有的拖拽A.DHCP-bios.bat.
       grub2最新论坛有大神发布了文件管理器,直接可启动很多种类文件,现已加入使用太方便了(赞)
加一个memdisk 这个来运行img ima iso文件  已经足够满足日常所需了,为了能够再次方便得更新U盘内容,依旧抛弃了更安全可靠得UD分区法,就用这个默认的fat32单个U盘分区,所有文件一目了然,方便更新换代,更上哪些大神的脚步。
新版主要是寻找一个带网络驱动的PE 加一个server 2012系统,原因有当你面对一个新服务器,没有他的磁盘阵列驱动,普通PE进去是看不到硬盘的,然而下载的磁盘驱动大多数方便快捷的找驱动都是server下的驱动,所以就需要一个server2012PE   3个PE就够了,WIN10PE支持网络驱动,就用来搞网络刻录,网络启动安装系统什么的。驱动没有就找到驱动用DISM ++ 加驱动进去,找个好的PE慢慢的加驱动,比没事整这个,有搞那个PE的强,当你的驱动加得越来越多的时候 大部分网卡都支持了,磁盘阵列驱动这些都支持得越来越多了,就会越来越顺手,
大题思路就是抄袭了论坛某大神得 grub2 双启动,传说对平板老电脑32CPU支持的不错,虽然很少用得到,但支持就是好事。
EFI==64CPU===bootx64.efi---grub2---grub2-efi-64.cfg--- PE整合菜单选64了(编辑bcd),grub2文件管理器
EFI==32CPU===bootxia32.efi---grub2---grub2-efi-32.cfg---PE整合菜单选32了(编辑bcd),grub2文件管理器
biso===U盘扇区----grub2----grub2-biso-cfg----PE整合菜单(编辑bcd),grub2文件管理器,IMG工具菜单,跳转grub4dos

搜索到一些菜鸟采用知识(对于咱们普通抄袭使用人员注意菜单中指向的文件路径即可):

菜单一些常规写法

menuentry "启动UEFI grub2 文件管理器" --class linux --class os {
if [ "${grub_platform}" = "pc" ]; then
  linux /boot/grub2-FM/loadfm  
  initrd /boot/grub2-FM/grubfm.iso  
else
  chainloader /grubfmx64.efi
fi
}


从主引导启动
#最后一句或者 chainloader (hd0)+1
menuentry "启动主引导记录 " {
    set root=(hd0)
    chainloader +1
}
从某个分区启动
#从第一磁盘的第一分区启动
#最后一句或者 chainloader (hd0,1)+1
menuentry "启动分区引导记录 1" {
    set root=(hd0,1)
    chainloader +1
}
从存在bootmgr文件的那个分区启动
menuentry "启动分区引导记录 2" {
    search --file /bootmgr --set=root
    chainloader +1
}
#最后一句或者 chainloader (hd0,1)+1
启动某个引导文件:
menuentry "启动 G4D"{
    search --file /grldr --set=root
    insmod ntldr
    ntldr /grldr
}
启动efi件:
menuentry "启动EFI SHELL" {
    echo "正在启动EFI SHELL,请等待...."
    search --file /rdtobot/efi_file/boot/bootx64.efi --set=root
    chainloader ($root)/rdtobot/efi_file/boot/bootx64.efi
}
启动IMG文件:
menuentry "启动 MHDD" {
    search --file /neyan/grub/memdisk --set=root
    linux16  /neyan/grub/memdisk
    initrd16 /rdtobot/MHDD.img
}
启动ISO文件:
menuentry "列出操作系统" {
    search --file /neyan/grub/memdisk --set=root
    linux16  /neyan/grub/memdisk  iso
    initrd16 /rdtobot/LSTSYS.iso
}
子菜单写法:
submenu "我是一级菜单" {
    menuentry "我是二级菜单1" {
    echo "我是运行结果1"
    }
    menuentry "我是二级菜单2" {
    echo "我是运行结果2"
    }
   
   
    GRUB2调用GRUB4DOS
menuentry "GRUB4DOS 引导菜单"  {  
       search --file /ntldr --set root      
      insmod ntldr   
      ntldr /grldr
GRUB2调用windows
menuentry "windows(7/8/10/2008/2012/2016)系统引导菜单"  {  
       search --file /bootmgr --set root      
      insmod ntldr   
      ntldr /bootmgr
GRUB4DOS调用GRUB2
title 1 GRUB2引导菜单
find --set-root /g2ldr
chainloader /g2ldr.mbr

menuentry "启动UEFI Windows PE菜单" --class windows --class os {
echo "正在启动UEFI Windows PE菜单..."
set root='(hd0,msdos1)'
insmod part_msdos
insmod fat
ntldr /boot/bootmgr-pe
}
menuentry "启动 windows2003 PE" --class windows --class os {
echo "正在加载 Windows2003 PE,请等待...."
insmod part_msdos
insmod fat
linux16 /boot/grub/memdisk iso raw
initrd16 /boot/wim/WIN03PE.ISO
}


关于添加驱动的方式,推荐使用工具,命令太多不好记.
WIM文件用gimagex gimagex-wim文件处理.exe (196.5 KB, 下载次数: 55) 挂载可读写方式到文件夹,然后用DISM++  添加你下载的驱动inf文件进去,随便把对应的驱动文件复制到挂载的文件夹里面的Windows\System32\drivers里面,用于就算添加失败,进入PE或者系统也可以手动安装驱动,但这种情况很少,部分驱动含有插件类图形工具的可以这样使用.
然后DISM++软件保存,再用gimagex保存,注意DISM++ 手动选择gimagex挂载的路径为系统,别弄到你本地电脑C盘的系统了.
ISO文件就用ultraISO打开提取wim,如上操作后再用ultraISO封包.

下载整合包,包含PE文件,未包含网启服务文件20200426.7z(需单独下载)
链接:https://pan.baidu.com/s/1B5gMCRqPpP1BXCC9NaU3xQ
提取码:o4q3

微云下载   推荐
链接:https://share.weiyun.com/55fALgS 密码:vosm2s

关于grub2跳转grub4dos思路,可用grldr内置菜单编辑器工具修改grldr(grub4dos引导文件)的菜单路径,这样你就可以把grub4dos相关文件放在你喜欢的位置了.  
目前感觉可以抛弃grub4dos了,grub2已经慢慢成熟稳定了.期待你们能找到更好的PE,已经整合网启菜单.新版文件结构相对很简单,自由修改空间很大,抄吧.

部分效果预览与文件说明:




















评分

参与人数 2无忧币 +10 收起 理由
hexcel2016 + 5 赞一个!
新空气 + 5 很给力!

查看全部评分

2#
发表于 2020-5-5 00:19:36 | 只看该作者
睡觉睡觉,做个记号,明天研究研究
回复

使用道具 举报

3#
发表于 2020-5-5 02:08:11 | 只看该作者
界面看着好看


回复

使用道具 举报

4#
发表于 2020-5-5 13:17:15 | 只看该作者
界面看着好看
回复

使用道具 举报

5#
发表于 2020-5-5 14:52:14 | 只看该作者
学习一下了。
回复

使用道具 举报

6#
发表于 2020-5-6 18:05:38 | 只看该作者
为什么还要搞这些,苹果式UEFI驱动+适配单机型多清爽。PE都省了,直接UEFI层集成所有

点评

黑科技啊 速度分享 来一波啊 我们等着抄袭啊 来来来 大神好东西 要分享  详情 回复 发表于 2020-5-8 13:35
回复

使用道具 举报

7#
 楼主| 发表于 2020-5-8 13:35:59 | 只看该作者
minlearn 发表于 2020-5-6 18:05
为什么还要搞这些,苹果式UEFI驱动+适配单机型多清爽。PE都省了,直接UEFI层集成所有

黑科技啊  速度分享 来一波啊  我们等着抄袭啊  来来来  大神好东西 要分享
回复

使用道具 举报

8#
发表于 2020-5-8 13:41:13 | 只看该作者
好东西啊,感谢分享
回复

使用道具 举报

9#
发表于 2020-5-23 16:41:03 | 只看该作者
很好很好,主要学习一下菜单的做法
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-26 01:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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