我对交换磁盘分区的理解有问题。问题在于大小。我通过 fstab 创建了大小为 2GB 的新分区:
Command (m for help): n
Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-536870911, default 2048):
Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-536870911, default 536870911): +2G Partition 1 of type Linux and of size 2 GiB is set
之后交换
mkswap /dev/sdc1
swapon /dev/sdc1
在 /etc/fstab 中,此 uuid 对应于 /dev/sdc1
UUID=1ec60ea1-1ebe-420e-9bbc-bc75f25b4cb2 none swap sw 0 0
检查交换大小后
>> free | gr
ep -i swap | awk '{print $2" / 1024 " }' | bc -l
2047.99609375000000000000
>> free -g
total used free shared buff/cache available
Mem: 15 0 15 0 0 15
Swap: 1 0 1
>> free -h
total used free shared buff/cache available
Mem: 15G 221M 15G 8.4M 299M 15G
Swap: 2.0G 0B 2.0G
问题是为什么 kb 输出不适合 2GB 以及我在哪里丢失了这块内存(如果我计算正确的话我错过了 4kb,它是为文件夹层次结构保留的吗?)或者我哪里做错了?
环境:
>> fdisk -v
来自 util-linux 2.23.2 的 fdisk
>> free -V
free from procps-ng 3.3.10
>> cat /proc/swaps | awk '{print $3" / 1024 " }' | bc -l
2047.99609375000000000000
>> cat /etc/*-release
CentOS Linux release 7.3.1611 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.3.1611 (Core)
我希望 KB 和 GB 的大小与创建的分区的大小相同
答案1
(如果我计算正确的话,我错过了 4kb,它是为文件夹层次结构保留的吗?)
交换区不是文件系统,也不包含文件层次结构。但它们确实包含一个 4 kB 的“交换头”——这就是您每次运行 时都会创建的mkswap
。
这交换区域标题保存 UUID;可用页面数;“坏块”列表;以及其他信息(例如该区域当前是否用于保存休眠图像)。