为什么在尝试装载具有两个分区的虚拟磁盘的分区时“装载”失败?

为什么在尝试装载具有两个分区的虚拟磁盘的分区时“装载”失败?

我正在尝试制作一个具有两个分区的虚拟磁盘。第一个是 100M FAT(类型 0xC),第二个是 2G Linux 分区(类型 83)。我有一个可以使用真正的 USB 设备正确执行此操作的过程。但我想让图像虚拟化,所以我不需要使用USB设备。我发现了一个与底部链接非常相​​似的问题;但答案(或问题)是该文件存在于与主机共享的驱动器上。 (这是我的理解。)我正在虚拟机的磁盘上创建虚拟磁盘;所以我希望避免这个问题。

我可以创建单分区虚拟磁盘;格式化它们并向其中写入文件。我可以在单独的文件中创建这两种类型的分区,没有任何问题。只是当我尝试在单个虚拟磁盘中创建两个分区时,挂载失败。

我希望拥有一个图像文件,以便可以使用相同的信息创建 USB 驱动器;另外,我需要将图像放入公司的生产系统中。

来自“mount”的消息是:

mount:文件系统类型错误、选项错误、/dev/loop1p1 上的超级块错误、缺少代码页或帮助程序或其他错误

查看 dmesg 会出现以下消息:

[79703.646945] FAT-fs (loop1p1): 虚假的保留扇区数

[79703.646949] FAT-fs (loop1p1):找不到有效的 FAT 文件系统

fdisk 显示了我期望看到的内容:

须藤 fdisk -lu

  • /dev/loop1 磁盘 /dev/loop1:2.2 GiB、2306867200 字节、4505600 个扇区

  • 单位:扇区 1 * 512 = 512 字节

  • 扇区大小(逻辑/物理):512 字节/512 字节

  • I/O 大小(最小/最佳):512 字节/512 字节

  • 磁盘标签类型:dos

  • 磁盘标识符:0xbe0f04f4

  • 设备引导起始结束扇区大小 ID 类型

  • /dev/loop1p1 2048 206847 204800 100M c W95 FAT32 (LBA)

  • /dev/loop1p2 206848 4401151 4194304 2G 83 Linux

我在跑步:

uname -a

  • Linux xxxxxxxxx 4.15.0-142-generic #146~16.04.1-Ubuntu SMP 四月 13 日星期二 09:27:15 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

这里提出了类似的问题。

答案1

看来我错过了 mkfs.* 步骤。在lostup命令和/dev/loop0p1和/dev/loop0p2可用之后,我需要格式化分区。

sudo mkfs.vfat -F 32 -n "BOOT" /dev/loop0p1 
sudo mkfs.vfat -L -n "rootfs" /dev/loop0p2

在大多数示例中,磁盘映像似乎已被格式化;所以没有提到 mkfs.* 步骤。

希望这对将来有所帮助。

相关内容