![tar/dd — 写入磁带驱动器时出错 — 设备或资源繁忙](https://linux22.com/image/764609/tar%2Fdd%20%E2%80%94%20%E5%86%99%E5%85%A5%E7%A3%81%E5%B8%A6%E9%A9%B1%E5%8A%A8%E5%99%A8%E6%97%B6%E5%87%BA%E9%94%99%20%E2%80%94%20%E8%AE%BE%E5%A4%87%E6%88%96%E8%B5%84%E6%BA%90%E7%B9%81%E5%BF%99.png)
我尝试将 tar 传送到 dd 并使用 dd 写入磁带以取得进展:
export TAPE=/dev/nst0
tar -b 128 -c *| dd of=$TAPE bs=65536 status=progress
但是我收到了一个错误
tar: /dev/nst0: Cannot open: Device or resource busy
tar: Error is not recoverable: exiting now
tar dd 本身就可以很好地写入驱动器。
答案1
这个问题的关键在于错误消息。它以“tar”开头。Tar 应该像往常一样写入 stdout,而不是写入驱动器。dd 会写入驱动器。事实证明,如果设置了 TAPE 变量,tar 会选择写入磁带驱动器而不是管道。所以我通过传递“-f -”解决了这个问题:
tar -b 128 -c -f - *| dd of=$TAPE bs=65536 status=progress