直接从硬盘启动Linux ISO镜像
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分区
ISO 光盘 启动 GRUB2
218.104.143.39
对ast有用
微博评论
2014-10-26T14:33:00.000
221.178.200.121
好像从8.X开始我一起是这样装的
微博评论
2014-10-26T15:03:00.000
221.178.200.121
走着，再也不用刻录到U盘启动了
微博评论
2014-10-26T15:03:00.000
221.178.200.121
没带U盘的时候用
微博评论
2014-10-26T15:03:00.000
119.39.234.50
我把ubuntu和win8装到一个盘里怎么办。。
微博评论
2014-10-26T15:33:00.000
220.200.4.231
回复@少年昂的奇葩漂流:是可以的。但是win8的镜像要解包放到根目录。title &gt;&gt; windows8.1_cn find --set-root /bootmgr chainloader /bootmgr boot
微博评论
2014-10-26T16:03:00.000
220.200.4.231
回复@御翎:好吧，这个只是理论，对用grub4dos有效
微博评论
2014-10-26T16:03:00.000
220.200.4.231
回复@御翎:要怎么彻底删掉ubuntu，再重新装
微博评论
2014-10-26T16:03:00.000
220.200.4.231
回复@少年昂的奇葩漂流 在windows的磁盘管理里直接格式化掉ubuntu所在的区，注意这个时候开机引导会失效，需要修复，不然开不了机。你可以直接用bootice在硬盘主引导上写入windows的引导即可。
微博评论
2014-10-26T16:03:00.000
220.200.4.231
回复@少年昂的奇葩漂流:我看错了，不好意思，看分区之下有没有一个ubuntu的文件夹，删掉即可
微博评论
2014-10-26T16:03:00.000
220.200.4.231
回复@御翎:没有，我不是用wubi装的，我是用优盘装的。
微博评论
2014-10-26T16:03:00.000
188.165.15.227
回复@少年昂的奇葩漂流:这样啊，我就没什么好办法了，windows下的文件和ubuntu的文件如果分得清就手动删掉吧……我没有更深入的了解过。话说这样的文件系统就不是ext4了吧。
微博评论
2014-10-26T16:33:02.000
188.165.15.227
回复@御翎:你是华科的？
微博评论
2014-10-26T16:33:02.000
188.165.15.227
回复@少年昂的奇葩漂流:[震惊]暴露行踪，你是怎么知道的，综合推理吗？难道最近露面太多？
微博评论
2014-10-26T16:33:02.000
188.165.15.227
回复@御翎:你的微博上资料啊。。。。（我老哥也是你们学校的）
微博评论
2014-10-26T16:33:02.000
188.165.15.227
回复@少年昂的奇葩漂流:哈~~~原来如此
微博评论
2014-10-26T16:33:02.000
61.154.16.137
用过。。虽然过程磕磕绊绊而且完全不懂原理。。
微博评论
2014-10-26T18:33:01.000
157.55.39.216
好东西啊
微博评论
2014-10-26T20:33:02.000
183.62.57.172
这个好，为了安装各种linux我已经刻了不计其数的盘了(就好像当年刻录ghost xp一样…)
微博评论
2014-10-27T00:03:00.000
42.156.138.72
挺好
微博评论
2014-10-27T01:03:00.000
116.255.132.12
我能支持一下吗?^_^
netb2c
2014-10-29T12:56:15.000
106.120.101.58
一定要支持！
linux
2014-10-29T15:55:02.000
221.204.162.197
还是这个靠谱啊，网上一堆让编辑grub.cfg的，编辑了也没用。。。也许是因为没有grub-update?
来自 - 山西太原 的 Firefox/Windows 用户
2014-11-02T10:31:33.000
125.86.184.138
一定要支持！
tenght
2014-11-02T10:43:46.000
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分区
![](/data/attachment/album/201410/25/225846ph8s8jghh6prwsnw.png)


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


我们在Ubuntu 14.04上实施了该过程——Ubuntu及基于Ubuntu的Linux版本对此支持良好。[其它Linux发行版](http://www.howtogeek.com/191207/10-of-the-most-popular-linux-distributions-compared/)上的工作原理也类似。


### 获取Linux ISO文件


这一密技需要你的硬盘驱动器上安装有Linux系统，你的计算机必须使用[GRUB2启动加载器](http://www.howtogeek.com/196655/how-to-configure-the-grub2-boot-loaders-settings/)，这是大多数Linux系统的标准启动加载器。不好意思，你是不能使用Windows启动加载器来直接启动一个Linux ISO文件的。


下载你想要使用的ISO文件，并放到你的Linux分区中。GRUB2应该支持大多数Linux系统的。如果你想要在live环境中使用它们，而不想将它们安装到硬盘驱动器上，请确认你下载的是各个Linux ISO的“[live CD](http://www.howtogeek.com/172810/take-a-secure-desktop-everywhere-everything-you-need-to-know-about-linux-live-cds-and-usb-drives/)”版本。很多基于Linux的可启动工具盘也应该可以工作。


### 检查ISO文件内容


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


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


![](/data/attachment/album/201410/25/225848myz96eelo8j8lr98.png)


### 检查硬盘分区路径


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)。


![](/data/attachment/album/201410/25/225849kus93uvb9vx35g38.png)


### 创建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文本编辑器](http://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/)中打开它。


除非你已经添加了其它自定义启动条目，否则你应当看到的是一个几乎空的文件。你需要在[注释](http://www.howtogeek.com/118389/how-to-comment-out-and-uncomment-lines-in-a-configuration-file/)行下添加一个或多个ISO启动部分。


![](/data/attachment/album/201410/25/225851suzyu3uiiywwvvi3.png)


这里为你展示了怎样来从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发行版的菜单条目](http://git.marmotte.net/git/glim/tree/grub2)的各种不同类型。你应当为你想要启动的ISO文件调整这些示例菜单条目。你也可以仅仅从网页搜索你想要启动的Linux发行版的名称和发行编号，并附带关键词“在GRUB中从ISO启动”，以获取更多信息。


![](/data/attachment/album/201410/25/225853kpsj6fzki3lyhl66.png)


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


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



```
sudo update-grub

```

![](/data/attachment/album/201410/25/225855kibofwi8orlclhfi.png)


再次启动计算机时，你将看到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](http://www.howtogeek.com/author/chrishoffman/) 译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

