Khuyến mãi
Trang chủ » Hướng dẫn » Hướng dẫn resize phân vùng ổ đĩa chuẩn GPT trên Linux

Hướng dẫn resize phân vùng ổ đĩa chuẩn GPT trên Linux

Bài viết dưới đây sẽ hướng dẫn cách tăng dung lượng đĩa ở chuẩn GPT trên hệ điều hành Linux

Lưu ý: Bài viết này chỉ thực hiện trên phân vùng chuẩn GPT

 

TRƯỚC TIÊN CẦN XÁC ĐỊNH XEM PHÂN VÙNG Ổ ĐĨA LÀ CHUẨN GPT HAY MBR

Sử dụng lệnh parted để xác định xem phân vùng được tạo là chuẩn GPT hay MBR

MBR partition

Sau khi gõ lệnh parted và bấm Enter,  bảng phân vùng ổ đĩa sẽ xuất hiện như dưới đây và cho chúng ta biết nếu phân vùng đang là MBR

[user@myvm ~]# parted -l /dev/sda 
Model: Msft Virtual Disk (scsi) 
Disk /dev/sda: 107GB 
Sector size (logical/physical): 512B/512B 
Partition Table: msdos 
Number      Start      End      Size      Type      File      system      Flags 
  1         1049kB     525MB    524MB     primary   ext4                  boot 
  2         525MB      34.4GB   33.8GB    primary   ext4 
[user@myvm ~]#

GPT partition

Sau khi gõ lệnh parted và bấm Enter,  bảng phân vùng ổ đĩa sẽ xuất hiện như dưới đây và cho chúng ta biết nếu phân vùng đang là GPT

[user@myvm ~]# parted -l /dev/sda 
Model: Msft Virtual Disk (scsi) 
Disk /dev/sda: 68.7GB 
Sector size (logical/physical): 512B/512B 
Partition Table: gpt 
Disk Flags: 

Number      Start      End      Size      File system      Name                  Flags 
  1         1049kB     525MB    524MB     fat16            EFI System Partition  boot 
  2         525MB      1050MB   524MB     xfs 
  3         1050MB     1052MB   2097kB                                           bios_grub 
  4         1052MB     68.7GB   67.7GB                                           lvm

Nếu phân vùng máy là GPT, chúng ta có thể tiến hành resize ổ đĩa máy ảo. Resize ổ đĩa phân vùng

Resize ổ đĩa phân vùng

Lưu ý: Backup toàn bộ data, VM hoặc tạo snapshot trước khi thực hiện resize

UBUNTU

Để tăng dung lượng đĩa trên hệ điều hành Ubuntu:

  1. Shutdown VM
  2. tăng dung lượng qua trình quản lý server như esxi, proxmox.vcenter ….
  3. Restart VM, đăng nhập bằng quyền root
  4. Check lại thông số dung lượng đĩa đã được tăng hay chưa

Như ví dụ dưới đây, phân vùng ổ đã được tăng lên 100GB ở /dev/sda1

user@myvm:~# df -Th 
Filesystem     Type     Size     Used     Avail     Use%     Mounted on 
udev           devtmpfs 314M     0        314M      0%       /dev 
tmpfs          tmpfs    65M      2.3M     63M       4%       /run 
/dev/sda1      ext4     97G      1.8G     95G       2%       / 
tmpfs          tmpfs    324M     0        324M      0%       /dev/shm 
tmpfs          tmpfs    5.0M     0        5.0M      0%       /run/lock 
tmpfs          tmpfs    324M     0        324M      0%       /sys/fs/cgroup 
/dev/sda15     vfat     105M     3.6M     101M      4%       /boot/efi 
/dev/sdb1      ext4     20G      44M      19G       1%       /mnt
tmpfs          tmpfs    65M      0        65M       0%       /run/user/1000
user@myvm:~#

SUSE

Để tăng dung lượng đĩa trên SUSE 12 SP4, SUSE SLES 12 cho SAP,  SUSE SLES 15, và SUSE SLES 15 cho SAP:

  1. Shutdown VM
  2. tăng dung lượng qua trình quản lý server
  3. Restart VM

Khi VM đã được restart, thao tác theo các bước sau:

 

  • Truy cập vào VM bằng quyền root bằng lệnh sau:
# sudo -i
  • Sử dụng lệnh sau để cài đặt gói growpart, thứ sẽ cần để resize phân vùng:
