如何从 Ubuntu 刻录 Fedora 的可启动 USB 以在 Virtual Box VM 中使用

如何从 Ubuntu 刻录 Fedora 的可启动 USB 以在 Virtual Box VM 中使用

我想为 Fedora 创建一个 VirtualBox VM 以在 Ubuntu 系统上运行。

我正在尝试调试与我需要连接的 API 服务器的连接的 TLS 问题。这种连接是通过调用该库的 Python-2.7 库实现的requests。此连接在两个不同版本的 Ubuntu 上失败。我想看看它是否适用于 Fedora - 另一方面,如果来宾 Fedora VM 依赖于主机的 ssl 代码,则此测试无法证明任何内容。我只是不知道。我在这上面浪费时间吗?

但到了五月份,我什至无法获得 Fedora 的可启动 USB 驱动器。我下载Fedora-Workstation-Live-x86_64-28-1.1.iso并使用以下命令将其刻录到 USB 记忆棒(格式化后)

sudo dd if=~/Downloads/Fedora-Workstation-Live-x86_64-28-1.1.iso of=/dev/sdb1

这应该是成功的,但是当我尝试构建一个从中启动的虚拟机时,屏幕开始显示,但很快就变成了图形混乱。我还尝试过从 U 盘启动。我重新启动计算机,按 F12,选择 USB 记忆棒。计算机旋转了几秒钟,然后放弃并返回到选择启动设备屏幕。

那么两个问题:

  1. 使用 requests 库的 python 应用程序将使用 Fedora 来宾的网络代码还是 Ubuntu 主机的网络代码?
  2. 为什么 Fedora 不能从 U 盘启动?

更新: 问题2已得到解答。 dd 命令错误。仍然不确定问题 1。我将打开另一个有关虚拟机安装的问题。

答案1

dd成为写入缓存的受害者,最终在 USB 记忆棒上得到部分写入的图像。

使用oflag=directsync在之后调用dd

dd if=yourimage of=yourUSBdevice bs=16M oflag=direct; sync

对所有 USB 闪存驱动器使用以下命令也是个好主意

hdparm -W 0 /yourUSBdevice

但我不知道如何将其应用于现代 Linux 基于 FUSE 的自动挂载,/run/media因为我从来没有费心去了解。

答案2

明显的错误是'sdb1'。 '1'这里表示分区号1。你需要写入'磁盘' 不是 '分割'。使用 '深圳发展银行”(没有“1”)。

sudo dd if=~/Downloads/Fedora-Workstation-Live-x86_64-28-1.1.iso of=/dev/sdb

使用sync命令确保所有内容均已实际写入 USB。

并非每个都.iso支持从 USB 启动,因此即使正确写入也可能无法启动。

答案3

关于您提出的第一个问题,在虚拟机中运行的任何程序都将使用来宾中的内核和库,而不是主机(这是有道理的:Windows 来宾无法直接调用 Linux 主机上的库,反之亦然。)只要您的 Fedora VM 的 Python 配置与您的 Ubuntu 机器基本相同,您就应该能够在它们之间进行有效的比较。

(唯一挑剔的例外是 VirtualBox 向 guest 虚拟机提供的接口:例如,guest 虚拟机的网络适配器被实现为主机上的一系列网络调用。但是,除非 VirtualBox 或您的主机中存在错误它不应该影响你的测试。)

我建议发布一个单独的问题在堆栈溢出上但对于无法运行的代码:被迫在特定版本/发行版上运行程序并不有趣,而且非常脆弱。

相关内容