Arch-Linux

縮小 LUKS2 btrfs 根分區上的根 LVM 以擴大交換分區

  • July 20, 2021

這是我的設置

$ lsblk
NAME                   MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
nvme0n1                259:0    0 238.5G  0 disk
├─nvme0n1p1            259:1    0   100M  0 part  /boot/efi
├─nvme0n1p2            259:2    0   250M  0 part  /boot
└─nvme0n1p3            259:3    0 238.1G  0 part
 └─Be-Water-My-Friend 254:0    0 238.1G  0 crypt
   ├─Arch-swap        254:1    0     2G  0 lvm   [SWAP]
   └─Arch-root        254:2    0 236.1G  0 lvm   /

我有一個主 LUKS2 加密分區 ( nvme0n1p3),一個 LVM 卷組 ( Be-Water-My-Friend) 包含兩個邏輯捲Arch-swapArch-root.

Arch-root是一個btrfs

當我設置它時,我只選擇了 2GB 的交換空間,結果證明這不足以滿足我的需求。我想將其增加到 24GB 的交換空間。

為此,我認為我需要

  1. 在 USB 實時密鑰上啟動
  2. 解密LUKS2分區
  3. 掛載Arch-root
  4. 縮小Arch-root文件系統
btrfs filesystem resize -22g
  1. 刪除Arch-swap邏輯卷
  2. 重新創建Arch-swap佔用卷組中所有可用空間的邏輯卷Be-Water-My-Friend

有什麼我想念的嗎?我真的不想搞砸了!

您需要在 4 和 5 之間多走一步——使用(可以選擇調整 LV 和文件系統的大小,但它目前不支持 btrfs,因此您不能在此處使用它) 來縮小Arch-root邏輯卷。這個答案很好地解釋了調整文件系統大小(在您的情況下為 btrfs)和塊設備(LVM 邏輯卷)之間的區別。lvresize -L-22G Arch/root``lvresize``--resizefs

您可能還想使用--uuidwithmkswap為新交換設置舊交換 UUID。在和 GRUB 中通常不使用 UUID 來引用交換/etc/fstab,但使用舊的 UUID 可能會為您節省一些問題。

此外,如果您只是想要更大的交換,您可以在 btrfs 上創建一個交換文件並將其用作第二個交換。

引用自:https://unix.stackexchange.com/questions/659162