Created
April 9, 2026 04:22
-
-
Save discountry/207c8cd21c0a1523709a20ab87726249 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # 确保脚本以 root 权限运行 | |
| if [ "$EUID" -ne 0 ]; then | |
| echo "请使用 sudo 权限运行此脚本。命令: sudo bash $0" | |
| exit 1 | |
| fi | |
| SWAP_FILE="/swapfile" | |
| SWAP_SIZE="2G" | |
| echo "开始配置 $SWAP_SIZE 的虚拟内存 (Swap)..." | |
| # 1. 检查是否已存在 swapfile | |
| if [ -f "$SWAP_FILE" ]; then | |
| echo "错误:$SWAP_FILE 已经存在,为防止覆盖数据,脚本已停止。" | |
| exit 1 | |
| fi | |
| # 2. 创建交换文件 (优先使用 fallocate 以提升速度,若不支持则降级使用 dd) | |
| echo "正在分配磁盘空间..." | |
| if fallocate -l $SWAP_SIZE $SWAP_FILE 2>/dev/null; then | |
| echo "空间分配成功。" | |
| else | |
| echo "fallocate 不受支持,正在使用 dd 分配空间 (这可能需要十几秒时间)..." | |
| dd if=/dev/zero of=$SWAP_FILE bs=1M count=2048 status=progress | |
| fi | |
| # 3. 修改文件权限 (出于安全考虑,只有 root 可以读写该文件) | |
| echo "设置文件权限..." | |
| chmod 600 $SWAP_FILE | |
| # 4. 将文件格式化为 swap 空间 | |
| echo "格式化交换文件..." | |
| mkswap $SWAP_FILE | |
| # 5. 启用该 swap 空间 | |
| echo "启用虚拟内存..." | |
| swapon $SWAP_FILE | |
| # 6. 配置开机自动挂载 | |
| echo "正在写入 /etc/fstab 以实现开机自启..." | |
| if ! grep -q "$SWAP_FILE" /etc/fstab; then | |
| echo "$SWAP_FILE none swap sw 0 0" >> /etc/fstab | |
| echo "开机自启配置完成。" | |
| else | |
| echo "警告:/etc/fstab 中已存在相关配置,跳过写入。" | |
| fi | |
| echo "======================" | |
| echo "配置完成!当前的内存状态如下:" | |
| free -h |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment