无法使 Red Hat 7 USB 退出紧急模式,( vi /etc/fstab 根本没有显示)

无法使 Red Hat 7 USB 退出紧急模式,( vi /etc/fstab 根本没有显示)

我制作的可启动 USB 出现了问题。所以这是一个正在进行的项目,我已经做了一段时间了。基本上,我将 Red Hat 7 安装在 USB 上,这样 USB 基本上就是操作系统。然后我发出以下命令尝试将此“实时 USB”捕获到 .raw.gz 文件中以供重新分发:

  if=/dev/sda bs=10000 count=500000 status=progress | gzip > newredhat.raw.gz

上述任务捕获可启动 USB 的前 5GB,并将其作为压缩的 .raw 文件存储到名为 newredhat.raw.gz 的映像中。除了一件事外,该过程正常进行。然后我发出以下命令,以便将此自定义映像放到另一个已格式化为 fat32 且 100% 干净的 USB 上:

 zcat newredhat.raw.gz > /dev/sdc

提取/写入完成后,新的 USB 可以正常启动,但是它会进入紧急模式。我花了几个小时寻找这背后的原因,但鉴于这可以说是一种非常独特的情况,因此没有太多相关信息。我尝试了 vi /etc/fstab,它告诉我 /etc/fstab 不存在并创建一个新文件进行编辑。我还查看了日志,唯一返回的内容是“无法挂载 sysroot”。整个项目背后的想法是,它可以是一个简单的提取 - 为我的基于 Linux 的 USB 和服务器进行克隆。真正奇怪的是,这种方法对 openSUSE 有效。这与 Red hat 在安装时创建其架构的方式有关吗?如果是这样,有什么解决方法吗?在此先感谢大家的帮助!

答案1

1)bs的参数dd块大小。如果这不是 2 的幂,尤其是如果这不是您设备的块大小,那么您就做错了。在这种情况下,dd首先不要使用。

2)根据您如何精确地布置第一个 USB 驱动器(您没有告诉我们),使用前 5 GB 可能会错过最后的分区表。

在不同大小的存储介质之间进行复制的安全方法是在每个存储介质上创建一个分区表,其中包含一个大小相同的单个可引导分区(使用您喜欢的任何分区程序),然后复制整个分区

gzip /dev/sda1 > newredhat.raw.gz
zcat newredhat.raw.gz > /dev/sdc1

这样,分区表可以补偿不同大小的设备。

这也适用于 USB 记忆棒和硬盘之间。

3)要调试第二个 USB 盘的情况,可以这样做极其查看其显示的消息很有帮助进入紧急模式。dmesg如果滚动速度太快,日志会有所帮助。因此,请使用您在抱怨“无法挂载 sysroot”之前看到的逐字消息编辑问题。我有一种预感,这是因为您弄乱了分区表(见上文)。检测到的分区表应该显示在 dmesg/logs 中。如果“相同的方法对 openSUSE 有效”,这可能是因为 openSUSE 使用了不同的分区方案,和/或您的 USB 记忆棒大小相同。

编辑

复制整个 USB 驱动器的开头部分存在一个问题,例如谷氨酰胺磷酸酶最后也会有信息。虽然这是重复的信息,但它可能引起麻烦。

再说一遍:不要只将 32G 硬盘的前 5G 复制到 16G 硬盘,而是在第一个硬盘上创建一个大小为 5G 的分区,在第二个硬盘上创建一个大小完全相同的分区,然后复制分割(/dev/sda1),而不是整个磁盘(/dev/sda)。您可以使用fdiskgdiskparted或任何您喜欢的格式创建分区。您不需要计算任何东西,只需确保分区大小完全相同即可。

相关内容