无忧启动论坛

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

[原创] 【2017.12.16】启动U盘简单手动制作BIOS+UEFI的syslinux/grub/boomgr/grub2互转

    [复制链接]
151#
 楼主| 发表于 2017-12-5 18:53:45 | 只看该作者
2017.12.5======================================
             增加 Linux 下制作启动U盘脚本
回复

使用道具 举报

152#
 楼主| 发表于 2017-12-5 19:12:04 | 只看该作者
wintoflash 发表于 2017-12-5 19:10
感觉efi下syslinux比较鸡肋吧。

确实,先放着,不喜欢删掉相关文件就是

点评

不知现在在UEFI启动下的syslinux能实用了否?  详情 回复 发表于 2017-12-5 19:47
回复

使用道具 举报

153#
发表于 2017-12-5 19:47:16 | 只看该作者
comzhongwy 发表于 2017-12-5 19:12
确实,先放着,不喜欢删掉相关文件就是

不知现在在UEFI启动下的syslinux能实用了否?
回复

使用道具 举报

154#
发表于 2017-12-5 20:42:27 | 只看该作者
这个怎么用?
回复

使用道具 举报

155#
 楼主| 发表于 2017-12-6 15:55:05 | 只看该作者

2017.12.6======================================
             install_Legacy_bash_shell_v1.1.1.sh 错误修复,目前仅支持 FAT32 ,安装Legacy引导_编辑菜单_v1.5.1.bat 更新
回复

使用道具 举报

156#
 楼主| 发表于 2017-12-6 16:40:52 | 只看该作者
2017.12.6======================================
             install_Legacy_bash_shell_v1.1.2.sh 错误修复,目前仅支持 FAT32 ,安装Legacy引导_编辑菜单_v1.5.2.bat 更新
回复

使用道具 举报

157#
 楼主| 发表于 2017-12-6 23:55:20 | 只看该作者

2017.12.6======================================
             install_Legacy_bash_shell_v1.1.3.sh 错误修复,目前仅支持 FAT32 ,安装Legacy引导_编辑菜单_v1.5.3.bat 更新
回复

使用道具 举报

158#
发表于 2017-12-11 09:16:58 | 只看该作者
谢谢分享!
回复

使用道具 举报

159#
发表于 2017-12-13 00:39:13 | 只看该作者
【2017.12.8】启动U盘简单手动制作BIOS+UEFI的syslinux/grub/boomgr/grub2互转
回复

使用道具 举报

160#
发表于 2017-12-17 19:58:59 | 只看该作者
赞一个,,不错!
回复

使用道具 举报

161#
发表于 2017-12-17 21:25:50 | 只看该作者
谢谢分享!楼主做的不错
回复

使用道具 举报

162#
 楼主| 发表于 2017-12-18 22:04:27 | 只看该作者
wintoflash 发表于 2017-12-18 21:52
写了个单文件的grub2文件管理器,可以用它替代简易版的。
菜单放/boot/grub/grubfm.cfg
memdisk放/boot/g ...

多谢指教,一时兴起内置了您的 grubfm,忘了知会一声,请见谅
回复

使用道具 举报

163#
 楼主| 发表于 2017-12-18 22:25:48 | 只看该作者
wintoflash 发表于 2017-12-18 22:17
这个没什么。用的人越多,越容易找bug。
另外,想请教一下grub2的语法:

这个倒没注意到,不过  ==  和 = 是不一样的啊

什么情况下失效?
回复

使用道具 举报

164#
 楼主| 发表于 2017-12-18 22:59:32 来自手机 | 只看该作者
本帖最后由 comzhongwy 于 2017-12-18 23:02 编辑
wintoflash 发表于 2017-12-18 22:17
这个没什么。用的人越多,越容易找bug。
另外,想请教一下grub2的语法:



无法复现就比较难办了,我只能猜测可能类似是如下面这篇文章中"需要注意的细节"一部分提到的情况。

http://blog.jobbole.com/85183/

点评

楼主,我想请问一下grub2怎么才能引导U盘上已经装好的的kali linux它的那个引导菜单要怎么写?  详情 回复 发表于 2018-3-1 00:48
回复

使用道具 举报

165#
发表于 2017-12-24 05:31:48 来自手机 | 只看该作者
更新了啊!
回复

使用道具 举报

166#
发表于 2017-12-26 23:22:38 | 只看该作者
很强大,谢谢分享。
回复

使用道具 举报

167#
发表于 2017-12-30 09:55:36 | 只看该作者
感谢分享
回复

