在我的 Linux Redhat 机器上(版本 5.x)
我执行以下步骤以将交换从 6G 增加到 8G
lvcreate -n swap -L 2g /dev/rootvg
mkswap /dev/mapper/rootvg-swap1
swapon /dev/mapper/rootvg-swap1
经过上述步骤后,swap成功增加到8G
两天后我表演交换-a和交换-a
但我注意到总交换量仅为6G就像我之前的脚步一样!
请指出我的步骤中哪里出了问题——缺少了什么?g
答案1
您应该首先检查“/etc/fstab”文件,其中是否有交换分区条目。“swapon -a”命令将从“/etc/fstab”检查交换分区条目,并从该分区分配交换内存。您可以在 fstab 中添加以下行。
/dev/mapper/rootvg-swap1 无 交换 sw 0 0
然后尝试“swapon -a”命令。
答案2
它不起作用的原因是你省略了必要的mkswap
命令。当你运行该mkswap
命令时,它会写入一个包含三条信息的标题:
- 交换空间有多大
- 此交换空间的 UUID 是什么
- 一个魔法值,表示该分区是交换空间
该mkswap
命令在写入标题时将默认使用分区的实际大小,但如果您确实愿意,您可以从命令行覆盖它。
当您调整交换分区的大小但不重写交换头时,交换头仍将包含旧的大小,这就是内核将使用的大小。
运行前使用此命令swapon
可以完成以下工作:
mkswap /dev/mapper/rootvg-swap1
如果您/etc/fstab
使用 UUID 来查找交换分区,则需要添加一个-U
参数并告诉它 UUID(您可以从中复制粘贴该值fstab
)。
答案3
我知道这是一个过时的问题,但希望能够帮助那些拥有一些扩展的 rhel5 生命周期操作系统或与 RHEL 达成特殊协议的人。:)
您已完成以下步骤:
lvcreate -n swap -L 2g /dev/rootvg
mkswap /dev/mapper/rootvg-swap1
swapon /dev/mapper/rootvg-swap1
但是您谈论将交换从 6G 增加到 8G。——在这一点上,这是 lvextend 而不是 lvcreate。
因此步骤如下:
swapoff /dev/mapper/rootvg-swap1
lvextend -L +2G /dev/mapper/rootvg-swap1
mkswap /dev/mapper/rootvg-swap1
swapon /dev/mapper/rootvg-swap1