如何创建包含多个ISO映像的可启动USB


86

我想要的是创建一个显示GRUB菜单的可启动笔式驱动器,我可以从那里选择几个可启动系统中的任何一个进行安装/运行。我有几个要安装在USB中的ISO映像,例如Ubuntu,Fedora,System Rescue CD,Windows XP和Windows 7(Windows版本是可选的,主要是在寻找Linux发行版的多功能安装程序,特别是Ubuntu版本)

默认的启动磁盘创建器只能与Linux映像一起使用,并且一次只能使用1个(至少同时)。如果它允许更多的系统和多个ISO,那就太棒了。

我可以逐步使用哪种方法来创建具有多个映像的可引导USB驱动器,而不是可以从USB引导并可以从GRUB选择的映像。它必须支持Windows映像和Linux映像

另外,还有一种方法可以在同一个USB驱动器上拥有多个版本的Ubuntu安装ISO,例如,从它引导时,我可以选择要安装的Ubuntu版本和体系结构,例如:

引导菜单
Ubuntu 12.04 32位
Ubuntu 12.04 64位
Ubuntu 12.10 32位
Ubuntu 12.10 64位

更新:想补充一下daithib8提到的帖子的英文版本在这里:MultiSystem –从Linux创建MultiBoot USB | USB Pen Drive Linux


多系统无法在14.10上运行。
Akiva 2014年

Answers:


36

在USB / Pendrive中创建和安装多个发行版涉及两个部分:-

“搜索了几天后,我从www.multicd.tuxfamily.org找到了这个有用的脚本。Multicd.sh是由maywayway36编写的shell脚本,它使两个或多个Live Linux发行版/实用程序能够从一张CD / DVD。在一张光盘中创建多个Live Linux发行版非常简单。在您的主文件夹中创建一个文件夹并将其命名为multicd。将所有live Linux iso映像以及multicd.sh脚本放入multicd文件夹中。 。打开终端并输入以下命令

光盘
chmod + x multicd * .sh
须藤./multicd*.sh

上面的命令将执行multicd.sh。在执行过程中,此脚本将从Internet下载一些软件包,并在multicd文件夹中为您创建一个名为multicd.iso的新iso映像。检查multicd.iso映像文件的大小。如果超过700 mb,则必须插入DVD进行刻录。从您喜欢的图像刻录软件中选择“刻录图像”选项以写入multicd.iso文件。重新启动后,CD / DVD驱动器中包含CD / DVD,新的GRUB将显示光盘中可用的实时发行版列表。选择您喜欢的人登录...

注意:当您从互联网上下载任何Linux iso映像时,它看起来像是“ ubuntu-9.04-desktop-i386”,但是必须将其重命名为ubuntu.iso(在multicd文件夹中)。目前,该脚本支持20个现场发行版。下面提供了此脚本支持的Live Linux发行版列表(该脚本接受的名称在每个发行版的右侧)。”

博客页面上有发行版的列表。

  • 将多个Live发行版安装到USB / Pendrive。

UNetbootin 安装UNetbootin允许您为Ubuntu,Fedora和其他Linux发行版创建可启动的Live USB驱动器,而无需刻录CD。它可以在Windows,Linux和Mac OS X上运行。您可以让UNetbootin为您开箱即用地下载许多受支持的发行版之一,或者如果您已经下载了一个Linux发行版,请提供自己的Linux .iso文件。您的首选发行版不在列表中。

支持除其他:Ubuntu的(和官方衍生品)8.04 9.10 10.04 10.10 11.04日报CD镜像,Fedora 10中,11,12,13,14,生皮和许多其它更多

如果您查看它们的图像,则可以选择发行版或自己下载ISO并添加它们或添加自定义。您可以在硬盘或USB闪存盘上进行设置。

在此处输入图片说明

我希望这是足够的信息,但是此博客上有很多信息


7
对下降投票者:真的吗?三年后,您不同意其他16个人吗?
Rinzwind

2
对于我的几个答案,我也有同样的想法。我认为他们将“非常差的答案”与“缺少一些其他信息”混为一谈。或者他们不知道可以对如何改善答案发表评论。
Luis Alvarado 2014年

