Làm cách nào để tôi mở rộng phân vùng với LVM và khối lượng vật lý và khối lượng logic chứa trong đó?


33

Trên ổ SSD 240 GB của tôi, tôi có hai phân vùng đầu tiên, một phân vùng chứa Khối lượng logic với Linux Mint và phân vùng còn lại chứa phân vùng NTFS để chia sẻ với Windows. Bây giờ tôi đã xóa phân vùng NTFS và muốn mở rộng nhóm khối lượng logic của mình để sử dụng không gian đĩa được phát hành.

Làm cách nào để tôi mở rộng nhóm âm lượng , khối lượng logic chứa / homehệ thống tập tin (ext4) trên / home? Điều này có thể làm trực tuyến?

PS: Vâng, tôi biết rằng tôi phải sao lưu dữ liệu của mình :)

/dev/sdb/  (240GB)
    linuxvg  (160GB) should use 100% of the disk space
        swap
        root
        home (ext4, 128GB) should be extended to use the remaining space

đầu ra của sudo vgdisplay:

  --- Volume group ---
  VG Name               linuxvg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               160,00 GiB
  PE Size               4,00 MiB
  Total PE              40959
  Alloc PE / Size       40959 / 160,00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               ...

  --- Logical volume ---
  LV Path                /dev/linuxvg/swap
  LV Name                swap
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:32 +0200
  LV Status              available
  # open                 2
  LV Size                8,00 GiB
  Current LE             2048
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Path                /dev/linuxvg/root
  LV Name                root
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:43 +0200
  LV Status              available
  # open                 1
  LV Size                24,00 GiB
  Current LE             6144
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

  --- Logical volume ---
  LV Path                /dev/linuxvg/home
  LV Name                home
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:57 +0200
  LV Status              available
  # open                 1
  LV Size                128,00 GiB
  Current LE             32767
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:2

  --- Physical volumes ---
  PV Name               /dev/sdb1     
  PV UUID               ...
  PV Status             allocatable
  Total PE / Free PE    40959 / 0

đầu ra của sudo fdisk -l:

Disk /dev/sdb: 240.1 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders, total 468862128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1   468862127   234431063+  ee  GPT

Disk /dev/mapper/linuxvg-swap: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/linuxvg-root: 25.8 GB, 25769803776 bytes
255 heads, 63 sectors/track, 3133 cylinders, total 50331648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/linuxvg-home: 137.4 GB, 137434759168 bytes
255 heads, 63 sectors/track, 16708 cylinders, total 268427264 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

2
Chà, cách dễ dàng nhất là chỉ tạo ra phân vùng NTFS và sử dụng vgextend, thay vì xóa hoàn toàn phân vùng. Nếu bạn phát triển phân vùng PV hiện tại thay vào đó bạn có thể phải khởi động lại, vì Linux từ chối đọc lại bảng phân vùng trong khi đĩa đang được sử dụng. Làm việc xung quanh trực tuyến này là khó xử. - Hãy hiển thị bảng phân vùng hiện tại của bạn.
frostschutz

Tôi có thể khởi động lại nếu cần thiết.
klingt.net

Câu trả lời:


44

Bạn có thể làm điều này khá đơn giản. Kinda ngạc nhiên không có câu trả lời cho điều này ở đây.

Bạn có thể thực hiện toàn bộ quá trình này trong khi chạy trên hệ thống tệp bạn muốn thay đổi kích thước (vâng, nó an toàn và được hỗ trợ đầy đủ). Không cần đĩa CD cứu hộ hoặc hệ điều hành thay thế.

  1. Thay đổi kích thước phân vùng (một lần nữa, bạn có thể làm điều này với hệ thống đang chạy). GParted rất dễ sử dụng và hỗ trợ thay đổi kích thước.
    Bạn cũng có thể sử dụng một công cụ cấp thấp hơn như fdisk. Nhưng bạn sẽ phải xóa phân vùng và tạo lại nó. Chỉ cần đảm bảo khi thực hiện để phân vùng mới bắt đầu tại cùng một vị trí.
  2. Khởi động lại. Vì bảng phân vùng đã được sửa đổi trên hệ thống đang chạy, nên nó sẽ không có hiệu lực cho đến khi khởi động lại.
  3. Chạy pvresize /dev/sdXYđể có LVM chọn không gian mới.
  4. Thay đổi kích thước âm lượng hợp lý với lvextend. Nếu bạn muốn sử dụng toàn bộ , lvextend -r -l +100%FREE /dev/VGNAME/LVNAME. Các -rsẽ thay đổi kích thước hệ thống tập tin là tốt.
    Mặc dù tôi luôn khuyên bạn không nên sử dụng toàn bộ nhóm âm lượng. Bạn không bao giờ biết những gì bạn sẽ cần trong tương lai. Bạn luôn có thể mở rộng sau này, bạn không thể thu nhỏ.