# zypper install growpart
  • Sử dụng lệnh lsblk để tìm phân vùng được gắn trên thư mục gốc của hệ thống tệp, trong trường hợp này là phân vùng sda4 đang được mount với :/
# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   48G  0 disk
├─sda1   8:1    0    2M  0 part
├─sda2   8:2    0  512M  0 part /boot/efi
├─sda3   8:3    0    1G  0 part /boot
└─sda4   8:4    0 28.5G  0 part /
sdb      8:16   0    4G  0 disk
└─sdb1   8:17   0    4G  0 part /mnt/resource
  • Resize phân vùng được xác định ở bước trước bằng lệnh growpart:
# growpart /dev/sda 4
CHANGED: partition=4 start=3151872 old: size=59762655 end=62914527 new: size=97511391 end=100663263
  • Chạy lệnh lsblk để kiểm tra xem phân vùng đã được tăng hay chưa. Như ví dụ dưới đây, phân vùng /dev/sda4 đã được tăng lên 46.5 GB:
linux:~ # lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   48G  0 disk
├─sda1   8:1    0    2M  0 part
├─sda2   8:2    0  512M  0 part /boot/efi
├─sda3   8:3    0    1G  0 part /boot
└─sda4   8:4    0 46.5G  0 part /
sdb      8:16   0    4G  0 disk
└─sdb1   8:17   0    4G  0 part /mnt/resource
  • Xác định loại định dạng đĩa bằng cách dùng lệnh lsblk với tùy chọn -f
linux:~ # lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
sda
├─sda1
├─sda2 vfat   EFI   AC67-D22D                            /boot/efi
├─sda3 xfs    BOOT  5731a128-db36-4899-b3d2-eb5ae8126188 /boot
└─sda4 xfs    ROOT  70f83359-c7f2-4409-bba5-37b07534af96 /
sdb
└─sdb1 ext4         8c4ca904-cd93-4939-b240-fb45401e2ec6 /mnt/resource

Dựa theo định dạng đĩa, sử dụng lệnh thích hợp để resize phân vùng hệ thống:

    • Với xfs, sử dụng lệnh sau:
#xfs_growfs /
    • Ví dụ:
linux:~ # xfs_growfs /
meta-data=/dev/sda4              isize=512    agcount=4, agsize=1867583 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0 rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=7470331, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=3647, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 7470331 to 12188923
    • Với ext4, sử dụng lệnh sau:
#resize2fs /dev/sda4
  • Check lại thông số dung lượng đĩa đã được tăng bằng lệnh df -Th
#df -Thl
    • Ví dụ:
linux:~ # df -Thl
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  445M  4.0K  445M   1% /dev
tmpfs          tmpfs     458M     0  458M   0% /dev/shm
tmpfs          tmpfs     458M   14M  445M   3% /run
tmpfs          tmpfs     458M     0  458M   0% /sys/fs/cgroup
/dev/sda4      xfs        47G  2.2G   45G   5% /
/dev/sda3      xfs      1014M   86M  929M   9% /boot
/dev/sda2      vfat      512M  1.1M  511M   1% /boot/efi
/dev/sdb1      ext4      3.9G   16M  3.7G   1% /mnt/resource
tmpfs          tmpfs      92M     0   92M   0% /run/user/1000
tmpfs          tmpfs      92M     0   92M   0% /run/user/490

