直接从硬盘启动Linux ISO镜像
创始人
2024-03-01 14:06:56
0

Linux的GRUB2启动加载器可以直接从硬盘启动Linux ISO文件,可以启动Live CD的 ISO,而不用烧录到光盘来安装Linux到一个硬盘分区,或从USB驱动启动。

我们在Ubuntu 14.04上实施了该过程——Ubuntu及基于Ubuntu的Linux版本对此支持良好。其它Linux发行版上的工作原理也类似。

获取Linux ISO文件

这一密技需要你的硬盘驱动器上安装有Linux系统,你的计算机必须使用GRUB2启动加载器,这是大多数Linux系统的标准启动加载器。不好意思,你是不能使用Windows启动加载器来直接启动一个Linux ISO文件的。

下载你想要使用的ISO文件,并放到你的Linux分区中。GRUB2应该支持大多数Linux系统的。如果你想要在live环境中使用它们,而不想将它们安装到硬盘驱动器上,请确认你下载的是各个Linux ISO的“live CD”版本。很多基于Linux的可启动工具盘也应该可以工作。

检查ISO文件内容

你可能需要查看ISO文件的内部来知道那些特定的的文件在哪里。例如,你可以通过使用Ubuntu及其它基于GNOME的桌面环境中的归档管理器/文件管理器这些图形化应用程序来打开ISO文件。在Nautilus文件管理器中,右击ISO文件并选择使用归档管理器打开。

找到内核文件和initrd映像。如果你正在使用Ubuntu ISO文件,你会在casper文件夹中找到这些文件——vmlinuz文件是Linux内核,而initrd文件是initrd映像。后面,你需要知道它们在ISO文件中所处的位置。

检查硬盘分区路径

GRUB使用与Linux不同的“设备命名”方式。在Linux系统中,/dev/sda0是硬盘上的第一个分区——a是指第一个硬盘,而0是指第一个分区。在GRUB中,与/dev/sda0相对应的是(hd0,1)。0指第一个硬盘,而1则指它上面的第一个分区。换句话说,在GRUB设备名中,磁盘编号从0开始计数,而分区编号则从1开始计数——是啊,这真是突然令人困惑。例如,(hd3,6)是指第四磁盘上的第六分区。

你可以使用fdisk -l命令来查看该信息。在Ubuntu上,打开终端并运行以下命令:

sudo fdisk -l

你将看到一个Linux设备路径列表,你可以自行将它们转成GRUB设备名。例如,在下面的图片中,我们可以看到有个系统分区是/dev/sda1——那么,对于GRUB而言,它就是(hd0,1)。

创建GRUB2启动条目

添加自定义启动条目的最简单的方式是编辑/etc/grub.d/40_custom脚本,该文件设计用于用户自行添加启动条目。在编辑该文件后,/etc/defaults/grub文件和/etc/grub.d/脚本的内容将合成创建/boot/grub/grub.cfg文件——你不应该手工编辑这个文件。它被设计为通过你在另外的文件中指定的设置自动生成。

你需要以root特权打开/etc/grub.d/40_custom文件来编辑。在Ubuntu上,你可以通过打开终端窗口,并运行以下命令来完成:

sudo gedit /etc/grub.d/40_custom

放轻松点,你可以用你喜爱的文本编辑打开该文件。例如,你可以替换命令中“gedit”为“nano”,在Nano文本编辑器中打开它。

除非你已经添加了其它自定义启动条目,否则你应当看到的是一个几乎空的文件。你需要在注释行下添加一个或多个ISO启动部分。

这里为你展示了怎样来从ISO文件启动Ubuntu或基于Ubuntu的发行版,我们在Ubuntu 14.04下作了测试:

menuentry "Ubuntu 14.04 ISO" {
set isofile="/home/name/Downloads/ubuntu-14.04.1-desktop-amd64.iso"
loopback loop (hd0,1)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
initrd (loop)/casper/initrd.lz
}

自定义启动条目以包含你期望的菜单的条目名称,并指定计算机上该ISO文件的正确路径,以及包含ISO文件的硬盘和分区设备名。如果vmlinuz和initrd文件的名称或路径不同,请为这些文件指定正确的路径。

(如果你的/home/ 目录是一个分区,请忽略/home部分,像这样:set isofile="/name/Downloads/${isoname}")。

重要说明:不同的Linux版本要求带有不同启动选项的不同的启动条目,GRUB Live ISO多启动项目提供了用于不同Linux发行版的菜单条目的各种不同类型。你应当为你想要启动的ISO文件调整这些示例菜单条目。你也可以仅仅从网页搜索你想要启动的Linux发行版的名称和发行编号,并附带关键词“在GRUB中从ISO启动”,以获取更多信息。

如果你想要添加更多ISO启动选项,请为该文件添加额外部分。

完成后保存文件,返回终端窗口并运行以下命令:

sudo update-grub

再次启动计算机时,你将看到ISO启动条目,你可以选择它来启动ISO文件。在启动时,你可能需要按Shift键来显示GRUB菜单。

如果在尝试启动ISO文件时你看见错误信息或黑屏,那么你的启动条目配置肯定配置错误了。即使ISO文件路径和设备名是正确的,ISO文件上的vmlinuz和initrd文件的路径可能是不正确的,或者你启动Linux系统可能需要不同的选项。


via: http://www.howtogeek.com/196933/how-to-boot-linux-iso-images-directly-from-your-hard-drive/

作者:Chris Hoffman 译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

相关内容

腾讯2026校招启动,重点...
8月6日,腾讯2026校园招聘正式启动。本次招聘面向2025年1月...
2025-08-06 20:17:26
美国不甘落后!启动ATOM...
快科技8月6日消息,据报道,面对中国在开源人工智能(AI)领域的迅...
2025-08-06 19:41:28
阿里巴巴秋招启动,超6成A...
8月5日,阿里巴巴开启2026届秋季校园招聘,计划发出超7000个...
2025-08-05 17:13:38
尝鲜,2家船企启动AI审图...
据《日本经济新闻》7月30日报道,日本造船企业今治造船和浅川造船计...
2025-07-30 22:15:04
南方电网牵头启动开放原子电...
记者从南方电网获悉,7月23日,在2025开放原子开源生态大会开幕...
2025-07-26 16:44:23
开放原子电鸿开源社区正式成...
在能源革命与数字技术深度融合的背景下,我国电力行业开源生态建设迈出...
2025-07-24 18:42:56

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...