unetbootin可以用于为Ubuntu 14.04和gparted iso映像创建可启动的实时驱动器吗?如果否,那么用于这2个iso的工具是什么?
拉维2014年

是的。Gparted和Unetbootin
Rinzwind 2014年

3
如何使用UNetbootin创建多引导USB?答案并不能解释这一点。
wjandrea

14

在不使用Windows的情况下,我发现用于多重引导启动棒的唯一系统是Multisystem。虽然文档仅以法语提供,但是您可以使用项目的官方仓库轻松地将其安装在Ubuntu上:

sudo apt-add-repository 'deb http://liveusb.info/multisystem/depot all main' 
wget -q -O - http://liveusb.info/multisystem/depot/multisystem.asc | sudo apt-key add - 

sudo apt-get update 
sudo apt-get install multisystem

它可以做burgsyslinuxgrub4dosplopVirtualboxqemu等,但一个基本的多重棒可以在5分钟内通过拖放许多发行版进行。对于Slitaz烹饪,我必须在上添加几行/boot/grub/menu.lst。据我了解,Grub 1通常将其用于多重引导环境,但是该示例使用Grub 2。可以使用EasyBCDPlop引导管理器从Windows引导菜单运行它。


测试了一个。我所知道的唯一一个是Multisystem和UNETbootin,但是它们不能在Windows上运行,因此无法完成支持Windows和其他Linux发行版的liveusb。尝试了您在这里提到的那个,我对此感到惊讶。
Luis Alvarado


12

我认识了另外2种工具。名为MultiSystemYUMI

MultiSystem的安装非常简单,您可以使用该项目的官方仓库在Ubuntu上轻松安装它:

sudo apt-add-repository 'deb http://liveusb.info/multisystem/depot all main' 
wget -q -O - http://liveusb.info/multisystem/depot/multisystem.asc | sudo apt-key add - 

sudo apt-get update 
sudo apt-get install multisystem

然后,只需选择USB设备,然后将ISO拖放到MultiSystem工具中即可。如果DnD不起作用,您也可以单击Add按钮。

在此处输入图片说明

在此处输入图片说明


YUMI也是简单的类似工具。他们提供了一个.deb文件,您可以像这样安装:

sudo dpkg -i <filename.deb>

令人沮丧的是,至少在14.10上,Multiboot无法在ubuntu上运行。我认为它正在使用旧的gtk库或其他东西。您得到它为您工作吗?
Akiva 2014年

@Akiva您在谈论MultiSystem还是YUMI?
rɑːdʒɑ

多系统。我找到了一个很棒的,尽管现在叫做multibootusb。
Akiva 2014年

@Akiva你为什么不提高答案multibootusb 笔者从2011年再回来吗?这将比几个闲聊评论对网站更有用。同样,应该从安装MultiSystem发出错误消息或安装日志,而不是发出松散的“不起作用”语句。我将发现添加到答案中。
LiveWireBT

1
YUMI不再提供Linux版本。
Ploni

5

您可以通过将GRUB2安装到USB驱动器的MBR上,直接将其挂载到ISOUB中。您也可以通过这种方式创建UEFI可启动USB驱动器,或者将两种方法结合使用。

其他大多数解决方案都是MBR /旧PC专用的,不能在UEFI计算机上可靠地工作。

我建议您阅读的文档项目现场和相关手册页(grub-installgrub-mkimage)。


编辑1:前一段时间,我将答案扩展到了类似的问题。第2节是关于循环安装一个映像,通过复制和修改菜单项,或者从Arch Wiki中的文章中选择适当的模板进行另一分发,可以完成问题中的多个Ubuntu映像的安装。在另一个答案中提出的MultiSystem应该非常相似,因为它还利用了GRUB的环路安装功能。

编辑2:说到MultiSystem,由于gtkdialog依赖项中存在以下错误,当前无法将软件包安装在较新版本的Ubuntu上:

