如何将两个单独的文件部分作为一个整体处理(挂载、虚拟连接等)?

如何将两个单独的文件部分作为一个整体处理(挂载、虚拟连接等)?

我尝试下载 8GB ISO 映像文件。不幸的是,U 盘上的文件系统是 FAT32。最大文件大小仅为 4GB。下载过程一度中止,但当我使用 wget 进行下载时,我得到了部分文件。然后我检查了不完整的文件的大小,并使用 cURL 继续下载,明确定义了字节范围。成功下载后,我有两个单独的文件部分。问题是,我如何将它们作为一个整体处理:某种虚拟连接或某种安装,而不将它们真正复制在一起。我的硬盘上没有可用空间来物理连接它们,这就是我将它们下载到 16 GB FAT32 随身碟上的原因。

答案1

您可以尝试 RAID 0 组件,但我完全不相信它可以处理部分块(即您的源文件必须是完整数量的块)。

这是一个可行的示例,供您在尝试加入真实数据之前尝试

# Prepare two 10MB image files for the example
( echo hello; cat /dev/zero ) | dd bs=1M iflag=fullblock count=10 > /tmp/1.dat
( echo world; cat /dev/zero ) | dd bs=1M iflag=fullblock count=10 > /tmp/2.dat

# Set up loop devices
l1=$(losetup --show --find /tmp/1.dat)
l2=$(losetup --show --find /tmp/2.dat)

# Join them as RAID 0
mdadm --build /dev/md12 --level raid0 --raid-devices 2 "$l1" "$l2"

现在,您将拥有/dev/md12一种可以将这两个部分作为一个整体读/写的设备。

拆解是相反的

mdadm --stop /dev/md12
losetup -d "$l1" "$l2"
rm /tmp/1.dat /tmp/2.dat

坦率地说,您最好使用可以处理适当文件大小的文件系统格式化您的记忆棒,然后再次下载 ISO。

相关内容