在Ubuntu系统下直接运行ISO文件的方法详解
开源中文社区 发布时间:2015-10-19 11:07:31 作者:佚名
我要评论
这篇文章主要介绍了在Ubuntu系统下直接运行ISO文件的方法,使用GRUB 2直接从硬盘运行,需要的朋友可以参考下
大多数 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 能正确找到它,我们应该编辑
/etc/grub.d40-custom


分析上述代码
首先设置了一个变量名 $menuentry ,这是 ISO 文件的所在位置 。如果你想换一个 ISO ,你应该修改 isofile="/path/to/file/name-of-iso-file-.iso".
下一行是指定回环设备,且必须给出正确的分区号码。
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, 依此类推.
下一个重要的行是:
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 选项,改不改无所谓。
最后
initrd (loop)/casper/initrd.lz
这会载入 initrd ,它负责载入 RAMDisk 到内存用于启动。
启动 live 系统
做完上面所有的步骤后,需要更新 GRUB2:
sudo update-grub

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

选择这个新条目就允许我们像从 DVD 或 U 盘中启动一个 live 环境一样。
获取和检查可启动的 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 能正确找到它,我们应该编辑
/etc/grub.d40-custom

复制代码
代码如下:menuentry "Kubuntu 15.04 ISO" {
set isofile="/home/maketecheasier/TempISOs/kubuntu-15.04-desktop-amd64.iso"
loopback loop (hd0,1)$isofile
echo "Starting $isofile..."
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
initrd (loop)/casper/initrd.lz
}
set isofile="/home/maketecheasier/TempISOs/kubuntu-15.04-desktop-amd64.iso"
loopback loop (hd0,1)$isofile
echo "Starting $isofile..."
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
initrd (loop)/casper/initrd.lz
}

分析上述代码
首先设置了一个变量名 $menuentry ,这是 ISO 文件的所在位置 。如果你想换一个 ISO ,你应该修改 isofile="/path/to/file/name-of-iso-file-.iso".
下一行是指定回环设备,且必须给出正确的分区号码。
复制代码
代码如下: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, 依此类推.
下一个重要的行是:
复制代码
代码如下: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 选项,改不改无所谓。
最后
复制代码
代码如下:initrd (loop)/casper/initrd.lz
这会载入 initrd ,它负责载入 RAMDisk 到内存用于启动。
启动 live 系统
做完上面所有的步骤后,需要更新 GRUB2:
复制代码
代码如下:sudo update-grub

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

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

Ubuntu 26.04 LTS(Resolute Raccoon)发布:内存要求提至6GB
2026-04-23,Ubuntu 26.04 LTS 正式版按计划如期发布,Ubuntu 26.04 LTS 搭载 Linux 内核 7.0 和 GNOME 50 桌面环境,原生集成英伟达 CUDA,内存要求提至 6GB2026-04-24
桌面生产力直接拉满! Ubuntu安装后别急着用这7个设置一定要改
Ubuntu桌面系统安装成功后,不要急着使用,修改后桌面生产力直接拉满,今天我就把这7个我每次必改的设置完整分享出来,配上详细步骤和实际效果2026-04-15
CPU和硬盘要求保持不变! Ubuntu 26.04 LTS最低内存运行要求提高到 6GB
Canonical即将发布“Resolute Raccoon”Ubuntu 26.04 LTS操作系统,资料显示推荐内存提高至6GB,这是2018年以来首次重大变动2026-04-08
基于Linux7.0+GNOME50+Mesa26.0! Ubuntu 26.04 LTS Beta 版发布
Ubuntu 26.04 LTS测试版如期发布,此次更新将集成大量前沿开源技术,Beta 测试版搭载了尚处于开发阶段的 Linux 7.0 内核、默认采用最新的 GNOME 50.0 桌面组件、全新的 Mes2026-03-27
近日,全球知名网络安全研究机构Qualys的威胁研究部门正式披露了Ubuntu桌面系统的一个高危本地提权漏洞,其官方漏洞编号为CVE-2026-38882026-03-21
Ubuntu 25.10 系统正式发布:搭载 Linux 6.17 内核
Ubuntu 25.10 系统代号“Questing Quokka”现已推出,集成最新的 GNOME 49 桌面环境,默认仅启用 Wayland 会话,提升了图形体验2025-10-10
Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更
很多朋友反馈,更新到Debian 13后网络转发等功能异常,这并非 BUG 而是 Debian 13 Trixie 调整了管理机制,具体来说是sysctl变更为由systemd-sysctl主导且配置文件变成模块2025-08-22
SSH中断/宝塔面板异常/分区问题等! Debian 13升级注意事项汇总
前一段时间发布了debian13,我们也分享了debian12升级到debian13的图文教程,很多朋友在升级的时候遇到了不少问题,今天我们就来看看Debian 13升级注意事项2025-08-21
Debian12怎么升级到Debian13? Debian系统升级教程
心念念的Debian13终于正式发布了,该怎么升级呢?下面我们就来看看Debian12升级到 Debian13的教程2025-08-21
Ubuntu 24.04.3 LTS 正式发布: 附更新内容汇总
Ubuntu 24.04 这一长期支持版本发布了第三个点版本升级:Ubuntu 24.04.3 LTS,涵盖桌面、服务器与云等版本,主要是将过去数月发布的安全更新、错误修复和稳定性改进整合入2025-08-09



最新评论