Welcome ISPACE.EDU.VN
ĐỀ TÀI: 
Giáo viên hướng dẫn : 
Sinh viên thực hiện : 
Tìm Hiểu Cách Thay Đổi Size Của Các Partitions 
Trong Linux (Dùng Gparted & LVM)
 ĐỖ ĐỨC HIỆP
 TRẦN MINH TUẤN
Lớp : Quản Trị Mạng ( khóa 2 )
MSSV : 
 
 
Long Xuyên, Ngày 10 Tháng 03 Năm 2014
Cách thay đổi size của các phân vùng 
(Partitions) trong linux
(có rất nhiều chương trình để quản lý partion, trong 
phần này chỉ trình bày 2 cách để quản lý partion đó 
là Gparted & LVM)
1/ Dùng Gparted
Đôi nét về các tính năng chính của chương trình
GParted cho phép bạn dễ dàng quản lý các phân vùng đĩa cứng của 
bạn:
• Tạo ra các bảng phân vùng (ví dụ, msdos hoặc gpt)
• Tạo, di chuyển, sao chép, thay đổi kích thước, kiểm tra, nhãn, thiết lập 
UUID mới, và xóa các phân vùng
• Kích hoạt và vô hiệu hóa lá cờ phân vùng, (ví dụ như, khởi động hoặc 
ẩn)
• Sắp xếp phân vùng để mebibyte (MiB) hoặc ranh giới truyền thống xi 
lanh
• Cố gắng cứu dữ liệu từ phân vùng bị mất
GParted làm việc với các thiết bị lưu trữ như sau:
• Ổ đĩa cứng (ví dụ, SATA, IDE, SCSI và)
• Các thiết bị bộ nhớ flash, chẳng hạn như thẻ nhớ USB và Solid State 
Drives (SSD)
• Thiết bị RAID (RAID phần cứng, bo mạch chủ BIOS RAID, và phần 
mềm Linux RAID)
• Mọi quy mô khu vực (ví dụ, các thiết bị với 512, 1024, 2048, 4096 
ngành byte và nhiều hơn nữa)
GParted hỗ trợ các hành động sau trên hệ thống tập tin:
Hệ thống 
tập tin
Phát 
hiện
ĐọcTạo
Phát 
triển
Thu 
nhỏ
Di 
chuyển
Bản 
sao
Kiểm 
tra
Nhãn UUID
Phần mềm cần 
thiết
BitLocker
btrfs 
[2]
 [2] 
