风.轻扬 发表于 2021-12-18 23:45:50

windows手动部署usb启动盘,学习汇报帖

windows制作usb启动盘

windows制作usb启动盘,可以直接使用程序安装,也可以手动部署,方法来自于極限驅動很久前的帖子:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=339411&extra=&page=1

以下内容是本人学习、实践的总结,踩过很多坑(红字标记),供有兴趣者参考、对照



usbdisk,mbr分区表,单分区,fat32,4k对齐,boot标签
准备文件
    grub-for-windows压缩包,下载地址:https://www.gnu.org/software/grub/index.html
    BOOTICE工具,这个都知道吧!
    grub.cfg,grub配置,详细内容贴在尾部
    themes,启动桌面主题

usbdisk目录设置,这点与極限驅動大侠原贴不同,与使用程序安装相同
      \EFI\BOOT\BOOTIA32.EFI,BOOTX64.EFI
      \grub\G2ldr(制作),grub.cfg(自定义)
      -----\fonts\unicode.pf2
      -----\locale\zh_CN.mo(只用简体中文)
      -----\i386-efi
      -----\i386-pc\+core.img(制作)
      -----\themes(自定义)
      -----\x86_64-efi
      \根目录放置自选软件,memdisk,memtest86+.bin,winpe.iso(任意pe),boot+porteus(porteus便携部署)

使用管理员权限打开cmd,进入grub-for-windows文件夹,使用grub-mkimage命令
    BIOS模式生成內核文件core.img,复制到\grub\i386-pc,增加模块不能成功制作
      grub-mkimage.exe -d i386-pc -p (hd0,msdos1)/grub -o core.img -O i386-pc biosdisk part_msdos fat ext2
    UEFI模式的32Bit生成i386-efi.efi
      grub-mkimage.exe -d i386-efi -p (hd0,msdos1)/grub -o i386-efi.efi -O i386-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file
    UEFI模式的64Bit生成x86_64-efi.efi
      grub-mkimage.exe -d x86_64-efi -p (hd0,msdos1)/grub -o x86_64-efi.efi -O x86_64-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file

    制作出来的EFI启动文件,i386-efi.efi改名为BOOTIA32.EFI,x86_64-efi.efi改名为BOOTX64.EFI,复制到\EFI\BOOT

    BOOT启动文件制作,使用管理员权限打开cmd,进入\grub\i386-pc,合并\boot.img与core.img生成G2ldr,复制到\grub
      copy /B boot.img+core.img G2ldr

    BOOTICE-》确定选取u盘-》先安装主引导记录GRUB2-》再选恢复MBR-》选择恢复文件-》G2ldr-》恢复扇区,显示数为61-》恢复

grub.cfg+themes两个文件打包下载

附录
grub.cfg,EFI、BOOT正常启动参考配置
    set root=(hd0,msdos1)
    set default=0
    set gfxmode=1024x768,auto
    set font=${prefix}/fonts/unicode.pf2
    set lang=zh_CN
    set locale_dir=${prefix}/locale
    set theme=${prefix}/themes/theme.txt
    set timeout=5
    insmod part_msdos
    insmod normal
    insmod search_fs_file
    insmod ext2
    insmod fat
    insmod all_video
    insmod gfxterm
    insmod gettext
    insmod png
    terminal_output gfxterm
    load_video
    loadfont ${font}
    export theme
    if background_image ${prefix}/themes/background.png; then
    set color_normal=white/black
    set color_highlight=black/white
    else
    set menu_color_normal=cyan/blue
    set menu_color_highlight=white/blue
    fi
    menuentry 'Locale HD System' --class harddrive {
    set root=(hd1)
    chainloader +1
    }
    menuentry 'Windows PE' --unrestricted {
    insmod part_msdos
    insmod ext2
    insmod fat
    set root=(hd0,msdos1)
    linux16 /memdisk iso raw
    initrd16 /winpe.iso
    }
    menuentry 'Porteus Linux' --root {
    insmod part_msdos
    insmod ext2
    insmod fat
    set root=(hd0,msdos1)
    linux /boot/syslinux/vmlinuz
    initrd /boot/syslinux/initrd.xz
    }
    menuentry 'Memorytest(memtest86+)' {
    insmod part_msdos
    insmod ext2
    insmod fat
    set root=(hd0,msdos1)
    linux16 /memtest86+.bin
    }
    menuentry 'Reboot' --unrestricted { reboot ; }
    menuentry 'Halt' --unrestricted { halt ; }

新空气 发表于 2021-12-19 00:26:44

坑踩多了也就踩平了

lily9718 发表于 2021-12-19 06:06:21

谢谢分享

huangdi 发表于 2021-12-19 06:19:19

楼主,请把USB启动模板放出来好吗?谢谢!

风.轻扬 发表于 2021-12-19 08:43:44

huangdi 发表于 2021-12-19 06:19
楼主,请把USB启动模板放出来好吗?谢谢!

自定义的grub.cfg、themes,附件就是

huangdi 发表于 2021-12-19 11:46:31

风.轻扬 发表于 2021-12-19 08:43
自定义的grub.cfg、themes,附件就是

谢谢!

旁观者清 发表于 2021-12-19 11:48:43


谢谢分享。

my9823 发表于 2021-12-19 12:10:35

ext2有什么用?你不妨把U第一分区开始于2048扇区,这样core.img可以打掉,完整写入mbr到第一分区之间了。

风.轻扬 发表于 2021-12-19 13:44:44

本帖最后由 风.轻扬 于 2021-12-19 13:46 编辑

my9823 发表于 2021-12-19 12:10
ext2有什么用?你不妨把U第一分区开始于2048扇区,这样core.img可以打掉,完整写入mbr到第一分区之间了。
磁盘分区因4k对齐,分区是开始于2048扇区,但在恢复扇区写入大于63的G2ldr时,甚至64都不能启动,不知道是否还有其他解决办法?
ext2是支持linux文件系统的基本模块,如果觉得没用,可以不要或换成ntfs等适合自己的试试。
关于模块,在合并G2ldr时,理论上应该可以只添加u盘对应的文件系统的,其他模块在grub.cfg中加载,并考虑兼容性,加载尽可能多的。
本人非专业出身,不妥指出,请不吝赐教!

my9823 发表于 2021-12-21 10:02:08

使用grub2包中的grub-bios-setup.exe写入即可

风.轻扬 发表于 2021-12-22 08:28:10

my9823 发表于 2021-12-21 10:02
使用grub2包中的grub-bios-setup.exe写入即可

这与本帖主题不符,欢迎在手动部署方面指教

风.轻扬 发表于 2021-12-22 08:32:26

关于ext2模块,经测试,带与不带都可以制作成功
grub-mkimage.exe -d i386-pc -p (hd0,msdos1)/grub -o core.img -O i386-pc biosdisk part_msdos fat,扇区56
grub-mkimage.exe -d i386-pc -p (hd0,msdos1)/grub -o core.img -O i386-pc biosdisk part_msdos fat ext2,扇区61

zwmwcj 发表于 2022-2-26 14:50:19

谢谢分享。
页: [1]
查看完整版本: windows手动部署usb启动盘,学习汇报帖