install-info: warning: no info dir entry in `/usr/share/info/gtkdialog.info.gz'

这些文件的格式似乎已更改,以下是gzip信息文件的摘录,供您比较:

INFO-DIR-SECTION Compression
START-INFO-DIR-ENTRY
* Gzip: (gzip).                 General (de)compression of files (lzw).
END-INFO-DIR-ENTRY

gtkdialog无需维护,很久以前就已从Debian删除,并向应用程序开发人员提供了使用替代解决方案的建议。MultiSystem似乎仍在积极开发中,但仍依赖gtkdialog,应该有人来接近开发人员,尽管我不会说法语。


4

MultiBootUSB是我最喜欢的多引导驱动器制造商。

它基于grub2 iso引导,将使USB驱动器可以引导超过150个发行版,并且非常易于使用。

Ubuntu版本和派生版本各自可以具有自己的持久性文件。持久性在其他多重启动驱动器创建者中不可用。

Sundar_Ima在此实用程序上做得很好。

有Linux和Windows版本。

我的第一个MultiBootUSB驱动器七年后仍在使用。


3

好的,这就是我要从SD卡运行Xubuntu的方法,它实际上也适用于USB记忆棒,虽然我只使用(x)Ubuntu,但我很确定它可以用于其他Distro,但不确定是否可以运行它。可以在Windows下使用。

首先,我们需要2个USB记忆棒,一个用于liveCD,另一个用于安装操作系统。

由于要在其中安装多个操作系统,因此应使用16或32 GB的USB记忆棒,如果可能的话,请使用USB 3.0,因为从2.0设备传输的速率非常慢。我用一个8GB的2级SD卡安装了Xubuntu,尽管它没有爬行,但它并未飞行,尽管SD卡的速度比USB慢,对于livecd,您可以使用1或2 GB的驱动器。

好的,现在制作一个liveUSB可引导驱动器,我建议您使用UNetbootiN,为此,请选择iso并创建liveUSB。

现在,您有了可启动的USB,重新启动PC并启动liveUSB,一旦您进入那里,就开始实时会话。

一旦您将第二个USB连接到PC并将其格式化为EXT4,然后只需将安装程序指向USB驱动器就可以了(我在极端的地方走了一点,并断开了所有硬盘的连接,以避免grub被安装在他们身上或弄乱了现有的安装)。

添加更多发行版只是创建更多分区的问题,尽管我不知道USB是否像普通硬盘一样,最多只能容纳一定数量的扩展分区,尽管您可以共享/ home,swap,但我不知道。真的不知道/ boot是否也可以共享,或者这样做是否安全。

至于将Windows添加到USB设备,也许就可以,如果您创建一个NTFS分区并在其中安装Windows,然后还原GRUB以便将Windows添加到其中,则可能会起作用。


该答案说明了如何制作具有多个已安装发行版的USB ,但在我看来,OP一直在寻找如何创建多启动Live USB的方法
Ploni

2

知道要获得什么软件。

首先,您将需要一个分区编辑器,例如GParted或KDE分区管理器。请参阅此Linux分区编辑器列表。我建议您将GTK基本桌面Sush用作Gnome,Unity或LXDE。使用Gparted。如果您使用KDE或LXQT之类的QT基础桌面,则要使用KDE分区管理器。

您需要的第二件事是为他们安装像Unetbootin这样的安装程序,或者您可以使用终端。

安装软件。

Gparted

单击此链接安装Gparted 安装Gparted,在Ubuntu软件中心中找到它,或输入sudo apt-get install gparted终端。还有更多的说明这里

单击链接安装Gparted之后,它应该会打开Ubuntu软件中心,而您所需要做的只是按下安装按钮。


Unetbootin

单击此链接安装Unetbootin 安装Unetbootin,在Ubuntu软件中心中找到它,或键入sudo apt-get install unetbootin终端。还有更多的说明这里

单击链接以安装Unetbootin之后,它将打开Ubuntu软件中心,您所要做的只是按安装按钮。

分区闪存驱动器


有关GUI,请参见本教程。请参阅本教程的终端,不推荐。

将ISO文件安装到每个分区。


对于Unetbootin,请参阅本教程。对于终端,请参见教程


@akiva好吗???
MathCubes 2014年

哦对不起; 没有看到这个答案;我奖励了agentcool> _ <
Akiva

1
您的UnetBootin链接已损坏,或者对我来说,它将我定向到pdf阅读器。
Akiva 2014年

@Akiva,谢谢,我在编辑之前确实将其用作基础
MathCubes 2014年

1
@MathCubes temrinal指南适用于单个iso文件。您如何针对多个iso文件执行此操作?是否必须syslinux -s为每个包含iso归档内容的分区运行?请在您的答案中添加更多说明!!谢谢!
Arch Linux Tux

2

UNetbootin-多重启动

关于使用UNetbootin作为多启动器,该线程有一些兴趣,UNetbootin不会启动ISO映像或安装Windows OS。

UNetbootin可以安装到多个分区,但是必须处理syslinux bootloader。

Gparted

将每个操作系统的闪存驱动器划分为一个分区,为清晰起见,将标签划分为多个分区。

UNetbootin 1

使用UNetbootin 655将操作系统安装到可用分区。使用655或更高版本应允许驱动器同时引导BIOS和UEFI

UNetbootin 2

最后安装到第一个分区,或者手动设置第一个分区的启动标志。

Syslinux软件包

将Chain.c32从Syslinux-4.07程序包复制到第一个分区的根目录。Syslinux-4.03 chain.c32无法正常工作。

Ubuntu分区

将syslinux.cfg复制为syslinux2.cfg。

编辑原始Syslinux.cfg

如图所示,替换原始syslinux.cfg的内容,为每个OS添加一个chainload条目。

须藤分开-ls / dev / sdb

须藤分开-ls / dev / sdb

须藤lsblk -f / dev / sdb

须藤lsblk -f / dev / sdb

如果您不想使用Windows版本,则Config在Linux版本的UNetbootin 655中似乎不起作用。

编辑syslinux.cfg以包括链加载命令

忘记syslinux2.cfg并仅编辑原始syslinux.cfg以包括其他操作系统的链加载命令。

如果/当我弄清楚如何使用UEFI进行链式加载时将更新文章,这对于syslinux可能并不容易。


2

YUMI(2018)

YUMI现在具有用于BIOS引导的版本和用于UEFI引导的beta版本。

YUMI符合OP的多次引导ISO映像标准。

它简单明了,易于理解和使用。

引导菜单实际上是syslinux,但类似于grub2。

YUMI的一个优点是,通过安装NTFS,每个casper-rw持久性文件每个都可以超过4GB。

下载-https://www.pendrivelinux.com/yumi-multiboot-usb-creator/

YUMI是一个Windows应用程序,据说可以在Wine中运行,但是我对此并不满意。


@Ploni注意添加,
CSCameron

2

多重安装

自2011年以来情况发生了变化,如今的闪存驱动器更大,更快。

现在,将多个操作系统完全安装到闪存驱动器是合理的(或将混合安装的Live,Persistent和Full安装成为混合驱动器)。

完全安装比持久性安装更稳定和安全,但安装速度不那么快。由于不需要固定大小的casper-rw文件或分区,因此它们更善于利用​​磁盘空间。

  • 使用UNetbootin,Rufus等在小型闪存驱动器上创建Live Installer驱动器。

  • 在大型Target闪存驱动器上创建GPT分区表。

  • 根据您的操作系统创建尽可能多的ext4分区。每个文件的大小应约为8GB。

  • 引导Live驱动器(在UEFI模式下),然后插入更大的Target驱动器。

  • 单击“安装Ubuntu”图标,(“无处不在”)。

  • 在分区中选择“其他”。

  • 为/选择sdx1。(sdx是目标驱动器)。

  • 将引导程序安装到目标驱动器的根目录。

  • 保留所有其他分区的格式框未选中。

  • 如果使用全盘加密安装,请确保删除或禁用任何内部驱动器。

  • 对sdx2,sdx3等重复此操作,然后选择要安装的OS。

  • 在最后一次安装后,启动闪存驱动器并执行update-grub。这会将所有操作系统添加到grub.cfg

您可以为希望进行实时引导或持久引导的任何ISO保留一个分区,使用grub.cfg循环挂载这些分区。

看来此答案可能部分重复了Uri Herrera的答案。他首先在这里,我将把它留在这里以获取其包含的所有其他信息。


“在分区时选择了“其他”。“什么时候在哪个应用程序中进行“分区”是什么意思?在gparted?
Santropedro

@Santropedro:Ubuntu Ubiquity安装程序中的“其他”选项。我已经更新了答案,请告诉我它是否仍然令人困惑。
CSCameron



1

mkusb MULTIBOOT HACK

Mkusb具有BIOS和UEFI的功能,因此为自定义启动驱动器项目奠定了良好的基础。

该黑客启动了多个ISO文件,包括Windows安装程序,并具有grub2菜单。

大多数操作系统的Grub2菜单项可使用Google搜索获得,但不在此答案范围内。

mkusb默认

创建持久性USB驱动器时,请使用mkusb默认值。

mkusb再次使用默认值

如果不确定,请使用mkusb持久性默认值,以后可以调整分区大小,但需要花费一些时间。

DUS控制台

安装后的DUS控制台。

GParted之前

GParted在分区修改之前。

分手后

修改后进行分区-覆盖sdb4(ISO9660 OS分区)和sdb5(ext2 casper-rw分区),以及用于持久性文件的FAT32分区。

持久分区

持久性分区-为每个操作系统创建一个唯一的名称文件夹(需要持久性)

持久性文件夹

持久性文件夹-将casper-rw文件和可选的home-rw文件添加到每个持久性文件夹。可以通过重命名casper-rw文件来制作home-rw文件。home-rw文件就像完整安装中的单独主分区一样,可以在版本升级后重用。

ISO文件夹

在NTFS usbdata分区上为ISO文件创建一个文件夹。

ISO文件夹内容

将一些ISO添加到ISO文件夹中。

GRUB位置

grub.cfg的位置

grub.cfg

编辑grub.cfg以循环挂载ISO文件。包括:persistent persistent-path=/<persistent-folder-name>/如果您想要持久性。

须藤分开-ls / dev / sdb

须藤分开-ls / dev / sdb

须藤lsblk -f / dev / sdb

须藤lsblk -f / dev / sdb

如果需要Windows安装程序,可能最简单的方法是使用mkusb“提取Windows安装程序”功能(我必须手动将Windows ISO提取到TAR),

mkusb Windows安装程序

安装后,为ISO创建一个文件夹,如果需要,为持久性创建一个文件夹(类似于上述过程)。

mkusb Windows grub

编辑/boot/grub/grub.cfg以循环挂载任何ISO并指定任何持久性文件夹。

(尚未找到循环挂载Windows ISO文件的方法)。


0

旧线程的新答案

在尝试了许多解决方案之后,

  • Multisystem 难以置信的复杂设置,以达到错误的,有缺陷的和正常工作的界面
  • Yumi 更专业的方法,但不处理UEFI

我来成功尝试Easy2boot,它具有一个简单而有效的Linux脚本来格式化,构建和设置预格式化的USB驱动器(分区FAT32)

  • 将下载的文件从站点解压缩到目录,例如 easy2boot
  • 将图像文件(ISO ...)复制到easy2boot/_ISO/AUTO(最简单的)
  • cd easy2boot/_ISO/docs/linux_utils
  • 运行fmt.sh: bash fmt.sh
  • easy2boot将显示它将在哪个设备上运行,并询问您是否正确...请务必检查此部分两次!

而已。

尝试从Ubuntu格式化的驱动器!(此时应卸载)

qemu-system-x86_64 -machine accel=kvm:tcg -m 512 -hda /dev/sdX

XUSB驱动器设备在哪里(例如“ b”,“ c”,...)

您应该在顶部菜单“ DIRECT BOOT”中获得一个新条目。

在此处输入图片说明


不幸的是,不是免费软件。
费利克斯

1
我同时测试了多系统和easy2boot。与具有相同ISO的easy2boot相比,多系统使用的空间更少。所以我更喜欢多系统而不是easy2boot。
Nuwan Thisara '16

Multisystem为我很好地工作:直观并且按预期工作,没有大惊小怪……
landroni

它主页上的@Felix表示它是免费的!
Arch Linux Tux

1
@ArchLinuxTux在easy2boot.com/download上说:“ ...免费用于非商业用途”。以我的理解,这违反了自由软件的定义(en.wikipedia.org/wiki/Free_software),当然,我的意思是“言论自由自在”(他们不会从我们的演讲中夺走它)而不是“自由如啤酒免费” ”(您不必为此付费)。我在easy2boot主页上找不到任何“许可证”文本。如果它的免费(免费!)软件非常高兴,在这种情况下,请提供链接,我将删除或调整此评论。
Felix
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.