Thay đổi kích thước ổ đĩa được mã hóa LUKS


14

Tôi có hệ thống tập tin ext4 500GiB trên đầu LUKS trên đầu LVM LV. Tôi muốn thay đổi kích thước LV thành 100GiB. Tôi biết cách thay đổi kích thước ext4 trên LVM LVM, nhưng làm cách nào để xử lý khối lượng 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

Câu trả lời:


21

LUKS không thực sự lưu trữ kích thước của thiết bị - nó chỉ đơn giản phát hiện ra nó khi âm lượng được mở. Do đó, nó chỉ phát huy tác dụng nếu âm lượng không được đóng và mở lại trong quá trình (ví dụ: thực hiện phát triển trực tuyến). Trong trường hợp này, kích thước của khối lượng mở cần phải được khám phá lại.

Để thu nhỏ âm lượng của bạn, hãy sử dụng quy trình sau:

  1. Ngắt kết nối hệ thống tập tin với umount
  2. Thay đổi kích thước hệ thống tập tin với resize2fs
  3. Đóng âm lượng LUKS với cryptsetup luksClose
  4. Thay đổi kích thước LV bằng lvreducehoặclvresize
  5. Mở âm lượng LUKS bằng cryptsetup luksOpen
  6. Gắn kết hệ thống tập tin với mount

Bạn cũng có thể bỏ qua luksCloseluksOpencác bước, và sử dụng cryptsetup resizesau khi thay đổi kích thước LV. Cũng nên nhớ rằng LUKS sử dụng một số không gian bổ sung để lưu trữ siêu dữ liệu, do đó LV cần phải lớn hơn một chút so với hệ thống tệp. Tôi thường thay đổi kích thước hệ thống tập tin nhỏ hơn đáng kể, và sau đó phát triển lại sau khi thay đổi kích thước LV.

Nếu bạn đang phát triển hệ thống tập tin và muốn thực hiện trực tuyến, bạn sẽ sử dụng quy trình sau:

  1. Thay đổi kích thước LV bằng lvextendhoặclvresize
  2. Cập nhật kích thước của khối lượng LUKS mở với cryptsetup resize
  3. Phát triển hệ thống tập tin với resize2fs
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.