如何增加交换分区大小?
我想将分区 #5(/dev/nvme0n1p5
一个 ZFS 分区)的大小缩小 6Gb,并将其添加到分区 #3(/dev/nvme0n1p3
)。
我正在以 root 身份运行 Xubuntu 19.10 和 ZFS。
笔记:
- 由于目前没有任何 GUI 分区管理器(GParted/Gnome Disks/KDE 分区管理器)支持更改/移动 ZFS 分区,因此我无法使用它们。
- 我不想在 ZFS 上创建另一个新的交换分区,我只想使用当前的交换分区并增加其大小。
- 我不想在 ZFS 上创建新的交换文件!
系统信息
sudo parted -l
Model: WDC PC SN520 SDAPNUW-512G-1002 (nvme)
Disk /dev/nvme0n1: 512GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 EFI System Partition boot, esp
2 538MB 590MB 52.4MB ext4
3 590MB 2738MB 2147MB linux-swap(v1)
4 2738MB 4885MB 2147MB zfs
5 4885MB 512GB 507GB zfs
sudo fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 476.96 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WDC PC SN520 SDAPNUW-512G-1002
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 9E99ED37-A328-4F95-B9F9-946E5ED049B8
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 1153023 102400 50M Linux filesystem
/dev/nvme0n1p3 1153024 5347327 4194304 2G Linux swap
/dev/nvme0n1p4 5347328 9541631 4194304 2G Solaris boot
/dev/nvme0n1p5 9541632 1000215182 990673551 472.4G Solaris root
sudo zpool list -v
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
bpool 1.88G 131M 1.75G - - 0% 6% 1.00x ONLINE -
nvme0n1p4 1.88G 131M 1.75G - - 0% 6.82% - ONLINE
rpool 472G 112G 360G - - 9% 23% 1.00x ONLINE -
nvme0n1p5 472G 112G 360G - - 9% 23.8% - ONLINE
sudo swapon --show --output all
NAME TYPE SIZE USED PRIO UUID LABEL
/dev/nvme0n1p3 partition 2G 7.8M -2 52702bf2-1e50-4ece-8d3e-db01cff707fe
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.10
Release: 19.10
Codename: eoan
答案1
根据 Aaron Toponce 的指南:
您无法缩小 zpool,只能扩大它。
来源:
https://pthree.org/2012/12/04/zfs-administration-part-i-vdevs/
以下是另一个指南:
http://www.resilvered.com/2011/07/how-to-shrink-zfs-root-pool.html
看起来第二个指南通过在不同磁盘上创建一个新的(较小的)池,然后将快照从旧池发送到新池来“缩小”池。
答案2
zfs 分区不能缩小,但可以在根 zpool 中创建一个新的交换分区,如下所示:
zfs create -V 20G -b "$(getconf PAGESIZE)" \
-o compression=zle -o logbias=throughput \
-o sync=always -o primarycache=metadata \
-o secondarycache=none \
-o com.sun:auto-snapshot=false \
rpool/swap
mkswap -f /dev/zvol/rpool/swap