Liv*_*eBT 124 live-usb boot uefi
将 Ubuntu 安装到当前可用的 Windows 8 计算机上时,拥有可以双向启动的实时媒体可能是一个问题。
换句话说,创建仅限 UEFI 的可启动 USB 实时媒体的主要优势是:您知道它肯定是通过 UEFI 启动和安装的。
由于 Valve 已经在使用基于 Debian 的Steam 操作系统和 UNetbootin(Ubuntu 启动盘创建器的最高投票替代品)进行仅 UEFI 引导 USB 安装程序,它不兼容 UEFI,因此具有误导性,我认为我们应该有一个单独的主题创建仅限 UEFI 的可启动 USB 实时媒体。
Liv*_*eBT 148
创建仅 UEFI 引导 USB 实时媒体非常简单。只需将文件复制到FAT32 格式的USB 驱动器即可。就是这样!
请记住,对于安装或启动媒体:
此方法也适用于包含 EFI 加载程序的其他安装媒体,例如 Windows。
如果604A-00EA您的 USB 驱动器已经p7zip安装,您可以执行以下操作:
$ 7z x ubuntu-12.04-desktop-amd64.iso -o/media/$USER/604A-00EA/
Run Code Online (Sandbox Code Playgroud)
如果此 USB 驱动器上只有一个分区,那么您就完成了,否则您需要将该分区标记为可引导,例如通过parted:
# parted /dev/sdX set 1 boot on
Run Code Online (Sandbox Code Playgroud)
/dev/sdX您的 USB 驱动器和1应该用于启动的分区号在哪里。
挂载 .iso 文件并将内容复制到您的 USB 驱动器。在 Nautilus 中按Ctrl+ 也H可以显示和复制隐藏文件。

通过GParted添加引导标志。