3
Tôi muốn chấp nhận câu trả lời của bạn, nhưng tôi đã không làm việc như bạn đề xuất, vì GParted không thể thay đổi kích thước phân vùng gốc trên hệ thống đang chạy (ít nhất là trong trường hợp của tôi).
klingt.net

@HalosGhost Tôi hoàn nguyên chỉnh sửa của bạn. partprobe -skhông làm những gì bạn nghĩ nó làm. Kernel sẽ không nhận thay đổi kích thước của một phân vùng đang sử dụng. partprobe -schỉ hoạt động nếu phân vùng được sử dụng trong quá trình thay đổi kích thước (vì vậy khi fdisk thông báo kernel thì nó không thành công), nhưng nó không còn nữa.
Patrick

@Patrick, tôi đã không thêm ý tưởng cho nó; Tôi "cải thiện" bản chỉnh sửa bằng cách đưa lệnh vào backticks (cuộc chiến giành mã thoát tiền lương!).
HalosGhost

Oh, xin lỗi, đọc tên tắt sự kiện lịch sử sai. @Qetesh áp dụng cho bạn sau đó :-)
Patrick

1
Bạn hoàn toàn không thể khởi động lại bằng cách sử dụng "partx -u" cho bước 2, để báo cho kernel cập nhật kích thước của phân vùng: hoạt động ngay cả trên các phân vùng hoạt động và có thể được xác minh bằng cách kiểm tra /sys/.../sdXY/size trước và sau.
AB

11

Không có câu trả lời nào làm nên sự công bằng cho sức mạnh của LVM.

(Điều này dựa trên nhận xét @frostchutz cho câu hỏi trên.)

Hãy tìm hiểu sự thật:

  • OP có hai phân vùng, sdb1 và sdb2 là khối lượng vật lý cho LVM.
  • sdb1 là ntfs ngay bây giờ, chúng ta cần cung cấp không gian đó cho homekhối lượng logic bên trong linuxvgnhóm âm lượng.

Các bước LVM bằng cách sử dụng "cách thực dụng":

  • tạo khối lượng vật lý trên sdb1: pvcreate /dev/sdb1
  • thêm sdb1 vào linuxvg:vgextend linuxvg /dev/sdb1
  • mở rộng khối lượng logic homevới tất cả không gian trống:lvextend -l +100%FREE /dev/linuxvg/home
  • mở rộng ext4 fs: resize2f /dev/linuxvg/home

LVM cho phép mức độ tuyệt vời của sự gián tiếp. Một ổ đĩa logic nằm trong một nhóm âm lượng, có thể sử dụng một số đĩa.

nhà -> linuxvg -> (sdb1, sdb2, sdc1)

http://tldp.org/HOWTO/LVM-HOWTO/createvgs.html


10

Câu hỏi đã được giải quyết, sau khi đọc bài đăng trên blog này . Tôi sẽ viết giải pháp ở dạng ngắn:

  • khởi động từ một đĩa CD trực tiếp với
  • sử dụng gdisk(nếu bạn sử dụng GPT) nếu không bạn có thể sử dụng tốtfdisk
  • lưu ý cài đặt phân vùng của bạn, trong trường hợp của tôi gdisk -l /dev/sdb
  • xóa phân vùng của bạn với
  • tạo một phân vùng mới với sự liên kết chính xác giống như phân vùng trước đó (trong ví dụ của tôi bắt đầu từ khối 2048)
  • viết bảng phân vùng mới của bạn
  • chạy partprobe -sđể làm mới bảng phân vùng mà không cần khởi động lại
  • thay đổi kích thước âm lượng vật lý của bạn bằng pvresize /dev/sdb1hoặc bất cứ nơi nào pv của bạn (sử dụng pvsđể xác định nếu bạn không biết)
  • bây giờ thay đổi kích thước khối lượng logic của bạn với lvextend -l +100%FREE /dev/file/of/your/lv, trong trường hợp của tôisudo lvextend -l +100%FREE /dev/linuxvg/home
  • thay đổi kích thước hệ thống tập tin sudo resize2fs /dev/linuxvg/home
  • đầu tiên kiểm tra tính nhất quán sudo e2fsck -f /dev/linuxvg/home
  • thưởng thức :)

Trên thực tế, bạn có thể cắt ra khoảng một nửa các bước đó và thực hiện chỉ với 1 lần khởi động lại.
Patrick

GParted từ chối thay đổi kích thước phân vùng, vì nó đã bị khóa (biểu tượng khóa này).
klingt.net

4

Một số câu trả lời tuyệt vời rồi.

Nếu bạn đang sử dụng xfs, thì bạn sử dụng lệnh

xfs_growfs /mountpoint

thay vì thay đổi kích thước2fs. Bạn có thể làm điều đó trong khi mountpoint đó đang hoạt động, chẳng hạn như nếu bạn đã phát triển phân vùng gốc và bạn không cần phải khởi động lại sau đó.

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.