Tôi muốn thực hiện một phần mở rộng về câu trả lời của @ Søren Løvborg: mở rộng phân vùng với phân vùng trao đổi hiện tại.
Đầu tiên cách bố trí đĩa sau khi mở rộng:
$sudo parted /dev/sda 'unit s print' free
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 14336000s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
63s 2047s 1985s Free Space
1 2048s 10485759s 10483712s primary ext4 boot
10485760s 10487805s 2046s Free Space
2 10487806s 12580863s 2093058s extended
5 10487808s 12580863s 2093056s logical linux-swap(v1)
12580864s 14335999s 1755136s Free Space
Vì vậy, sda1 cần được mở rộng với không gian trống ở cuối đĩa, nhưng phân vùng trao đổi nằm ở giữa chúng. Đây là cách bạn có thể làm điều đó:
Đầu tiên chúng ta cần vô hiệu hóa trao đổi. Kiểm tra xem nó được sử dụng bao nhiêu và nếu bạn có thể tắt nó đi.
$ free -h
total used free shared buff/cache available
Mem: 992M 52M 464M 3.2M 475M 784M
Swap: 1.0G 0B 1.0G
trao đổi không được sử dụng ở đây để chúng tôi có thể tắt nó
$sudo swapoff /dev/sda5
Bây giờ chúng ta sẽ thay đổi bảng phân vùng:
$sudo fdisk /dev/sda
(lưu ý: nếu bạn có phân vùng đầu tiên bắt đầu ở khu vực 63 thay vì năm 2048, bạn cần thêm tùy chọn -c=dos
)
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sda: 6.9 GiB, 7340032000 bytes, 14336000 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: 0x9e11c6df
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 10485759 10483712 5G 83 Linux
/dev/sda2 10487806 12580863 2093058 1022M 5 Extended
/dev/sda5 10487808 12580863 2093056 1022M 82 Linux swap / Solaris
Command (m for help): d
Partition number (1,2,5, default 5): 2
Partition 2 has been deleted.
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
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-14335999, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-14335999, default 14335999): 12242941
Created a new partition 1 of type 'Linux' and of size 5.9 GiB.
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (12242942-14335999, default 12242944):
Last sector, +sectors or +size{K,M,G,T,P} (12242944-14335999, default 14335999):
Created a new partition 2 of type 'Linux' and of size 1022 MiB.
Command (m for help): a
Partition number (1,2, default 2): 1
The bootable flag on partition 1 is enabled now.
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).
Lưu ý: kích thước của sda1 là tổng số ngành trừ đi kích thước cung của phân vùng trao đổi của bạn: 14335999-2093058 = 12242941
Như fdisk đề cập: kernel vẫn đang sử dụng bảng phân vùng cũ nên chúng ta cần tải lại nó.
$partprobe
Bây giờ chúng ta cần chạy resize2fs trên sda1 (đừng quên điều này!)
$resize2fs /dev/sda1
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 10
The filesystem on /dev/sda1 is now 38833617 (4k) blocks long.
Bây giờ, mọi thứ vẫn chưa kết thúc. Như bạn có thể nhận thấy sda2 được phân vùng dưới dạng Linux (Ext4). Đối với một số lý do, không có cách nào trong fdisk để chọn loại. Vì vậy, chúng ta phải thay thế nó bằng cách sử dụngcfdisk
$ sudo cfdisk
Chọn sda2 và thay đổi loại thành 82 Linux swap / Solaris
và đảm bảo bạn viết nó (gõ có để xác nhận)
Bây giờ chúng ta có thể kích hoạt lại trao đổi
$mkswap /dev/sda2
/dev/sda2
UUID=d58bf1cb-d27a-487d-b337-056767fd5ad6 none swap sw 0 0
Và cuối cùng bật nó lên:
$swapon /dev/sda2
Điều duy nhất chúng ta cần làm là cập nhật fstab để tự động gắn kết phân vùng trao đổi khi khởi động
$sudo nano /etc/fstab
Và thay đổi UUID của phân vùng trao đổi thành đầu ra ở trên:
# swap was on /dev/sda5 during installation
UUID=d58bf1cb-d27a-487d-b337-056767fd5ad6 none swap sw 0 0
Bây giờ tất cả đều tốt và bạn có thể khởi động lại mà không gặp vấn đề gì.