在 Ubuntu 18.04 系统上执行大型磁盘映像操作时,我遇到了系统范围的延迟/滞后问题。这是系统规格:
处理器:英特尔酷睿 i7(任何内核都不会接近容量)
内存:12GB(永不接近容量)
系统盘:SSD(永不接近容量)
外部磁盘:USB 3.0 5400 和 7200RPM 旋转磁盘
这些大型磁盘映像操作基本上是:
nice ionice dd if=/dev/usbdisk1 of=/dev/usbdisk2
由于我的系统文件都不在任何 USB 磁盘上,理论上,这不应该引入太多延迟。但是我发现当我对多个 USB 磁盘进行映像时,系统就会开始爬行。为什么?我的理解是每个磁盘都有自己的IO队列,那这是怎么回事呢?我该如何补救?
另外,FWIW,我根本不在乎 USB 磁盘的成像速度,因此我认为可以减慢这些操作以促进系统平稳运行的解决方案。
我经常使用 mksquashfs 来备份各种系统上的文件夹。有时,这会导致文件在安装时无法被任何用户读取。如果我执行 asudo mount file.squashfs /to/mountpoint
然后尝试以 root 身份或使用 sudo ls 该目录,则会收到“权限被拒绝”错误。在 Thunar 中查看挂载点的属性会导致其所有者显示为nobody
。应用achmod
也不起作用,因为squashfs 是只读文件系统。
如何强制挂载以与权限无关的方式或使用正确的权限挂载squashfs?我实际上不需要这个用例的权限,它也可能是世界可读的。
编辑:我从未找到打开“由于权限而无法由 root 读取”squashfs 文件的完整解决方案,但我确实找到了一种方法来防止它再次发生。这可以跨系统和跨平台工作。添加 -all-root 使存档中的所有文件都归 root 所有。由于权限对于这些备份并不重要,因此这是一个笨拙但有效的修复方法。仍然很好奇是否有人有更好的。