operating-system - 没有操作系统的 Grub 是如何编程的?是否可以在未安装其他操作系统的新组装 UEFI PC 中仅安装 grub 引导加载程序?
问题描述
grub 引导加载程序是在哪个平台/环境/操作系统中编程的?例如 linux 内核是在 MINIX OS 上的 GCC 编译器上编程的,但是 grub 是如何制作的?由于 grub 是一个引导加载程序(加载操作系统),它是如何在不使用操作系统的情况下编程的(就像我们使用 IDE 作为工具来制作应用程序或任何 C 程序在没有 C 编译器的情况下都无法执行,类似地,哪个工具用于开发 grub )
如果我买了一台没有安装操作系统的新机器(带有 UEFI 的 64 位英特尔系统),我是否可以在这台机器上安装 grub 引导程序(只有没有任何 linux 发行版的引导程序)。
如果上述可行,那么在没有任何操作系统的情况下直接安装 grub 的步骤是什么(假设我有一台额外的 windows/Linux PC,并且我有以下 grub 的 src 代码 from here
有了这个,我如何在没有安装操作系统且没有创建分区的 UEFI 系统中安装 grub 引导加载程序(想象一下,如果 PC 已组装并且仍然没有安装操作系统但它具有 UEFI 接口)。
- 如果可以只安装 grub 引导加载程序,那么当我启动系统时,如何从 grub 菜单安装 windows 和任何 linux 操作系统。(假设我正在安装的 PC 是 UEFI 系统,并且没有安装操作系统)
解决方案
现在,我不是该主题的专家,但据我所知(从未尝试过),您可能可以使用 Arch linux 之类的东西来做到这一点。您可以将 grub 安装到驱动器上,但如果您没有正确安装操作系统,则不会有存储配置文件的地方。所以我知道这个答案很模糊,但总的来说,答案是肯定的,但需要一个最小的操作系统,我已经看到 metasploitable,操作系统很小,易受攻击并且也有 grub 引导加载程序也许你也可以安装一个操作系统然后将 grub 更改为不显示任何操作系统
如果我理解正确,你不需要这个,但只是想知道或者你打算在 Windows 上使用它,据我所知,它应该可以工作,但可定制性有限(除非你用它安装 linux 发行版)谢谢
推荐阅读
- function - 在 Rust 中,什么是`fn() -> ()`?
- laravel - 在 laravel 的测试中的 getJson 没有被传递给控制器
- javascript - 如何在由“oninput”触发的函数中在vanila javascript中查看event.target
- javascript - Google Apps 脚本 - 如何将此代码应用于 Google 表格中的多个表格
- python - 使用数据库中的父节点和子节点填充 TreeView TKinter 小部件
- c++ - C++ - std::list.erase() 不删除元素
- php - curl https ssl证书问题错误#35
- perl - 在 Perl 脚本中“使用”基于 Moose 的包
- matlab - 在Matlab中填充复平面中的区域
- laravel - 了解传递给 Vue 子组件的路由器视图的道具,道具数据未呈现