Hướng dẫn tạo phân vùng ổ cứng trên Server Linux
Phân vùng ổ cứng là gì? Phân loại
Phân vùng ổ cứng (Disk Partitioning) là quá trình chia ổ cứng vật lý thành nhiều phần độc lập.
Mục đích của việc phân vùng là giúp cả OS và User quản lý dữ liệu một cách tốt hơn. Ta có thể tách hệ điều hành, các dịch vụ và dữ liệu người dùng ra để quản lý tốt hơn, khi mà OS bị lỗi thì các dữ liệu vẫn có thể an toàn.
Ngoài ra mỗi phân vùng đều có thể cài một OS riêng
* Đối với ổ cứng MBR:
Có 3 loại phân vùng lần lượt là:
- Primary partition (phân vùng chính): là phân vùng có thể lưu trữ được cả hệ điều hành và những dữ liệu khác. Trên một ổ cứng chỉ có thể tạo tối đa 4 phân vùng dạng primary.
- Extended partition (phân vùng mở rộng): được sử dụng để tạo Logical Partition, ta buộc phải sử dụng 1 trong 4 phân vùng Primary để tạo Extended Partition
- Logical partition (phân vùng logic): dùng để chứa data và OS phụ, có thể tối đa tạo được 23 phân vùng logic
* Đối với ổ cứng GPT: Không giới hạn phân vùng chính, không cần phân vùng mở rộng và logic
Hướng dẫn tạo phân vùng ổ cứng
Tên ổ cứng sẽ được đặt theo chữ cái ví dụ như vda, vdb còn tên phân vùng sẽ từ 1 -> 4 ví dụ vda1, vda2, vda3, vda4, còn phân vùng logic sẽ luôn bắt đầu từ vda5 -> vda28
Đầu tiên ta sẽ xem các thông tin về ổ cứng có trên hệ thống
fdisk -l
Device Start End Sectors Size Type
/dev/vda1 227328 83886046 83658719 39.9G Linux filesystem
/dev/vda14 2048 10239 8192 4M BIOS boot
/dev/vda15 10240 227327 217088 106M EFI System
Partition table entries are not in disk order.
Disk /dev/vdb: 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
Đơn giản hơn ta có thể sử dụng lsblk
Như ta thấy datadisk vdb chưa có phân vùng nào nên giờ ta sẽ tạo phân vùng mới cho ổ cứng này:
fdisk /dev/vdb
Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xda36f756.
Command (m for help): m
Ta chọn m để xem các option có thể chọn, cụ thể là:
Help:
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag
Generic
d delete a partition #xóa một phân vùng
F list free unpartitioned space #liệt kê dung lượng chưa được phân vùng
l list known partition types #liệt kê các loại phân vùng đã biết
n add a new partition #thêm phân vùng mới
p print the partition table
t change a partition type #thay đổi loại phân vùng
v verify the partition table
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Save & Exit
w write table to disk and exit #lưu lại các thay đổi và thoát
q quit without saving changes #thoát mà không lưu lại các thay đổi
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
Tiếp ta chọn n để thêm phân vùng mới:
Command (m for help): n
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Ta chọn p để tạo phân vùng chính hoặc e để tạo phân vùng mở rộng
Partition number (1-4, default 1):
First sector (2048-41943039, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): +10G
Created a new partition 1 of type 'Linux' and of size 10 GiB.
Ta đặt tên cho phân vùng này từ 1 đến 4, nếu ta enter thì mặc định là 1
Ta chọn Sector đầu tiên cho phân vùng, nếu Enter thì mặc định là 2048
Ta chọn Sector cuối cùng, nếu Enter thì mặc định sẽ là sector cuối cùng của ổ cứng
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Sau đó ta sẽ chọn w để lưu lại
Ta kiểm tra lại các phân vùng
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 89.4M 1 loop /snap/lxd/31333
loop2 7:2 0 63.7M 1 loop /snap/core20/2496
loop3 7:3 0 111.9M 1 loop /snap/lxd/24322
loop4 7:4 0 40.9M 1 loop /snap/snapd/20290
loop5 7:5 0 44.4M 1 loop /snap/snapd/23545
loop6 7:6 0 63.7M 1 loop /snap/core20/2434
vda 252:0 0 40G 0 disk
├─vda1 252:1 0 39.9G 0 part /
├─vda14 252:14 0 4M 0 part
└─vda15 252:15 0 106M 0 part /boot/efi
vdb 252:16 0 20G 0 disk
└─vdb1 252:17 0 10G 0 part
Như vậy là đã có vdb1