[10
]
btrfs công cụ
crypt-LUKS
exFAT 
[9]
ext2 e2fsprogs
ext3 e2fsprogs
ext4 
[7]
e2fsprogs v1.41 +
f2fs 
[14]
f2fs công cụ
fat16 
[4] 
[4] 
[13] 
[6] 
[6]
dosfstools
fat32 
[4] 
[4] 
[13] 
[6] 
[6]
dosfstools
HFS 
[4]
hfsutils
HFS + 
[4]
hfsprogs
JFS 
[2]
jfsutils
linux-swap 
[8] 
[8]
util-linux
pv lvm2 lvm2
nilfs2 
[12] 
[2] 
[2]
nilfs-utils
ntfs 
[1] 
[11
]
ntfs-3g / ntfsprogs
reiser4 reiser4progs
reiserfs reiserfsprogs
UFS
xfs 
[2] 
[3] 
[5]
xfsprogs , 
xfsdump
Ta có thể khởi động vào GParted Live CD bằng đĩa CD hoặc USB
Thao tác như bên dưới
Nhấn Enter
Sau đó ta sẽ được nhắc nhở để chọn ngôn ngữ, nhấn enter mặc định là tiếng Anh.
Tiếp theo chúng ta chọn tùy chọn mặc định 0 bằng cách nhấn vào, chúng ta sẽ làm 
việc với giao diện đồ họa.
Một khi hoàn tất, chúng ta sẽ được trình bày với giao diện đồ họa với GParted đã 
được mở, nếu nó chưa được mở, ta có thể chọn nó từ biểu tượng trên Desktop.
Chọn / dev/sda2 và nhấp vào "Resize / Move" và bạn sẽ được trình bày với những 
điều sau đây.
Về cơ bản bạn chỉ cần kéo mũi tên màu đen của / dev/sda2 tất cả các cách để kết thúc 
không gian chưa phân bổ và nhấn vào nút Resize / Move.
Sau khi làm điều này, bạn sẽ thấy / dev/sda2 (đại diện bởi các hộp màu xanh) chia ra 
các không gian chưa phân bổ.
Sự thay đổi này và tất cả các thay đổi hơn nữa sẽ chưa được áp dụng, ta có thể thấy 
nhiệm vụ xuống dưới cùng của giao diện GParted và chúng sẽ chỉ được áp dụng khi ta 
nhấn vào nút Apply. Hoặc ta có thể nhấn vào nút Undo để loại bỏ một sự thay đổi 
chưa giải quyết.
Lúc này, ta chọn / dev/sda5 là phân vùng trao đổi và chọn Resize / Move, điều này sẽ 
cho kết quả như sau.
Thời gian này thay vì mở rộng phân vùng, ta chỉ cần di chuyển hoán đổi tất cả các 
cách để kết thúc không gian / dev/sda2 , điều này được thực hiện bằng cách chỉ cần 
kéo hộp đến cuối mà sau đó sẽ như thế này.
Nhấp vào nút Resize / Move và sau đó là một cảnh báo có thể xuất hiện thông báo cho 
ta rằng di chuyển một phân vùng có thể gây ra cho hệ điều hành của ta không khởi 
động được. Nó cũng cảnh báo rằng thực hiện trạng thái này có thể mất một thời gian 
dài để áp dụng, đọc cảnh báo sau đó nhấn OK để tiếp tục.
GUI bây giờ sẽ trông giống như hình ảnh dưới đây, nơi / dev/sda1 nằm ngay bên 
cạnh / dev/sda2 trong đó có các không gian chưa phân bổ.
Chọn dev/sda2 mở rộng phân vùng / và chọn Resize / Move.
Kéo này về bên phải để chỉ những không gian trao đổi được chứa và không gian chưa 
được màu xám được giải phóng, chọn Resize / Move khi hoàn thành.
Một khi điều này là hoàn thành ổ đĩa sẽ như thế này.
Bây giờ chúng ta có / dev/sda1 bên cạnh không gian chưa được phân bổ, vì vậy sẽ mở 
rộng phân vùng / dev/sda1. Chọn / dev/sda1 và nhấp vào nút Resize / Move.
Ta sẽ có thể thực hiện hành động này ngay lập tức nếu ta không có trao đổi ở giữa / 
dev/sda1 và không gian chưa phân bổ, các bước trước đó đã có được hoán đổi ra khỏi 
con đường trong GParted.
Kéo mũi tên lên trên để các không gian chưa được phân bổ bởi / dev/sda1 như hình 
dưới đây, sau đó bấm Resize / Move.
Một khi điều này được thực hiện phân vùng / dev/sda1 bây giờ sẽ được sử dụng không 
gian chưa phân bổ. Tất cả những gì còn lại để làm là nhấn vào nút áp dụng để áp dụng 
các thay đổi – Khi đó ta sẽ được nhắc nhở để xác nhận với một cảnh báo rằng việc 
mất dữ liệu có thể xảy ra.
Lưu ý rằng điều này có thể mất một thời gian tùy thuộc vào có bao nhiêu đĩa hiện 
đang sử dụng và dung lượng ổ đĩa của ta đang gia tăng, vì việc kiểm tra hệ thống tập 
tin (fsck) được chạy trước khi mở rộng và sau đó để đảm bảo rằng không có vấn 
đề. Mình đã thực hiện phương pháp này trên một máy chủ 400GB trong quá khứ và để 
tăng nó 100GB mất khoảng 5 giờ. Trong ví dụ này ta chỉ tăng 10GB và chỉ có khoảng 
1gb của dữ liệu trên đĩa vì vậy điều này mất khoảng 2 phút để hoàn thành.
Mọi thứ bây giờ là hoàn tất,chúng ta chỉ cần khởi động lại máy ảo và sau đó khởi 
động từ đĩa CD, cách khác tắt máy ảo và tháo gắn đĩa CD trực tiếp và sau đó mở nó 
trở lại.
Một khi hệ điều hành khởi động, ta có thể nhận thấy rằng không gian đĩa đã được mở 
rộng một cách chính xác. Dưới đây ta có thể thấy rằng / dev/sda1 giờ là 30GB trong 
kích thước.
2/ Dùng LVM (Logical Volume Management)
LVM là phương pháp cho phép ấn định không gian đĩa cứng thành những logical 
volume giúp cho việc thay đổi kích thước trở nên dễ dàng hơn so với partition. Với kỹ 
thuật LVM ta có thể thay đổi kích thước mà không cần thay đổi partition table của OS, 
điều này thực sự hữu ích khi ta đã dùng hết phần bộ nhớ còn trống của partition và 
muốn mở rộng dung lượng của nó. Trước khi thực hiện giải pháp này ta nên dành tí 
thời gian để tìm hiểu các khái niệm cơ bản sau.
PHYSICAL VOLUME: là một cách gọi khác của partition trong kỹ thuật LVM, nó 
là những thành phần cơ bản của LVM. một physical volume không thể mở rộng ra 
ngoài phạm vi một ổ đĩa.
LOGICAL VOLUME GROUP: nhiều physical volume trên các ổ đĩa khác nhau 
được kết hợ lại thành một logical volume group. với LVM logical volume group được 
xem như là một đĩa ảo.
LOGICAL VOLUMES: một logical volume group được chia thành nhiều logical 
volume. mỗi logical volume có ý nghĩa tương tự như một partition. nó được dùng cho 
các mount point và được format với những định dạng khác nhau như ext2, ext3 
khi dung lượng logical volume sử dụng hết ta có thể đưa thêm ổ đĩa mới bổ sung cho 
logical volume group và do đó tăng được dung lượng của logical volume.
PHYSICAL EXTENT: là đại lượng thể hiện một khối đơn vị tính dung lượng của 
logical volume.
Theo cách chia thông thường thì kích thước partition bị giới hạn bởi kích thước HDD 
chứa nó. Điều này nhiều khi rất bất tiện, xét bài toán sau: 
Giả sử có 4 SCSI HDD là /dev/sdb, /dev/sdc/, /dev/sdd, /dev/sde; dung lượng mỗi 
HDD là 1GB như vậy có 4GB sức chứa. Cần tạo ra 3 partition: SOFTWARES 1,4 
GB; MUSIC 1,2 GB; DATA 1,2 GB (tổng cộng là 3.8 GB) và để dành 0,2 GB còn lại. 
Các công cụ quản lí disk thông thường không làm được điều này vì mỗi partition cần 
tạo lớn hơn từng HDD nhưng LVM thì có thể. Kĩ thuật LVM sẽ ghép 4 HDD lại thành 
một partition lớn TOTALSTORAGE rồi lại chia TOTALSTORAGE ra thành các 
partition nhỏ hơn là SOFTWARES, MUSIC, DATA, UNUSED (xem hình vẽ):
Linux LVM là một trình quản lí storage device theo 3 lớp từ thấp đến cao là:
• Physical Volume: đây chính là các partition thông thường nhưng trong ngôn 
ngữ LVM thì được gọi là Physical Volume (PV). Ngoài ra một PV có thể là: 
một partition thông thường, một RAID device, một sparse file (một file dung 
lượng lớn, chứa toàn các số 0 giả làm partition để lưu dữ liệu). 
• Volume Group: nhiều PV khi được ghép lại với nhau tạo thành một Volume 
Group (VG). Dung lượng của VG bằng tổng dung lượng của các PV thành 
phần. Các PV thành phần có thể thuộc cùng một HDD hoặc thuộc nhiều HDD 
khác nhau. Có thể thêm vào hoặc loại đi một PV từ VG. 
• Logical Volume: mỗi VG lại được chia thành một hoặc nhiều Logical Volume 
(LV). Có thể resize các LV một cách dễ dàng và snapshot chúng.
Trong ngôn ngữ LVM không còn partition nữa, tất cả là volume: 
physical/group/logical volume.
Một số công cụ của LVM:
create view remove resize change scan …
PV pvcreate pvs pvdisplay pvremove pvchange pvscan …
VG vgcreate vgs vgdislpay vgremove vgextend 
vgreduce
vgchange vgscan …
LV Lvcreate lvs lvdisplay lvremove lvextend 
lvreduce
lvchange lvscan …
1. Thiết lập LVM
Thiết lập và sử dụng LV
Phần này minh họa các lệnh create và view PV, VG, LV qua các bước giải quyết bài 
toán nêu ở trên.
• Bước 1:Chuẩn bị các partition có filesystem là LVM bằng fdisk
o Tạo partition LVM từ HDD. Ví dụ với /dev/sdb: fdisk /dev/sdb
 Tạo một primary partition chiếm toàn bộ disk: n, p, 1, enter, 
