如何使用 GRUB 2 直接从硬盘运行 ISO 文件

大多数 Linux 发行版都会提供一个可以从 USB 启动的 live 环境,以便用户无需安装即可测试系统。我们可以用它来评测这个发行版或仅仅是当成一个一次性系统,并且很容易将这些文件复制到一个 U 盘上,在某些情况下,我们可能需要经常运行同一个或不同的 ISO 镜像。GRUB 2 可以配置成直接从启动菜单运行一个 live 环境,而不需要烧录这些 ISO 到硬盘或 USB 设备。

获取和检查可启动的 ISO 镜像

为了获取 ISO 镜像,我们通常应该访问所需的发行版的网站下载与我们架构兼容的镜像文件。如果这个镜像可以从 U 盘启动,那它也应该可以从 GRUB 菜单启动。

当镜像下载完后,我们应该通过 MD5 校验检查它的完整性。这会输出一大串数字与字母合成的序列。

将这个序列与下载页提供的 MD5 校验码进行比较,两者应该完全相同。

配置 GRUB 2

ISO 镜像文件包含了整个系统。我们要做的仅仅是告诉 GRUB 2 哪里可以找到 kernel 和 initramdisk 或 initram 文件系统(这取决于我们所使用的发行版)。

在下面的例子中,一个 Kubuntu 15.04 live 环境将被配置到 Ubuntu 14.04 机器的 Grub 启动菜单项。这应该能在大多数新的以 Ubuntu 为基础的系统上运行。如果你是其它系统并且想实现一些其它的东西,你可以从这些文件了解更多细节,但这会要求你拥有一点 GRUB 使用经验。

这个例子的文件 kubuntu-15.04-desktop-amd64.iso 放在位于 /dev/sda1 的/home/maketecheasier/TempISOs/ 上。

为了使 GRUB 2 能正确找到它,我们应该编辑


  1. /etc/grub.d40-custom


  1. menuentry "Kubuntu 15.04 ISO" {
  2. set isofile="/home/maketecheasier/TempISOs/kubuntu-15.04-desktop-amd64.iso"
  3. loopback loop (hd0,1)$isofile
  4. echo "Starting $isofile..."
  5. linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
  6. initrd (loop)/casper/initrd.lz
  7. }

分析上述代码

首先设置了一个变量名 $menuentry ,这是 ISO 文件的所在位置 。如果你想换一个 ISO ,你应该修改isofile="/path/to/file/name-of-iso-file-.iso".

下一行是指定回环设备,且必须给出正确的分区号码。


  1. loopback loop (hd0,1)$isofile

注意 hd0,1 这里非常重要,它的意思是第一硬盘,第一分区 (/dev/sda1)。

GRUB 的命名在这里稍微有点困惑,对于硬盘来说,它从 “0” 开始计数,第一块硬盘为 #0 ,第二块为 #1 ,第三块为 #2 ,依此类推。但是对于分区来说,它从 “1” 开始计数,第一个分区为 #1 ,第二个分区为 #2 ,依此类推。也许这里有一个很好的原因,但肯定不是明智的(明显用户体验很糟糕)..

在 Linux 中第一块硬盘,第一个分区是 /dev/sda1 ,但在 GRUB2 中则是 hd0,1 。第二块硬盘,第三个分区则是 hd1,3, 依此类推.

下一个重要的行是:


  1. linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash

这会载入内核镜像,在新的 Ubuntu Live CD 中,内核被存放在 /casper 目录,并且命名为 vmlinuz.efi 。如果你使用的是其它系统,可能会没有 .efi 扩展名或内核被存放在其它地方 (可以使用归档管理器打开 ISO 文件在 /casper 中查找确认)。最后一个选项, quiet splash ,是一个常规的 GRUB 选项,改不改无所谓。

最后


  1. initrd (loop)/casper/initrd.lz

这会载入 initrd ,它负责载入 RAMDisk 到内存用于启动。

启动 live 系统

做完上面所有的步骤后,需要更新 GRUB2:


  1. sudo update-grub

当重启系统后,应该可以看见一个新的、并且允许我们启动刚刚配置的 ISO 镜像的 GRUB 条目:

选择这个新条目就允许我们像从 DVD 或 U 盘中启动一个 live 环境一样。

本文来自合作伙伴“Linux中国”,原文发布日期:2015-10-19

时间: 2024-10-02 07:50:24

如何使用 GRUB 2 直接从硬盘运行 ISO 文件的相关文章

win7我们无法验证创建此文件的人员是否确定要运行此文件?

  win7系统遇到这个问题相信大家都非常的苦恼,这个网友的问题是这样的,他的电脑有两个硬盘,主硬盘有两个盘符,分别为C盘和E盘,附加的另外一个硬盘盘符为D盘和E盘.因为可能是接触不良的原因或者说是硬盘故障,导致其中一个硬盘消失了,也就是附加的D盘和E盘盘符不见了. 因此他就正常关机,然后拆开机箱,重新拔插了下硬盘的电源线和数据线.再次开机,很开心盘符都又正常显示了,但是双击打开桌面的快捷方式,都提示这句,我们无法验证创建此文件的人员 是否确定要运行此文件?只要是快捷方式的图标都提示这个,每次运