使用道具 举报

168#
发表于 2018-1-8 00:44:25 | 只看该作者
支持大佬
回复

使用道具 举报

169#
发表于 2018-1-30 12:50:14 | 只看该作者

来个制作教程吧!!!原理是????
回复

使用道具 举报

170#
发表于 2018-1-30 18:46:41 | 只看该作者
下载失效了,请重新上传下!
回复

使用道具 举报

171#
发表于 2018-1-31 09:00:22 | 只看该作者
请问楼主,efi启动u盘用哪个软件制作的,这里只有安装Legacy引导_编辑菜单_v1.5.8可以制作非efi启动的。
回复

使用道具 举报

172#
发表于 2018-1-31 14:53:51 | 只看该作者
楼主的镜像都挂了。
回复

使用道具 举报

173#
发表于 2018-2-5 17:08:14 | 只看该作者
可惜grub4dos不再支持uefi了。
回复

使用道具 举报

174#
发表于 2018-2-24 09:24:51 | 只看该作者
哪位大侠下载过这个pe的所有iso镜像,帮忙共享一下,谢谢了!
回复

使用道具 举报

175#
发表于 2018-3-1 00:48:30 | 只看该作者
lintrainwy 发表于 2017-12-18 22:59
无法复现就比较难办了,我只能猜测可能类似是如下面这篇文章中"需要注意的细节"一部分提到的情况。

...

楼主,我想请问一下grub2怎么才能引导U盘上已经装好的的kali linux它的那个引导菜单要怎么写?

点评

主要在于指定 内核vmlinuz,初始镜像initrd.img,以及根分区,最后是参数 4 个内容,例如: 上面这个写法是一个简单写法,当然最好使用 UUID 方式指定分区,特别是 用在 U盘,移动硬盘上,当然,还有一个偷懒  详情 回复 发表于 2018-3-1 09:32
手动写菜单的话,最好的是去看 ISO 镜像里的菜单是怎么写的,比如 Deepin linux: deepin-15.5-amd64.iso\boot\grub\grub.cfg 里面的引导项是这样写的: 稍微修改一下,就可以用来引导 ISO(linux内核应该  详情 回复 发表于 2018-3-1 09:21
回复

使用道具 举报

176#
 楼主| 发表于 2018-3-1 09:32:28 | 只看该作者
本帖最后由 lintrainwy 于 2018-3-1 09:41 编辑
Mer_Memor 发表于 2018-3-1 00:48
楼主,我想请问一下grub2怎么才能引导U盘上已经装好的的kali linux它的那个引导菜单要怎么写?


主要在于指定 内核vmlinuz,初始镜像initrd.img,以及根分区,最后是参数 4 个内容,例如:

  1. menuentry "Deepin Linux"{
  2.         set root=(hd0,5)
  3.         linux /vmlinuz root=/dev/sda5 ro quiet splash
  4.         initrd /initrd.img
  5. }
复制代码


上面这个写法是一个简单写法,当然最好使用 UUID 方式指定分区:search –no-floppy –fs-uuid –set fe24211f2420dc81,特别是 用在 U盘,移动硬盘上,当然,还有一个偷懒的办法,就是你安装到U盘时,在U盘生成了 /boot/grub.cfg ,那可以在电脑上,使用 grub2 的 configfile 加载 U盘上的 grub2 菜单,例如:

  1. if search -f /boot/grub/themes/deepin/theme.txt --set=root ; then
  2.         menuentry "Deepin Linux"{
  3.                 set prefix=(${root})'/boot/grub'
  4.                 configfile  ${prefix}/grub.cfg
  5.         }
  6. fi

  7. if search -f /grub/themes/deepin/theme.txt --set=root ; then
  8.         menuentry "Deepin Linux"{
  9.                 set prefix=(${root})'/grub'
  10.                 configfile  ${prefix}/grub.cfg
  11.         }
  12. fi
复制代码


if search -f /boot/grub/themes/deepin/theme.txt --set=root 是在U盘建一个特定名字的文件来查找分区,当然,最好是用 UUID 指定:search –no-floppy –fs-uuid –set fe24211f2420dc81

点评

谢谢楼主  详情 回复 发表于 2018-3-1 11:10
回复

使用道具 举报

177#
发表于 2018-3-1 11:10:39 | 只看该作者
lintrainwy 发表于 2018-3-1 09:32
主要在于指定 内核vmlinuz,初始镜像initrd.img,以及根分区,最后是参数 4 个内容,例如:

谢谢楼主
回复

使用道具 举报

178#
发表于 2018-3-1 12:03:52 | 只看该作者
楼主我还想问一下这个是啥情况啊

submenu 'Advanced options for Kali GNU/Linux' $menuentry_id_option 'gnulinux-advanced-5c3592b3-950e-4d56-a546-5e74d300ae5d' {
        menuentry 'Kali GNU/Linux,Linux 4.14.0-kali3-amd64' --class kali --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.14.0-kali3-amd64-advanced-5c3592b3-950e-4d56-a546-5e74d300ae5d' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_msdos2
                insmod ext2
                set root='hd0,msdos2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  5c3592b3-950e-4d56-a546-5e74d300ae5d
                else
                  search --no-floppy --fs-uuid --set=root 5c3592b3-950e-4d56-a546-5e74d300ae5d
                fi
                echo        '载入 Linux 4.14.0-kali3-amd64 ...'
                linux        /boot/vmlinuz-4.14.0-kali3-amd64 r
                oot=/dev/sdc2 ro initrd=/install/gtk/initrd.gz quiet
                echo        '载入初始化内存盘...'
                initrd        /boot/initrd.img-4.14.0-kali3-amd64
        }
        menuentry 'Kali GNU/Linux, with Linux 4.14.0-kali3-amd64 (recovery mode)' --class kali --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.14.0-kali3-amd64-recovery-5c3592b3-950e-4d56-a546-5e74d300ae5d' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_msdos2
                insmod ext2
                set root='hd0,msdos2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  5c3592b3-950e-4d56-a546-5e74d300ae5d
                else
                  search --no-floppy --fs-uuid --set=root 5c3592b3-950e-4d56-a546-5e74d300ae5d
                fi
                echo        '载入 Linux 4.14.0-kali3-amd64 ...'
                linux        /boot/vmlinuz-4.14.0-kali3-amd64 root=/dev/sdc2 ro single initrd=/install/gtk/initrd.gz
                echo        '载入初始化内存盘...'
                initrd        /boot/initrd.img-4.14.0-kali3-amd64
        }
}