RHEL với LVM

  1. Truy cập VM bằng root với lệnh sau:
  2. [root@dd-rhel7vm ~]# sudo -i
  3. Sử dụng lệnh lsblk để xác định phân vùng nào đang được gắn với root (/) trong hệ thống. Trong trường hợp này, ta có thể thấy rootvg-rootlv đang đang được mount với /. Nếu muốn gắn với tệp khác, các bạn có thể thay thế phân vùng và mount point khác theo cách dưới đây:
  4. [root@dd-rhel7vm ~]# lsblk -f
    NAME                  FSTYPE      LABEL   UUID                                   MOUNTPOINT
    fd0
    sda
    ├─sda1                vfat                C13D-C339                              /boot/efi
    ├─sda2                xfs                 8cc4c23c-fa7b-4a4d-bba8-4108b7ac0135   /boot
    ├─sda3
    └─sda4                LVM2_member         zx0Lio-2YsN-ukmz-BvAY-LCKb-kRU0-ReRBzh
       ├─rootvg-tmplv      xfs                 174c3c3a-9e65-409a-af59-5204a5c00550   /tmp
       ├─rootvg-usrlv      xfs                 a48dbaac-75d4-4cf6-a5e6-dcd3ffed9af1   /usr
       ├─rootvg-optlv      xfs                 85fe8660-9acb-48b8-98aa-bf16f14b9587   /opt
       ├─rootvg-homelv     xfs                 b22432b1-c905-492b-a27f-199c1a6497e7   /home
       ├─rootvg-varlv      xfs                 24ad0b4e-1b6b-45e7-9605-8aca02d20d22   /var
       └─rootvg-rootlv     xfs                 4f3e6f40-61bf-4866-a7ae-5c6a94675193   /
  5. Kiểm tra xem có phân vùng trống trong nhóm LVM chứa phân vùng root hay không. Nếu có thì các bạn có thể skip tới bước 12.
  6. [root@dd-rhel7vm ~]# vgdisplay rootvg
    --- Volume group ---
    VG Name               rootvg
    System ID
    Format                lvm2
    Metadata Areas        1
    Metadata Sequence No  7
    VG Access             read/write
    VG Status             resizable
    MAX LV                0
    Cur LV                6
    Open LV               6
    Max PV                0
    Cur PV                1
    Act PV                1
    VG Size               <63.02 GiB
    PE Size               4.00 MiB
    Total PE              16132
    Alloc PE / Size       6400 / 25.00 GiB
    Free  PE / Size       9732 / <38.02 GiB
    VG UUID               lPUfnV-3aYT-zDJJ-JaPX-L2d7-n8sL-A9AgJb 

    Trong trường hợp này, dòng Free PE / Size hiển thị trống 38.02GB trong phân vùng. Bạn không cần phải thay đổi kích thước đĩa trước khi thêm dung lượng vào phân vùng

  7. Để thêm dung lượng disk trên RHEL 7.x với LVM:
    • shutdown VM
    • Tăng dung lượng disk qua trình quản lý server
    • Bật lại VM
  8. Khi VM đã được bật lên, thao tác tiếp như sau
  9. Cài đặt gói cloud-utils-growpart để chạy được lệnh growpart. Lệnh này được dùng để tăng kích thước đĩa OS và trình xử lý gdisk cho GPT.

     [root@dd-rhel7vm ~]# yum install cloud-utils-growpart gdisk 
  10. Xác định xem phân vùng nào chứa LVM vật lý hay phân vùng (PV) nằm trong nhóm rootvg bằng cách sử dụng lệnh pvscan. Lưu ý rằng kích thước đĩa và đĩa trống được đặt trong dấu [ ]
  11.  [root@dd-rhel7vm ~]# pvscan
      PV /dev/sda4   VG rootvg          lvm2 [<63.02 GiB / <38.02 GiB free] 
  12. Xác định  dung lượng phân vùng bằng lệnh lsblk
  13.  [root@dd-rhel7vm ~]# lsblk /dev/sda4
    NAME            MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sda4              8:4    0  63G  0 part
    ├─rootvg-tmplv  253:1    0   2G  0 lvm  /tmp
    ├─rootvg-usrlv  253:2    0  10G  0 lvm  /usr
    ├─rootvg-optlv  253:3    0   2G  0 lvm  /opt
    ├─rootvg-homelv 253:4    0   1G  0 lvm  /home
    ├─rootvg-varlv  253:5    0   8G  0 lvm  /var
    └─rootvg-rootlv 253:6    0   2G  0 lvm  / 
  14. Mở rộng phân vùng chứa PV bằng lệnh growpart, tên thiết bị và số phân vùng. Làm như vậy sẽ mở rộng phân vùng chỉ định và sử dụng toàn bộ dung lượng trên ổ.
  15.  [root@dd-rhel7vm ~]# growpart /dev/sda 4
    CHANGED: partition=4 start=2054144 old: size=132161536 end=134215680 new: size=199272414 end=201326558 
  16. Chạy lệnh lsblk để kiểm tra xem phân vùng đã được tăng hay chưa. Như ví dụ dưới đây, phân vùng sda4 đã được tăng lên từ 63GB lên 95GB:
  17.  [root@dd-rhel7vm ~]# lsblk /dev/sda4
    NAME            MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sda4              8:4    0  95G  0 part
    ├─rootvg-tmplv  253:1    0   2G  0 lvm  /tmp
    ├─rootvg-usrlv  253:2    0  10G  0 lvm  /usr
    ├─rootvg-optlv  253:3    0   2G  0 lvm  /opt
    ├─rootvg-homelv 253:4    0   1G  0 lvm  /home
    ├─rootvg-varlv  253:5    0   8G  0 lvm  /var
    └─rootvg-rootlv 253:6    0   2G  0 lvm  / 
  18. Mở rộng PV để sử dụng phần còn lại của phân vùng mới được mở rộng:
  19. [root@dd-rhel7vm ~]# pvresize /dev/sda4
    Physical volume "/dev/sda4" changed
    1 physical volume(s) resized or updated / 0 physical volume(s) not resized
  20. Xác minh rằng dung lượng của PV mới được thêm bằng với dung lượng bạn muốn tạo, sau đó so sánh với thông số ban đầu
  21. [root@dd-rhel7vm ~]# pvscan
    PV /dev/sda4   VG rootvg          lvm2 [<95.02 GiB / <70.02 GiB free]
  22. Mở rộng phân vùng (LV) bạn cần. Dung lượng không nhất thiết phải là toàn bộ dung lượng trống trong phân vùng. Như ví dụ dưới đây, phân vùng /dev/mapper/rootvg-rootlv được thay đổi kích thước từ 2GB thành 12GB (tăng 10GB). Lệnh này cũng sẽ thay đổi kích thước tệp hệ thống.
  23. [root@dd-rhel7vm ~]# lvresize -r -L +10G /dev/mapper/rootvg-rootlv

    Ví dụ:

    [root@dd-rhel7vm ~]# lvresize -r -L +10G /dev/mapper/rootvg-rootlv
    Size of logical volume rootvg/rootlv changed from 2.00 GiB (512 extents) to 12.00 GiB (3072 extents).
    Logical volume rootvg/rootlv successfully resized.
    meta-data=/dev/mapper/rootvg-rootlv isize=512    agcount=4, agsize=131072 blks
             =                       sectsz=4096  attr=2, projid32bit=1
             =                       crc=1        finobt=0 spinodes=0
    data     =                       bsize=4096   blocks=524288, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal               bsize=4096   blocks=2560, version=2
             =                       sectsz=4096  sunit=1 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    data blocks changed from 524288 to 3145728
  24. Lệnh lvresize sẽ tự động gọi lệnh thay đổi kích thước thích hợp cho tệp hệ thống trong phân vùng (LV). Kiểm tra xem /dev/mapper/rootvg-rootlv được gắn trên / có tăng kích thước tệp hệ thống hay không bằng lệnh sau:
  25. [root@dd-rhel7vm ~]# df -Th /

    Ví dụ:

    [root@dd-rhel7vm ~]# df -Th /
    Filesystem                Type  Size  Used Avail Use% Mounted on
    /dev/mapper/rootvg-rootlv xfs    12G   71M   12G   1% /
    [root@dd-rhel7vm ~]#

