Bash 并行 dd 和 mkfs

Bash parallel dd and mkfs

嘿,你们这些很棒的编码人员,

起初我在 bash 完全是个新手,在 Java 方面只有一些经验。 现在我的任务是制作一个脚本,使在 linux 机器上尽可能快速和自动地闪存几百个 USB 驱动器成为可能,这不应该改变。 所以没有安装更多的包。

好的,现在开始提问: 我已将任务拆分为两个脚本。

过滤 lsusb 并搜索正确的设备,然后使用设备 ID 启动后台进程以复制图像并执行一些分区操作。

主脚本同时过滤新设备并创建一个新的后台进程来为它们复制。 当没有更多合适的设备剩余时,主脚本等待所有后台进程完成,然后要求用户拉出所有设备并将下一批插入。

目前,除了 dd 在一个后台进程中等待另一个进程完成之外,它工作得很好。因为它们应该 运行 并行并且启动 dd 的进程有不同的 pid,我不知道为什么要等待。

这是脚本的一部分:

第一个参数是序列号,第二个参数是要复制的镜像文件名

您可以尝试将 sync 从第 8 行移动到 echo "all connected devices are flashed, please change devices" 上面的行或等待 (wait $i) 所有操作完成后的另一行。