enter
 Chuyển kiểu partition thành Linux LVM (kiểu 8e): t, 8e
 Lưu lại partition table và thoát khỏi fdisk: w
o Lặp lại các thao tác trên với các HDD còn lại để cuối cùng thu được các 
partition /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1 với filesystem là 
Linux LVM. 
o Tương tự như với các partition truyền thống sau bước fdisk để chọn 
filesystem ext2, vfat, … là bước mkfs để format theo filesystem đã chọn, 
các LVM partition cũng cần “format” nhưng không phải bằng lệnh mkfs 
mà bằng lệnh pvcreate.
• Bước 2:Từ mỗi LVM partition tạo một PV 
o Tạo PV bằng lệnh: pvcreate 
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
o Kiểm tra lại 4 PV vừa tạo bằng lệnh xem thông tin về PV: pvs
PV VG Fmt Attr PSize PFree 
[…]
/dev/sdb1 lvm2 1016.00M 1016.00M
/dev/sdc1 lvm2 1016.00M 1016.00M
/dev/sdd1 lvm2 1019.53M 1019.53M
/dev/sde1 lvm2 1019.53M 1019.53M
[…]
• Bước 3:Tạo VG từ các PV
o Tạo VG TotalStorage từ các PV sdb1, sdc1, sdd1, sde1 bằng lệnh 
vgcreate 
vgcreate TotalStorage /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
sau bước này xuất hiện thêm thư mục /dev/TotalStorage 
o Kiểm tra lại VG vừa tạo bằng lệnh xem thông tin về VG: vgs
VG #PV #LV #SN Attr VSize Vfree 
[…]
TotalStorage 4 0 0 wz n 3.96G 3.96G
[…]
• Bước 4:Tạo các LV từ VG
o Tạo các LV Softwares, Music, Data từ VG TotalStorage bằng lệnh:
lvcreate –n -L [-s ] [Path_PV]
lvcreate -n Softwares -L 1.4G TotalStorage
lvcreate -n Music -L 1.2G TotalStorage
lvcreate -n Data -L 1G TotalStorage
Sau bước này có thêm các file device /dev/TotalStorage/Softwares, 
/dev/TotalStorage/Music, /dev/TotalStorage/Data
• Tham số [Path_PV] để chỉ rõ ra LV được tạo từ PV nào. 
Ví dụ: lvcreate -n Softwares -L 1.4G TotalStorage /dev/sdb1
Tham số này có ích khi LV gồm nhiều hơn một PV. Khi hệ thống gặp sự cố một PV 
nào đó bị hỏng, nếu PV này không tham gia tạo LV thì LV không bị ảnh hưởng.
o Tham số -s quyết định đến dung lượng tối đa của LV (xem giải thích ở 
mục sau). Mặc định size LE là 4MB và dung lượng LV tối đa là 256 GB. 
Nếu muốn hơn để size LE là 16 MB và max LV là hơn 1TB.
• Kiểm tra lại LV vừa tạo bằng lệnh xem thông tin về LV: lvs
LV VG Attr LSize Origin Snap% Move Copy%
[…]
Music TotalStorage -wi-a- 1.00G 
Data TotalStorage -wi-a- 1.20G 
Softwares TotalStorage -wi-a- 1.40G 
[…]
Chú ý: Khi thực hiện các lệnh pvcreate, vgcreate, lvcreate có thể có thông báo liên 
quan đến CD chăng hạn: “/dev/cdrom: open failed: read-only file system”. Lí do là 
trước khi thực hiện các lệnh tạo này tất cả các block device được scan qua và ở đây 
CD drive đã được scan (nhưng không thể đọc được).
• Bước 5: Sử dụng LV
• Tạo filesystem cho LV: 
 mkfs –t ext3 /dev/TotalStorage/Softwares
 mkfs –t ext3 /dev/TotalStorage/Music
 mkfs –t ext3 /dev/TotalStorage/Data
