losetup -f
我正在编写一个 makefile,在某个时候构建图像文件。我在文件中使用它来在构建每个图像时查找可用的循环设备。由于图像彼此独立,我希望能够make -j
并行执行。不幸的是,当我这样做时,losetup -f
会将相同的设备返回给所有图像,因为该命令几乎同时对每个图像执行。有人知道我可以解决这个问题的方法吗?
答案1
我遇到了与您相同的问题,并在 chromium 错误跟踪器中发现以下错误报告,其中还描述了如何修复它:https://code.google.com/p/chromium/issues/detail?id=201150
基本上,不仅打印下一个可用设备就足够了,还可以使用它并打印名称,以便之后可以删除它。
从losetup(8)
:
-f, --find
find the first unused loop device. If a file argument is present,
use this device. Otherwise, print its name
--show
print device name if the -f option and a file argument are present.
例如,这意味着losetup -f --show /foo/bar
将打印/dev/loop1
,并且还将循环设备与文件关联起来/foo/bar
。