欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux下如何直接从硬盘启动Linux ISO镜像文件

程序员文章站 2023-11-10 09:50:34
启动Linux ISO镜像都要现将文件刻录到光盘或从USB驱动启动,下面以图文的形式为大家分享下如何直接从硬盘启动Linux ISO文件,感兴趣的朋友一起来看看哦... 14-12-10...

  通常linux启动linux iso镜像都要现将文件刻录到光盘或从usb驱动启动,下面小编就给大家介绍下linux下如何直接从硬盘启动linux iso文件,一起来学习下吧。

  我们在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文件中所处的位置。

  Linux下如何直接从硬盘启动Linux 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)。

  Linux下如何直接从硬盘启动Linux ISO镜像文件

  创建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启动部分。

  Linux下如何直接从硬盘启动Linux 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)$isofilelinux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splashinitrd (loop)/casper/initrd.lz}

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

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

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

  Linux下如何直接从硬盘启动Linux ISO镜像文件

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

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

  sudo update-grub

  Linux下如何直接从硬盘启动Linux ISO镜像文件

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

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

  上面就是从硬盘启动linux iso镜像的方法介绍了,你可以直接在硬盘上启动,而不需使用usb或光盘那么麻烦了,赶紧试试看吧。