Swapon swap失效

Swapon swap:

img


Skipping -it appears to have holes

Skipping -it appears to have holes的错误是指交换文件无法使用,可以尝试以下命令:
dd if=/dev/zero of=/swapfile bs=4096 count=512k
注意不要不要去掉if=/dev/zero,不然还是会出问题的。
其次要检查是否有足够的内存和磁盘。并设置好交换文件的权限

根据您提供的命令行输出,您在Linux系统中尝试创建一个2GB的交换空间文件,并将其挂载为交换分区。但是,在尝试挂载交换分区时,出现了一个警告,指出该文件似乎有空洞。

空洞是指文件中的一些未使用的部分,它们不包含任何实际数据。在Linux中,当使用dd命令创建一个文件时,文件中的空洞可能会被视为未使用的部分。因此,当尝试将这样的文件挂载为交换分区时,可能会出现警告消息。

如果您确信该文件中没有空洞并且应该可以用作交换分区,则可以忽略该警告消息并继续使用该分区。如果您不确定文件中是否存在空洞,并且希望确保交换分区的正确性和稳定性,则可以尝试使用以下命令来创建交换分区:

fallocate -l 2G /hhh/ccc/swap
该命令将使用fallocate工具创建一个2GB大小的文件,并确保文件中没有空洞。然后,您可以使用以下命令将其设置为交换分区:

mkswap /hhh/ccc/swap
swapon /hhh/ccc/swap
第一个命令将文件设置为交换分区,第二个命令将其挂载为交换分区。

请注意,在创建和使用交换分区时,需要确保文件系统具有足够的空间和权限,并且需要谨慎处理,以避免数据丢失或系统崩溃的风险。


在如下文件/etc/rc.local中增加开启swap的命令:

vi /etc/rc.local

添加内容:

swapon /data/swapfile

该回答引用ChatGPT

根据你提供的信息,它似乎是在为一个文件/hhh/ccc/swap创建交换分区并启用时出现错误。
错误信息“skipping - it appears to have holes”表示这个文件存在“holes”,也就是文件中有未初始化的空间,无法作为交换分区使用。
创建交换分区的步骤如下:

  1. 使用dd命令初始化一个文件,填充0,创建一个空文件的“image”。这一步你已经完成,使用dd if=/dev/zero of=/hhh/ccc/swap bs=1M count=2048创建了一个2G的文件。
  2. 使用chmod命令设置文件权限为0600。这一步你也已经完成。
  3. 使用mkswap命令将文件格式化为交换分区格式。这一步你也完成了。
  4. 使用swapon命令启用交换分区。这一步出现错误,因为文件存在“holes”。
    出现这个错误的原因可能是:
  5. 文件系统不支持交换分区。FAT32等文件系统不支持,需要ext3/ext4等Linux文件系统。
  6. 文件没有被完全填充0,存在未初始化的空间。
  7. 文件系统存在碎片,使文件不连续,出现“holes”。
    解决方法:
  8. 确保文件系统支持交换分区,如ext3/ext4等。如果不支持,更改文件系统。
  9. 重新创建交换文件,确保它被完全填充0,没有未初始化空间。你可以使用 dd if=/dev/zero of=/hhh/ccc/swap bs=1M seek=2048 count=0 重新填充文件。
  10. 对文件系统进行碎片整理。使用命令如fstrim /hhhe2fsck -fD /hhh等。
  11. 如果问题仍未解决,可以尝试创建交换分区的文件到其他磁盘分区,确认是否与当前分区有关。