• Mount các LV vừa tạo. Nếu cần LV được tự động mount mỗi khi hệ thống khởi 
động, sửa file /etc/fstab. 
Enable LVM
Để có thể sử dụng LVM cần cài đặt công cụ LVM và activate các volume.
Thường thì LVM đã builtin sẵn vào Linux kernel rồi nên sau khi tạo các volume PV, 
VG, LV bạn cứ thế sử dụng, không phải làm gì thêm cả.
Nếu chưa thì phải build lại kernel hoặc cài LVM như một kernel module. Trong 
trường hợp thứ hai:
• cài đặt công cụ LVM
• thêm 2 lệnh vgscan, vgchange -ay vào /etc/rc.d/rc.sysinit để activate các 
volume lúc Linux khởi động
• (nếu cẩn thận thì thêm lệnh vgchange -an vào /etc/rc.d/init.d/halt để disable 
các volume lúc tắt máy)
LVM on RAID (chưa xong)
Có thể tạo một PV từ một RAID array từ đó xây dựng nên các LV vừa có khả năng 
phục hồi dữ liệu sau thảm họa đồng thời việc quản lí lại rất linh hoạt. Thông thường 
người ta thiết lập LVM trên RAID1.
(Không thể làm việc ngược lại là tạo ra RAID array trên một LV hơn nữa điều này 
cũng không thu được lợi ích gì hơn.)
2. Xem thông tin về volume
Khái niệm PE, LE
Khái niệm PE, LE cũng tương tự như khái niệm block (sector) của HDD. Mỗi PV 
được chia thành các phần tử nhỏ (extent) gọi là Physical Extent (PE) mặc định là 4 
MB. VG là tập hợp các PE. LV được tạo ra trên VG cũng được chia thành các phần tử 
nhỏ hơn gọi là Logical Extent (LE). Địa chỉ LE được map (ánh xạ) vào địa chỉ PE. 
Cách ánh xạ là linear (tuyến tính) hay stripe (kẻ sọc) sẽ quyết định đến tốc độ đọc/ghi 
dữ liệu trên LV. 
Mặc định lvcreate chọn linear mapping. Nếu muốn dùng stripe mapping, chẳng hạn 
với 2 stripe, 4KB cho mỗi stripe: lvcreate -i2 -I4 -n Softwares -L 1.4G TotalStorage
(ảnh lấy từ:  />Hình trên là linear, hình dưới là stripe. Ở cả hai hình PV ở trên, LV ở dưới.
Địa chỉ của PE, LE được lưu trong một số bit giới hạn do đó số PE, LE là giới hạn và 
kích thước của PV, LV là giới hạn. Muốn có PV, LV có kích thước lớn thì phải tăng 
kích thước PE, LE.
Xem thông tin bằng pvdisplay, vgdisplay, lvdisplay
Ngoài lệnh pvs, vgs, lvs hiển thị vắn tắt còn có lệnh pv/vg/lvdisplay hiển thị chi tiết 
các thuộc tính của PV/VG/LV, bao gồm: 
• name, size, UUID (ID được sinh ngẫu nhiên) của volume
• trạng thái của volume
• thông tin về PE, LE: size, total, free, used (allocated)
• …
Có thể đặt lại các thuộc tính của volume thông qua lệnh pv/vg/lvchange.
Dưới đây giải thích một số trường thông tin của lệnh pvdisplay, vgdisplay, lvdisplay 
cho bài toán nêu ban đầu. 
Pvdisplay
[…]
 Physical volume 
PV Name /dev/sdc1
VG Name TotalStorage
PV Size 1016.00 MB / not usable 0 
Allocatable yes 
PE Size (KByte) 4096
Total PE 254
Free PE 254
Allocated PE 0
PV UUID jRhSdv-1TFk-RHcM-wJ1Q-o0Fv-BdqE-jwxpmL
[…]
Allocatable: đã chia PV thành các PE chưa (yes/no). Giá trị yes chỉ khi PV này được 
dùng để tạo ra một VG nào đó
PV size: nếu PV đã được dùng để tạo VG thì ngoài con số size còn có “not usable” 
để thể hiện PV này không thể dùng để tạo ra một VG khác nữa
Khi PV chưa được dùng để tạo VG thì nó có tiêu đề “ NEW Physical volume ”
Vgdisplay
 Volume group 
VG Name TotalStorage
System ID 
Format lvm2
Metadata Areas 4
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 4
Open LV 0
Max PV 0
Cur PV 4
Act PV 4
VG Size 3.96 GB
PE Size 4.00 MB
Total PE 1014
Alloc PE / Size 975 / 3.81 GB
Free PE / Size 39 / 156.00 MB
VG UUID mK8knW-hPAL-X6Uq-FROE-6Zux-Zr7A-pXdN3K
Cur LV: số LV được tạo ra từ VG này.