如何定时运行ASP文件(转载)

定时 在一定的时候,要定时的运行某个ASP文件去执行一个任务,如一个工厂在早上9点钟要采集所有的电表的读数,当然这要通过IN SQL连接到各个电表中,我们现在就是用一个ASP文件把IN SQL中表的读数再集中到MS SQL中. 可能你看到的定时运行ASP文件的方法有多种,不过我现在要说的是一种简单的方法,利用计划任务就可简单的实现. 首先,你要写一个js或者vbs文件来调用你所有执行的ASP.下面是js和vbs文件的代码,你可以任选一个,执行效果是一样的. vbs代码拷贝框'CODE BY 小荷

如何准确定时运行ASP文件

定时 在一定的时候,要定时的运行某个ASP文件去执行一个任务,如一个工厂在早上9点钟要采集所有的电表的读数,当然这要通过IN SQL连接到各个电表中,我们现在就是用一个ASP文件把IN SQL中表的读数再集中到MS SQL中. 可能你看到的定时运行ASP文件的方法有多种,不过我现在要说的是一种简单的方法,利用计划任务就可简单的实现. 首先,你要写一个js或者vbs文件来调用你所有执行的ASP.下面是js和vbs文件的代码,你可以任选一个,执行效果是一样的. vbs代码--------------

PHP中运行的文件管理系统:ajaxplorer

由于在VPS上安装FTP总是失败,需要一个可以通过Web进行文件管理的工具.AjaXplorer是一个在PHP中运行的文件管理系统,功能的强大以及界面的华丽实在是第一次见到. 官方网站:http://ajaxplorer.info 已经被伟大的墙屏蔽. 安装及使用: 1.下载AjaXplorer文件包,您可以直接在下面的地址中下载,这个版本是3.2.1,下载后当然是上传到网站上,最好给它一个专用的文件夹,比如/explorer AjaXplorer.zip (2) 2.直接访问刚才安装AjaXp

JavaScript EE,第1部分:在服务器端运行JavaScript文件

本系列文章围绕的主旨是将JavaScript与服务器上的Java代码结合起来,从而能够在服务器和客户机上使用相同的JavaScript例程.此外,本系列所展示的这些技术将让您能为Ajax 客户机和非Ajax 客户机维护同一个代码库.由于服务器端的大部分代码依然用Java 语言编写,所以有必要对 JavaScript 公开这些 Java Platform, Enterprise Edition (Java EE) 特性.在本系列中,您将了解如何在服务器端运行JavaScript文件.如何用Ajax

win8怎么运行rar文件

  win8怎么运行rar文件           1.装个压缩软件,网上有很多.winRAR.360压缩.好压都可以; 2.我们以bandizip压缩软件为例,安装好后,点击rar文件会提示用什么程序打开,选择bandizip就可以了; 3.装完了图标就变成正常的了,文件图标不对是关联的问题,安装时有让你选择文件关联的,你下载个WINRAR软件.

Win7系统通过注册编辑器运行jar文件的技巧

  1.右击.jar文件--打开方式->选择默认程序->浏览-选择jre下bin文件中javaw.exe . 3.开始菜单打开运行窗口输入"regedit"点击确定; 2.打开编辑注册表:HKEY_CLASSES_ROOTApplicationsjavaw.exeshellopencommand,修改数据数值 ["D: Program FilesJavajdk1.6.0_21jrebinjavaw.exe" -jar "%1" ] 只

myeclipse-MyEclipse 浏览器运行jsp文件 显示无法显示此页

问题描述 MyEclipse 浏览器运行jsp文件 显示无法显示此页 刚刚安上的时候可以运行 过一会就不行了 期间没有动过它 我就是把MySQL重新安装了一边 我重新把MyEclipse安装好还是一样 求助--- 解决方案 1 检查tomcat的端口号,jdk的路径是否改动. 2 检查web.xml是否有错 3 在浏览器是否可用 解决方案二: 看看你eclipse关联的 tomcat有没有配置对 解决方案三: 浏览器已经在运行了 添加上了项目 解决方案四: 为什么东西 我就想试试可以加载不 解决

域名-如何在网页中运行.php文件?

问题描述 如何在网页中运行.php文件? 新人提个问.... 很白痴... 域名里输入的那种,没弄明白... 求告知. 解决方案 php文件不像html文件,不能直接打开的,你应该先有环境,可以用wamp等集成包,然后地址里写http://localhost,回车,就可以看到你的文件了,如果localhost不行,就用127.0.0.1 解决方案二: http:localhost加php文件名 解决方案三: 直接访问查找本地的php文件 解决方案四: 你先进行php开发环境的配置,建议用apps