Linux
調整 LUKS 加密卷的大小
我在 LVM LV 之上的 LUKS 之上有一個 500GiB ext4 文件系統。我想將 LV 調整為 100GiB。我知道如何在 LVM LV 之上調整 ext4 的大小,但是如何處理 LUKS 卷?
mgorven@moab:~% sudo lvdisplay /dev/moab/backup --- Logical volume --- LV Name /dev/moab/backup VG Name moab LV UUID nQ3z1J-Pemd-uTEB-fazN-yEux-nOxP-QQair5 LV Write Access read/write LV Status available # open 1 LV Size 500.00 GiB Current LE 128000 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 2048 Block device 252:3 mgorven@moab:~% sudo cryptsetup status backup /dev/mapper/backup is active and is in use. type: LUKS1 cipher: aes-cbc-essiv:sha256 keysize: 256 bits device: /dev/mapper/moab-backup offset: 3072 sectors size: 1048572928 sectors mode: read/write mgorven@moab:~% sudo tune2fs -l /dev/mapper/backup tune2fs 1.42 (29-Nov-2011) Filesystem volume name: backup Last mounted on: /srv/backup Filesystem UUID: 63877e0e-0549-4c73-8535-b7a81eb363ed Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: (none) Filesystem state: clean with errors Errors behavior: Continue Filesystem OS type: Linux Inode count: 32768000 Block count: 131071616 Reserved block count: 0 Free blocks: 112894078 Free inodes: 32044830 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 992 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 RAID stride: 128 RAID stripe width: 128 Flex block group size: 16 Filesystem created: Sun Mar 11 19:24:53 2012 Last mount time: Sat May 19 13:29:27 2012 Last write time: Fri Jun 1 11:07:22 2012 Mount count: 0 Maximum mount count: 100 Last checked: Fri Jun 1 11:03:50 2012 Check interval: 31104000 (12 months) Next check after: Mon May 27 11:03:50 2013 Lifetime writes: 118 GB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: 383bcbc5-fde9-4720-b98e-2d6224713ecf Journal backup: inode blocks
LUKS 實際上並不儲存設備的大小——它只是在打開卷時發現它。因此,只有在該過程中未關閉並重新打開卷(例如進行線上增長)時,它才會發揮作用。在這種情況下,需要重新發現打開卷的大小。
要縮小音量,請使用以下過程:
- 解除安裝文件系統
umount
- 調整文件系統的大小
resize2fs
- 關閉 LUKS 卷
cryptsetup luksClose
lvreduce
使用或調整 LV 大小lvresize
- 打開 LUKS 卷
cryptsetup luksOpen
- 掛載文件系統
mount
您也可以省略
luksClose
和luksOpen
步驟,並cryptsetup resize
在調整 LV 大小後使用。還要記住,LUKS 使用一些額外的空間來儲存元數據,因此 LV 需要比文件系統稍大。我通常將文件系統的大小調整得更小,然後在調整 LV 大小後再次增大它。如果您正在擴展文件系統並希望線上進行,您將使用以下過程:
lvextend
使用或調整 LV 大小lvresize
- 更新打開的 LUKS 卷的大小
cryptsetup resize
- 擴展文件系統
resize2fs