在以下链接中
出于swap file
调整大小的目的,该dd
命令的使用如下:
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 oflag=append conv=notrunc
问题:
oflag
和参数如何conv
工作?- 是否应该期望在当前大小的基础上添加零的新块的定义明确的连续性
swap file
?
请注意以防万一 Ubuntu 是20.04
在以下链接中
出于swap file
调整大小的目的,该dd
命令的使用如下:
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 oflag=append conv=notrunc
问题:
oflag
和参数如何conv
工作?swap file
?请注意以防万一 Ubuntu 是20.04
的手册
dd
描述得不是oflag
很好,但是@guiverc的这个答案很好地解释了它:conv=notruc
注释中明确提到了该部分oflag
,它告诉系统不要截断现有文件。我在特定于 Ubuntu 的手册中找不到任何有价值的东西,但是这个 StackOverflow 答案解释了这个标志:本质上,现有文件不会减少到 0 字节,而是将现有数据保持原样,并以连续的方式将新数据附加到文件末尾。
但是,这应该提出一个问题:如果交换文件在扩展时要消耗的空间中存在一个文件,会发生什么情况?
这就是事情变得有趣的地方。
因为您告诉系统使文件连续,如果在旋转磁盘驱动器上以自然扩展文件的方式存在另一个文件,那么整个文件将被移动到有足够连续空间的位置支持文件。如果磁盘碎片严重且没有足够的空间,
No space left on device
则会抛出错误。但是,在固态磁盘上,这不是问题,即使这些0
位存储在单独的闪存模块中,文件也会有额外的空间应用于现有文件。注意:请参阅 Mark G. Sobell 的(非常旧的)Ubuntu Linux 实用指南以获取更多信息。
所以,这样说:
问:oflag 和 conv 参数如何工作?
看上面。
问:是否应该期望在交换文件的当前大小上添加零的新块的明确定义的连续性?
是的。看上面。