这个是在虚拟机上kali linux的grub引导程序里边写的被我照搬了一下,结果就各种found

IMG_20180301_020205_gaitubao_com_3364x1370_gaitubao_com_.jpg (478.31 KB, 下载次数: 227)

IMG_20180301_020205_gaitubao_com_3364x1370_gaitubao_com_.jpg

点评

menuentry 'Kali GNU/Linux,Linux 4.14.0-kali3-amd64' --class kali --class gnu-linux --class gnu --class os { load_video insmod gzio if [ x$gr  详情 回复 发表于 2018-3-1 15:33
回复

使用道具 举报

179#
 楼主| 发表于 2018-3-1 15:33:30 | 只看该作者
Mer_Memor 发表于 2018-3-1 12:03
楼主我还想问一下这个是啥情况啊

submenu 'Advanced options for Kali GNU/Linux' $menuentry_id_option ...

        menuentry 'Kali GNU/Linux,Linux 4.14.0-kali3-amd64' --class kali --class gnu-linux --class gnu --class os {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_msdos2
                insmod ext2

                search --no-floppy --fs-uuid --set=root 5c3592b3-950e-4d56-a546-5e74d300ae5d

                echo        '载入 Linux 4.14.0-kali3-amd64 ...'
                linux        /boot/vmlinuz-4.14.0-kali3-amd64 root=UUID=5c3592b3-950e-4d56-a546-5e74d300ae5d ro initrd=/install/gtk/initrd.gz quiet
                echo        '载入初始化内存盘...'
                initrd        /boot/initrd.img-4.14.0-kali3-amd64
        }


将 UUID 换成根分区的 UUID

点评

楼主,set root和uuid的指定分区他们两个有什么区别吗?看网上他们有的人的帖子先是set root,后是uuid,他们说什么双保险?  详情 回复 发表于 2018-3-1 20:32
回复

使用道具 举报

180#
发表于 2018-3-1 20:32:11 | 只看该作者
lintrainwy 发表于 2018-3-1 15:33
menuentry 'Kali GNU/Linux,Linux 4.14.0-kali3-amd64' --class kali --class gnu-linux --clas ...

楼主,set root和uuid的指定分区他们两个有什么区别吗?看网上他们有的人的帖子先是set root,后是uuid,他们说什么双保险?

点评

set root='hd0,msdos2' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0  详情 回复 发表于 2018-3-1 21:18
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-23 06:14

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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