diskmgmt.msc,这将打开磁盘管理。GRUB 和 GRUB2 已经能够通过回送设备直接从 ISO 映像引导,而不是从 ISO 映像中提取内容。鉴于 ISO 映像是 UEFI 可引导的,我们可以设置一个包含多个具有不同操作系统的 ISO 的 USB 驱动器,而不会在 USB 驱动器上造成混乱。
如果您也想启动 Windows,您可能需要查看SARDU。我记得在 2005 年左右将它与 Windows PE 一起使用,它似乎已更新为支持 USB 驱动器和 UEFI,但请记住,此工具还支持传统启动。
我们需要什么?
在您的 Ubuntu 机器或 VM 上,确保安装了grub-efi-amd64-bin包(grub-efi-ia32-bin 也可用于较新版本的 32 位 Intel 架构)。该软件包在另一个发行版上可能具有不同的名称,您可以比较该软件包的文件列表以在您的发行版上找到正确的软件包。
以下命令将生成 GRUB 映像,在这种情况下,每台具有 UEFI 固件的计算机都应该能够运行的 EFI 二进制文件:
grub-mkimage -o bootx64.efi -p /efi/boot -O x86_64-efi \
fat iso9660 part_gpt part_msdos \
normal boot linux configfile loopback chain \
efifwsetup efi_gop efi_uga \
ls search search_label search_fs_uuid search_fs_file \
gfxterm gfxterm_background gfxterm_menu test all_video loadenv \
exfat ext2 ntfs btrfs hfsplus udf
Run Code Online (Sandbox Code Playgroud)
每个标准UEFI 固件都应查找\EFI\BOOT\名为 的文件boot{arch}.efi,因此在 USB 驱动器上创建文件夹并将我们刚刚创建的映像复制到此位置。其他架构代替 x64 也是可能的,但让我们使用 x64/amd64 保持简单。
一个非常基本的grub.cfg配置文件示例,它应该放在同一个目录中,bootx64.efi如下所示:
set timeout=3
set color_highlight=black/light-magenta
menuentry 'Boot Ubuntu 14.04.2 LTS from ISO' {
set isofile="/efi/boot/ubuntu-14.04.2-desktop-amd64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject quiet splash persistent --
initrd (loop)/casper/initrd.lz
}
submenu 'Useful snippets' {
menuentry 'Ubuntu' {
chainloader /efi/ubuntu/grubx64.efi
}
menuentry 'Windows' {
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
menuentry 'Firmware Setup' {
fwsetup
}
}
Run Code Online (Sandbox Code Playgroud)
重要的是带有标题的配置块Boot Ubuntu 14.04.2 LTS from ISO。您可以根据自己的喜好更改颜色和超时。我选择black/light-magenta它是因为它看起来仍然有点像 Ubuntu 风格,但在链式加载其他配置时很容易区分。您可以在Arch Wiki 中找到其他发行版的更多示例,如果您想了解更多,阅读GRUB 手册确实值得您花时间。
回到配置块,很明显 ISO 被引用为/efi/boot/ubuntu-14.04.2-desktop-amd64.iso,因此将您的 ISO 复制到\EFI\BOOT\并ubuntu-14.04.2-desktop-amd64.iso在配置中替换为您的 ISO 的实际文件名。
loopback loop $isofile是一行,它将我们的 ISO 文件加载到一个环回设备,我们可以从中直接启动 Linux 内核。这是可能的,因为我们的 EFI GRUB 映像包含环回模块。(在确定哪些模块是合理包含的过程中需要进行一些试验和错误。您不应该看到任何错误消息,但它仍然不完美。)说到内核,您可以添加内核参数,例如toram不同语言的参数(example locale=de_DE bootkbd=de) 和示例中一样:persistent
您可以按照以下所述添加分区:如何获取 live-USB 以使用分区进行持久化?或者您可以创建一个casper-rw文件并将其放在 USB 驱动器的根目录中。
dd if=/dev/zero of=casper-rw bs=1M count=4094
mkfs.ext4 -m 0 casper-rw
Run Code Online (Sandbox Code Playgroud)
我还没有测试过绝对最大值是多少,它应该在 4094 到 4096 MB 之间。如果您打算使用更多空间,请使用分区。请注意,对(root)的每次更改都是对覆盖文件系统的修改,甚至是删除文件。
您应该查看以下问题的答案,以验证 USB 驱动器上的 Live ISO 内容是否处于原始状态:
安全启动将成为 Windows 10 机器的强制性要求,我建议您查看 Linux Foundation 的 PreLoader 以将安全启动功能添加到此设置中。以下是一些ASCII 艺术图,用于说明随附 HashTool 的菜单。
我在 5 年前写了这个答案。它仍然有效吗?它适用于 Ubuntu。但是,来自最新 Windows 10 映像的 install.wim 超过了 FAT32 最大文件大小,并且更大的映像(如 RHEL 8)也不适合。我昨天尝试了 Rufus,注意到它也使用 GRUB 和 NTFS EFI 模块来读取另一个存储 Windows 安装文件的 NTFS 分区。但是,它无法从该分区加载数据。exFAT 现在也很普遍。
Windows 对没有分区表的驱动器很挑剔。尝试将旧 SSD 重新用作笨重的 USB 拇指驱动器在 Windows 上效果不佳。也许我需要阅读一些 Microsoft 文档以找出使其比 Linux 更复杂的基本原理。
ChromeOS 是一个不同的话题,我认为不可能以我喜欢的方式创建恢复媒体。当您必须使用 Windows 并重新格式化整个驱动器来为 Chromebook 创建媒体时,这很麻烦。
有趣的东西,让我们希望我能抽出时间解决其中的一些问题并学习更多新东西。
恭喜,我想说你现在已经掌握了 UEFI 启动,不用再害怕了。
将 Ubuntu 64 位桌面 ISO 文件的内容提取到具有 FAT32 文件系统和引导标志的分区将完成这项工作:创建一个仅在 UEFI 模式下引导的实时驱动器。它在此处称为“从 ISO 方法复制文件”(在已接受的答案中)。
但是,如果它是在 UEFI 或 BIOS 模式下启动的,那么在正在运行的 Ubuntu 系统(实时和已安装)中进行测试很容易。运行这个命令行,
test -d /sys/firmware/efi && echo efi || echo bios
Run Code Online (Sandbox Code Playgroud)
这使得使用可在两种引导模式下使用的实时系统变得简单,这也是一个优势。
另请参阅以下链接以获取该方法的更详细说明和说明,
help.ubuntu.com/community/Installation/iso2usb
help.ubuntu.com/community/Installation/iso2usb/diy
| 归档时间: |
|
| 查看次数: |
501253 次 |
| 最近记录: |