RHEL RAW
Để tăng dung lượng đĩa trên RHEL RAW:

  • shutdown VM
  • Tăng dung lượng disk qua trình quản lý server
  • Bật lại VM

Khi VM đã được bật lên, thao tác tiếp như sau:

  1. Truy cập VM bằng quyền root bằng lệnh dưới đây:
  2. [root@dd-rhel7vm ~]# sudo -i
  3. Khi VM khởi động lại xong, làm theo các bước dưới đây:
    • Cài đặt gói cloud-utils-growpart để chạy được lệnh growpart. Lệnh này được dùng để tăng kích thước đĩa OS và trình xử lý gdisk cho GPT.
    [root@dd-rhel7vm ~]# yum install cloud-utils-growpart gdisk
  4. Sử dụng lệnh lsblk -f để xác định phân vùng và loại phân vùng đang gắn với root (/)
  5. [root@vm-dd-cent7 ~]# lsblk -f
    NAME    FSTYPE LABEL UUID                                 MOUNTPOINT
    sda
    ├─sda1  xfs          2a7bb59d-6a71-4841-a3c6-cba23413a5d2 /boot
    ├─sda2  xfs          148be922-e3ec-43b5-8705-69786b522b05 /
    ├─sda14
    └─sda15 vfat         788D-DC65                            /boot/efi
    sdb
    └─sdb1  ext4         923f51ff-acbd-4b91-b01b-c56140920098 /mnt/resource
  6. Để xác định, hãy bắt đầu bằng cách list bảng phân vùng sda bằng gdisk. Trong ví dụ này, ta thấy 1 đĩa 48GB với phân vùng 2 29GB. Đĩa đã được nâng lên từ 30 tới 48GB bằng trình quản lý Azure
  7. [root@vm-dd-cent7 ~]# gdisk -l /dev/sda
    GPT fdisk (gdisk) version 0.8.10
    
    Partition table scan:
    MBR: protective
    BSD: not present
    APM: not present
    GPT: present
    
    Found valid GPT with protective MBR; using GPT.
    Disk /dev/sda: 100663296 sectors, 48.0 GiB
    Logical sector size: 512 bytes
    Disk identifier (GUID): 78CDF84D-9C8E-4B9F-8978-8C496A1BEC83
    Partition table holds up to 128 entries
    First usable sector is 34, last usable sector is 62914526
    Partitions will be aligned on 2048-sector boundaries
    Total free space is 6076 sectors (3.0 MiB)
    
    Number  Start (sector)    End (sector)  Size       Code  Name
       1         1026048         2050047   500.0 MiB   0700
       2         2050048        62912511   29.0 GiB    0700
    14            2048           10239   4.0 MiB     EF02
    15           10240         1024000   495.0 MiB   EF00  EFI System Partition
  8. Mở rộng phân vùng root, trong trường hợp này là sda2 bằng lệnh growpart. Làm như vậy sẽ mở rộng phân vùng chỉ định và sử dụng toàn bộ dung lượng trên ổ.
  9. [root@vm-dd-cent7 ~]# growpart /dev/sda 2
    CHANGED: partition=2 start=2050048 old: size=60862464 end=62912512 new: size=98613214 end=100663262
  10. Kiểm tra lại bảng phân vùng mới bằng lệnh gdisk, ta có thể thấy phân vùng 2 đã được nâng lên 47GB
  11. [root@vm-dd-cent7 ~]# gdisk -l /dev/sda
    GPT fdisk (gdisk) version 0.8.10
    
    Partition table scan:
    MBR: protective
    BSD: not present
    APM: not present
    GPT: present
    
    Found valid GPT with protective MBR; using GPT.
    Disk /dev/sda: 100663296 sectors, 48.0 GiB
    Logical sector size: 512 bytes
    Disk identifier (GUID): 78CDF84D-9C8E-4B9F-8978-8C496A1BEC83
    Partition table holds up to 128 entries
    First usable sector is 34, last usable sector is 100663262
    Partitions will be aligned on 2048-sector boundaries
    Total free space is 4062 sectors (2.0 MiB)
    
    Number  Start (sector)    End (sector)  Size       Code  Name
       1         1026048         2050047   500.0 MiB   0700
       2         2050048       100663261   47.0 GiB    0700
    14            2048           10239   4.0 MiB     EF02
    15           10240         1024000   495.0 MiB   EF00  EFI System Partition
  12. Mở rộng filesystem trên phân vùng bằng xfs_growfs
  13. [root@vm-dd-cent7 ~]# xfs_growfs /
    meta-data=/dev/sda2              isize=512    agcount=4, agsize=1901952 blks
             =                       sectsz=4096  attr=2, projid32bit=1
             =                       crc=1        finobt=0 spinodes=0
    data     =                       bsize=4096   blocks=7607808, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal               bsize=4096   blocks=3714, version=2
             =                       sectsz=4096  sunit=1 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    data blocks changed from 7607808 to 12326651
  14. kiểm tra lại dung lượng mới bằng lệnh df
  15. [root@vm-dd-cent7 ~]# df -hl
    Filesystem      Size  Used Avail Use% Mounted on
    devtmpfs        452M     0  452M   0% /dev
    tmpfs           464M     0  464M   0% /dev/shm
    tmpfs           464M  6.8M  457M   2% /run
    tmpfs           464M     0  464M   0% /sys/fs/cgroup
    /dev/sda2        48G  2.1G   46G   5% /
    /dev/sda1       494M   65M  430M  13% /boot
    /dev/sda15      495M   12M  484M   3% /boot/efi
    /dev/sdb1       3.9G   16M  3.7G   1% /mnt/resource
    tmpfs            93M     0   93M   0% /run/user/1000

     

Cao Thắng – BKNS Technical

 

Call Back Icon

Xin chào quý khách!

Quý khách đang cần tư vấn dịch vụ, xin vui lòng nhập số điện thoại để chúng tôi gọi lại.

Tổng đài 24/07: 1900 63 68 09

Đăng ký nhanh dịch vụ

Quý khách vui lòng gửi yêu cầu cho BKNS, chúng tôi sẽ liên hệ lại ngay với bạn.