การขยายขนาด partition บน linux 2

ตัวอย่างรัน instance ที่มีขนาด m1.small จะได้พื้นที่ดิสก์ขนาด 20GB เราจะต้องเข้าไปขยายขนาด partition ใน VM ให้มีขนาด 20GB

1. ดูขนาดดิสก์

ubuntu@ubuntu:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            982M     0  982M   0% /dev
tmpfs           201M  3.2M  197M   2% /run
/dev/vda1       7.8G  1.8G  5.6G  25% /
tmpfs          1001M     0 1001M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs          1001M     0 1001M   0% /sys/fs/cgroup
tmpfs           201M     0  201M   0% /run/user/1000

ubuntu@ubuntu:~$ sudo fdisk -l

Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0x5c53f5b6

Device     Boot    Start      End  Sectors Size Id Type
/dev/vda1  *        2048 16779263 16777216   8G 83 Linux
/dev/vda2       16781310 20969471  4188162   2G  5 Extended
/dev/vda5       16781312 20969471  4188160   2G 82 Linux swap / Solaris

2. ลบ primary partition และ extended partition

ubuntu@ubuntu:~$ sudo fdisk /dev/vda

Command (m for help): p
Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0x5c53f5b6

Device     Boot    Start      End  Sectors Size Id Type
/dev/vda1  *        2048 16779263 16777216   8G 83 Linux
/dev/vda2       16781310 20969471  4188162   2G  5 Extended
/dev/vda5       16781312 20969471  4188160   2G 82 Linux swap / Solaris

Command (m for help): d
Partition number (1,2,5, default 5): 1

Partition 1 has been deleted.

Command (m for help): d
Partition number (2,5, default 5): 2

Partition 2 has been deleted.

3. สร้าง partition ใหม่ที่มีขนาด 16GB (เหลือที่สำหรับ swap 4GB)

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): +16G

Created a new partition 1 of type 'Linux' and of size 16 GiB.

Command (m for help): p
Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0x5c53f5b6

Device     Boot Start      End  Sectors Size Id Type
/dev/vda1        2048 33556479 33554432  16G 83 Linux

4. สร้าง extended partition และ swap space

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): e
Partition number (2-4, default 2):
First sector (33556480-41943039, default 33556480):
Last sector, +sectors or +size{K,M,G,T,P} (33556480-41943039, default 41943039):

Created a new partition 2 of type 'Extended' and of size 4 GiB.

Command (m for help): n
All space for primary partitions is in use.
Adding logical partition 5
First sector (33558528-41943039, default 33558528):
Last sector, +sectors or +size{K,M,G,T,P} (33558528-41943039, default 41943039):

Created a new partition 5 of type 'Linux' and of size 4 GiB.

Command (m for help): t
Partition number (1,2,5, default 5): 5
Partition type (type L to list all types): 82

Changed type of partition 'Linux' to 'Linux swap / Solaris'.

Command (m for help): p
Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0x5c53f5b6

Device     Boot    Start      End  Sectors Size Id Type
/dev/vda1           2048 33556479 33554432  16G 83 Linux
/dev/vda2       33556480 41943039  8386560   4G  5 Extended
/dev/vda5       33558528 41943039  8384512   4G 82 Linux swap / Solaris

5. บันทึกการเปลี่ยนแปลง ออกจาก fdisk แล้ว reboot เครื่อง

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

ubuntu@ubuntu:~$ sudo reboot

6. ขยาย filesystem

ubuntu@ubuntu:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            982M     0  982M   0% /dev
tmpfs           201M  3.2M  197M   2% /run
/dev/vda1       7.8G  1.8G  5.6G  25% /
tmpfs          1001M     0 1001M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs          1001M     0 1001M   0% /sys/fs/cgroup
tmpfs           201M     0  201M   0% /run/user/1000
ubuntu@ubuntu:~$ sudo resize2fs /dev/vda1
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vda1 is now 4194304 (4k) blocks long.

ubuntu@ubuntu:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            982M     0  982M   0% /dev
tmpfs           201M  3.2M  197M   2% /run
/dev/vda1        16G  1.8G   14G  12% /
tmpfs          1001M     0 1001M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs          1001M     0 1001M   0% /sys/fs/cgroup
tmpfs           201M     0  201M   0% /run/user/1000

7. ปรับ swap partition

ubuntu@ubuntu:~$ sudo mkswap /dev/vda5
Setting up swapspace version 1, size = 4 GiB (4292866048 bytes)
no label, UUID=2e7eb9c1-634f-40d3-83ae-e9adca04da8e

เปลี่ยนค่า UUID ของ swap partition ใน /etc/fstab ด้วย UUID ใหม่ที่ได้จากด้านบน

UUID=2e7eb9c1-634f-40d3-83ae-e9adca04da8e none            swap    sw              0       0

ubuntu@ubuntu:~$ sudo swapon --all --verbose
swapon /dev/vda5
swapon: /dev/vda5: found swap signature: version 1d, page-size 4, same byte order
swapon: /dev/vda5: pagesize=4096, swapsize=4292870144, devsize=4292870144

2 thoughts on “การขยายขนาด partition บน linux

  1. Pingback: สิ่งที่ควรรู้และการแก้ปัญหาเบื่องต้นเมื่อใช้งานระบบ sciencecloud ← Science Cloud Community

  2. Pingback: การใช้งานระบบ Science Cloud (OpenStack Newton) ← Science Cloud Community

Leave a Reply