Quản lý phân vùng đĩa cứng trên Linux Image Quản lý phân vùng đĩa cứng trên Linux

Bài viết này giới thiệu cơ bản cách quản lý phân vùng đĩa cứng trên hệ điều hành Linux giúp các bạn có thể tự học Linux dễ dàng.

1. Khái niệm cơ bản

1.1. File system

Một file system xác định cách lưu trữ dữ liệu hoặc thông tin và truy xuất từ ​​đĩa lưu trữ. Đối với hệ điều hành Windows thì các file systems phổ biến là FAT32 và NTFS. Trên hệ điều hành Linux, các file system phổ biến là ext2, ext3, ext4, xfs, vfat, swap, ZFS và GlusterFS.

1.2. Bảng phân vùng

Phân vùng là một phần của không gian đĩa cứng. Một bảng phân vùng là một phân vùng(partition table) của đĩa chứa thông tin về kích thước và vị trí của các phân vùng trên đĩa cứng. Hai bảng phân vùng phổ biến nhất là MBR và GPT.

1.2.1. Master Boot Record(MBR)

MBR được giới thiệu lần đầu tiên với IBM PC DOS 2.0 vào năm 1983. MBR chứa thông tin về cách phân vùng logical chứa các hệ thống tệp được sắp xếp trên đĩa. Nó chứa code thực thi(bộ tải khởi động) để hoạt động như một trình tải cho hệ điều hành được cài đặt. MBR cũng chỉ hỗ trợ tối đa bốn phân vùng chính, nếu bạn muốn nhiều hơn, bạn phải tạo một trong các phân vùng chính của mình thành một phân vùng mở rộng của Wap và tạo các phân vùng hợp lý bên trong nó. MBR sử dụng 32 bit để lưu trữ địa chỉ khối và đối với các đĩa cứng có các sectors 512 byte, MBR xử lý tối đa 2TB (2^32 × 512 byte).

Master Boot Record

1.2.2. Bảng phân vùng GUID(GPT)

GPT có thể có 128 phân vùng. GPT sử dụng 64 bit cho địa chỉ khối và cho các đĩa cứng có các sectors 512 byte, kích thước tối đa là 9,4 ZB (9,4 × 10^21 byte) hoặc 8ZiB.

2. Quản lý phân vùng ổ cứng bằng tiện ích fdisk

2.1. Giới thiệu về fdisk

fdisk là tiện ích quản lý phân vùng đĩa cứng trên Linux. Sử dụng fdisk, bạn có thể xem, tạo, thay đổi kích thước, xóa, thay đổi, sao chép và di chuyển các phân vùng.

fdisk cho phép tạo tối đa bốn phân vùng chính được Linux cho phép với mỗi phân vùng yêu cầu kích thước tối thiểu 40mb.

Lưu ý: Công cụ fdisk không thể sử dụng đối với bảng phân vùng GUID(GPT) và nó không hoạt động phân vùng lớn hơn 2TB.

2.2. Sử dụng fdisk

2.2.1. Xem tất cả các phân vùng đĩa hiện có

Lệnh liệt kê danh sách phân vùng trên hệ thống đĩa của bạn và các phân vùng được sắp xếp theo tên /dev của thiết bị như /dev/sda, /dev/sdb, ... Sử dụng lệnh sau để xem tất cả các phân vùng hiện có trong hệ thống.

[root@localhost ~]# fdisk -l

Disk /dev/sda: 34.4 GB, 34359738368 bytes, 67108864 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
Disk label type: dos
Disk identifier: 0x000ac2f2

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     1050623      524288   82  Linux swap / Solaris
/dev/sda2   *     1050624    67108830    33029103+  83  Linux

Disk /dev/loop0: 713 MB, 713031680 bytes, 1392640 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
Disk label type: dos
Disk identifier: 0x7b3c6977

      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1   *           0     1392639      696320    0  Empty
/dev/loop0p2             392       12959        6284   ef  EFI (FAT-12/16/32)

Disk /dev/sdb: 17.2 GB, 17179869184 bytes, 33554432 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
Disk label type: dos
Disk identifier: 0x36c2f72f

   Device Boot      Start         End      Blocks   Id  System

2.2.2. Xem phân vùng trên một đĩa cụ thể

Khi chúng ta muốn xem tất cả các phân vùng trên một đĩa cụ thể, sử dụng lệnh sau để xem tất cả các phân vùng đĩa trên /dev/sda.

[root@localhost ~]# fdisk -l /dev/sda

Disk /dev/sda: 34.4 GB, 34359738368 bytes, 67108864 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
Disk label type: dos
Disk identifier: 0x000ac2f2

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     1050623      524288   82  Linux swap / Solaris
/dev/sda2   *     1050624    67108830    33029103+  83  Linux

2.2.3. Xem tất cả các lệnh disk

Sử dụng lệnh sau để xem tất cả các lệnh fdisk có sẵn

[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.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
Building a new DOS disklabel with disk identifier 0x36c2f72f.

Nhập m để xem danh sách tất cả các lệnh có sẵn của fdisk có thể được sử dụng trên /dev/sda.

Command (m for help): m

Đầu ra sẽ là:

Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

2.2.4. Tạo phân vùng mới

Lưu ý: Phải chọn đúng tên ổ cứng (ví dụ /dev/sdb), vì chọn sai có khả năng mất mát dữ liệu.

Để tạo phân vùng mới cuúng ta thực hiện các bước sau:

Bước 1: Nhập lệnh sau để nhập lệnh sau:

[root@localhost ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 17.2 GB, 17179869184 bytes, 33554432 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
Disk label type: dos
Disk identifier: 0x36c2f72f

   Device Boot      Start         End      Blocks   Id  System
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help):

Bước 2: Nhập n để tạo phân vùng mới sẽ nhắc bạn chỉ định cho một phân vùng chính hoặc phân vùng mở rộng. Nhập p cho phân vùng chính hoặc e cho phân vùng mở rộng.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p

Bước 3: Sau đó, bạn sẽ được nhắc nhập số của phân vùng sẽ được tạo. Bạn có thể nhấn Enter để chấp nhận mặc định.

Partition number (1-4, default 1): 1

Bước 4: Sau đó, bạn sẽ được nhắc nhập kích thước của phân vùng sẽ được tạo ví dụ dưới chúng ta sẽ tạo đĩa với size 5GB. Bạn có thể nhấn Enter để sử dụng tất cả không gian có sẵn.

First sector (2048-33554431, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-33554431, default 33554431): 10002400
Partition 1 of type Linux and of size 4 MiB is set

Bước 5: Chạy lệnh w để lưu các thay đổi.

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Tương tự chúng ta sẽ tạo phân vùng khác /dev/sdb2.

Bước 6: Kiểm tra xem có phân vùng mới chưa.

[root@localhost ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 17.2 GB, 17179869184 bytes, 33554432 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
Disk label type: dos
Disk identifier: 0x36c2f72f

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10002400     5000176+  83  Linux
/dev/sdb2        10002432    20002400     4999984+  83  Linux

Bước 7: Chúng ta có hai phân vùng mới được tạo. Sau khi tạo phân vùng phải thông báo cho hệ điều hành để cập nhật bảng phân vùng. Thực hiện lệnh sau đây:

[root@localhost ~]# partprobe /dev/sdb

Bước 8: Bảng phân vùng đã được cập nhật. Chúng ta phải định dạng phân vùng của để sử dụng. Hệ thống định dạng tệp được hỗ trợ Linux là xfs. Lệnh sau để định dạng phân vùng sdb1 với xfs.

[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=312511 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1250044, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Định dạng phân vùng sdb2 thành xfs bằng lệnh sau:

[root@localhost ~]# mkfs.xfs /dev/sdb2
meta-data=/dev/sdb2              isize=512    agcount=4, agsize=312499 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1249996, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Bước 9: Sau khi định dạng thành công phân vùng mới các phân vùng đã có thể lưu trữ dữ liệu. Chúng ta phải gắn phân vùng vào thư mục. Tạo các thư mục này bằng lệnh sau:

[root@localhost ~]# mkdir /web /data

Bước 10: Gắn /etc/sdb1 vào /web//etc/sdb2 vào /data/ bằng lệnh sau:

[root@localhost ~]# mount /dev/sdb1 /web/
[root@localhost ~]# mount /dev/sdb2 /data/

Kiểm tra sử dụng đĩa với lệnh sau:

[root@localhost ~]# df -HT
Filesystem          Type      Size  Used Avail Use% Mounted on
/dev/mapper/cl-root xfs        15G  1.4G   14G  10% /
devtmpfs            devtmpfs  952M     0  952M   0% /dev
tmpfs               tmpfs     964M     0  964M   0% /dev/shm
tmpfs               tmpfs     964M  9.3M  955M   1% /run
tmpfs               tmpfs     964M     0  964M   0% /sys/fs/cgroup
/dev/sda1           xfs       1.1G  187M  877M  18% /boot
tmpfs               tmpfs     193M     0  193M   0% /run/user/0
/dev/sdb1           xfs       5.2G   34M  5.1G   6% /data
/dev/sdb2           xfs       5.2G   37M  5.1G   6% /web

Bước 11: Các phân vùng gắn kết của chúng ta là tạm thời. Nếu hệ điều hành được khởi động lại, các thư mục được gắn kết này sẽ bị mất. Vì vậy, chúng ta cần phải gắn kết vĩnh viễn. Để thực hiện gắn kết vĩnh viễn phải nhập trong tệp /etc/fstab. Bạn có thể sử dụng trình soạn thảo vi để nhập vào:

[root@localhost ~]# vi /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon Mar 25 20:38:00 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=c76528b7-acee-4deb-bbef-0dea1e296b59 /boot                   xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0

UUID=59bff697-ab2c-416a-aeda-63c144113e9a  /web	     xfs     defaults	      0 0
UUID=5a3b14e7-6258-418c-8756-c6b7fe66c5fe  /data     xfs     defauts          0 0

Để lấy UUID của các phân vùng chúng ta thực hiện như sau:

[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="59bff697-ab2c-416a-aeda-63c144113e9a" TYPE="xfs"
[root@localhost ~]# blkid /dev/sdb2
/dev/sdb2: UUID="5a3b14e7-6258-418c-8756-c6b7fe66c5fe" TYPE="xfs"

Khi đã biết UUID và hệ thống tệp, chúng tôi có thể nhập vào tệp /etc/fstab. Các tập tin fstab có định dạng sau.

[Device] [Mount Point] [File System Type] [Options] [Dump] [Pass]

Lưu lại file /etc/fstab và chạy lệnh:

[root@localhost ~]# mount -a

Nếu có lỗi, không reboot server để tránh tình trạng server không thể khởi động. Kiểm tra cấu hình trong file /etc/fstab và chạy lại lệnh cho tới khi không có thông báo lỗi.

2.2.5. Xoá phân vùng đĩa cứng

Lưu ý: Phải chọn đúng tên ổ cứng (ví dụ /dev/sdb), vì chọn sai có khả năng mất mát dữ liệu.

Khi muốn kết hợp một số phân vùng để tạo thành một phân vùng lớn hơn bạn sẽ phải xóa các phân vùng đó. Để xóa một phân vùng có tên /dev/sdb2, chúng ta thực hiện các bước sau:

Bước 1: Khi xóa bất kỳ phân vùng nào, chúng ta phải ngắt kết nối phân vùng và xóa mục nhập /etc/fstab. Xóa mục nhập fstab bằng cách mở bằng trình chỉnh sửa vi.

[root@localhost ~]# vi /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon Mar 25 20:38:00 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=c76528b7-acee-4deb-bbef-0dea1e296b59 /boot                   xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0

UUID=59bff697-ab2c-416a-aeda-63c144113e9a  /web	     xfs     defaults	      0 0

Bước 2: Ngắt kết nối thư mục /data được gắn vào phân vùng sdb2 bằng lệnh sau:

[root@localhost ~]# umount /data

Bước 3: Xem các phân vùng đĩa hiện có, sau đó chạy lệnh fdisk /dev/sdb

[root@localhost ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 17.2 GB, 17179869184 bytes, 33554432 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
Disk label type: dos
Disk identifier: 0x36c2f72f

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      100240       49096+  83  Linux
/dev/sdb2          100352     1000324      449986+  83  Linux
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help):

Bước 4: Nhập d để xóa một phân vùng. Bạn sẽ được nhắc nhở để nhập số phân vùng trường hợp này chúng ta nhập 2 để xóa /dev/sdb2. Lưu các thay đổi bằng cách nhập w.

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

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 17.2 GB, 17179869184 bytes, 33554432 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
Disk label type: dos
Disk identifier: 0x36c2f72f

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      100240       49096+  83  Linux

3. Quản lý phân vùng ổ cứng bằng tiện ích parted

3.1. Giới thiệu về parted

parted là một chương trình để thao tác phân vùng đĩa. Nó hỗ trợ nhiều định dạng bảng phân vùng, bao gồm MS-DOS và GPT. Nó cho phép người dùng tạo, xóa, thay đổi kích thước, thu nhỏ, di chuyển và sao chép phân vùng, sắp xếp lại việc sử dụng đĩa và sao chép dữ liệu vào các đĩa cứng mới.

parted là một công cụ cấp cao hơn fdisk. Nó cho phép chúng ta tạo phân vùng khi kích thước đĩa lớn hơn 2TB nhưng fdisk không cho phép.

3.2. Cài đặt parted

parted cài đặt sẵn trên hầu hết các bản phân phối Linux. Nếu chưa được cài đặt sử dụng các lệnh sau để cài đặt:

  • Đối với bản phân phối Debian/Ubuntu:

    apt-get install parted
    
  • Đối với với bản phân phối RHEL/CentOS:

    yum install parted
    

3.3. Sử dụng tiện ích parted

3.3.1. Khởi chạy parted

Lệnh parted dưới đây sẽ chọn đĩa /dev/sda vì đây là ổ cứng đầu tiên trong hệ thống:

[root@localhost ~]# parted
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

Chúng ta có thể đi chuyễn đến các đĩa khác bằng cách sử dụng lệnh:

(parted) select /dev/sdb
Using /dev/sdb

Khi bạn muốn vào đĩa cụ thể sử dụng lệnh sau:

[root@localhost ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

3.3.2. Xem tất cả các phân vùng đĩa hiện có

Lệnh liệt kê danh sách phân vùng trên hệ thống đĩa của bạn và các phân vùng được sắp xếp theo tên /dev của thiết bị như /dev/sda, /dev/sdb, ... Chạy lệnh sau, sẽ hiển thị tất cả tên đĩa có sẵn và các thông tin của phân vùng.

[root@localhost ~]# parted -l
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1075MB  1074MB  primary  xfs          boot
 2      1075MB  17.2GB  16.1GB  primary               lvm


Error: /dev/sdb: unrecognised disk label
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

Error: /dev/sdc: unrecognised disk label
Model: VMware Virtual disk (scsi)
Disk /dev/sdc: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

Error: /dev/sdd: unrecognised disk label
Model: VMware Virtual disk (scsi)
Disk /dev/sdd: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

3.3.3. Tạo phân vùng mới

parted cho phép chúng ta tạo phân vùng chính hoặc mở rộng. Các bước thực hiện là giống nhau cho cả hai nhưng bạn phải một loại phân vùng thích hợp như primary hoặc extended khi tạo phân vùng.

Chúng ta sẽ tạo một phân vùng mới với 10GB trong ví dụ dưới đây:

Bước 1: Chọn đĩa mà phân vùng đang được tạo, trong ví dụ dưới đây /dev/sdb được phân vùng. Bạn có thể chọn đĩa theo hai cách dưới đây:

[root@localhost ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

Hoặc

[root@localhost ~]# parted
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /dev/sdb
Using /dev/sdb
(parted)

Sau đó chạy lệnh help để xem các tùy chọn khác nhau được cung cấp trong lệnh parted:

[root@localhost ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help
  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found partitions, or a
        particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END

  resizepart NUMBER END                    resize partition NUMBER
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted
(parted)

Bước 2: Chọn loại partition table cho đĩa mới bằng:

(parted) mklabel msdos

Giá trị msdos tương ứng parition table loại mbr, còn giá trị là gpt thì là partition table loại GPT

Bước 3: Đặt đơn vị tính bằng Gigabyte(GB)

(parted) unit GB

Bước 4: Bắt đầu tạo phân vùng mới với mkpart. Nhập primary cho phân vùng chính hoặc extended cho phân vùng mở rộng. Sau đó ta nhập size của phân dùng.

(parted) mkpart
Partition type?  primary/extended? primary
File system type?  [ext2]?
Start? 0.00GB
End? 10.00GB

Bước 5: Kiểm tra phân dùng vừa được tạo:

(parted) print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      0.00GB  10.0GB  10.0GB  primary

(parted) quit
Information: You may need to update /etc/fstab.

Chúng ta có thể tạo phân dùng với cú pháp sau đây:

parted [Disk Name] [mkpart] [Partition Type] [Filesystem Type] [Partition Start Size] [Partition End Size]

Tạo phân vùng 2 với size bằng 3GB:

parted /dev/sdb mkpart primary 10.0GB 13.0GB

Bước 6: Tiếp theo, thoát parted với lệnh quit. Chúng ta sẽ định dạng phân vùng mới của chúng ta trong hệ thống tệp ext4 bằng cách sử dụng mkfs chạy lệnh sau:

[root@localhost ~]# mkfs.ext4 /dev/sdb1
[root@localhost ~]# mkfs.ext4 /dev/sdb2

Bây giờ kiểm tra kết quả:

[root@localhost ~]# parted /dev/sdb print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  10.0GB  9999MB  primary  ext4
 2      10.0GB  13.0GB  3000MB  primary  ext4

Lưu ý: Chọn đúng đĩa và phân vùng khi thực hiện lệnh trên.

Bước 7: Sau khi định dạng thành công phân vùng mới các phân vùng đã có thể lưu trữ dữ liệu. Chúng ta phải gắn phân vùng vào thư mục. Tạo các thư mục này bằng lệnh sau:

[root@localhost ~]# mkdir /data /backup

Bước 8: Gắn /etc/sdb1 vào /data//etc/sdb2 vào /backup/ bằng lệnh sau:

[root@localhost ~]# mount /dev/sdb1 /data/
[root@localhost ~]# mount /dev/sdb2 /backup/

Kiểm tra sử dụng đĩa với lệnh sau:

[root@localhost ~]# df -HT
Filesystem          Type      Size  Used Avail Use% Mounted on
/dev/mapper/cl-root xfs        15G  1.1G   14G   8% /
devtmpfs            devtmpfs  954M     0  954M   0% /dev
tmpfs               tmpfs     965M     0  965M   0% /dev/shm
tmpfs               tmpfs     965M  9.0M  956M   1% /run
tmpfs               tmpfs     965M     0  965M   0% /sys/fs/cgroup
/dev/sda1           xfs       1.1G  145M  919M  14% /boot
tmpfs               tmpfs     193M     0  193M   0% /run/user/0
/dev/sdb1           ext4      9.8G   38M  9.2G   1% /data
/dev/sdb2           ext4      2.9G  8.8M  2.8G   1% /backup

Bước 9: Các phân vùng gắn kết của chúng ta là tạm thời. Nếu hệ điều hành được khởi động lại, các thư mục được gắn kết này sẽ bị mất. Vì vậy, chúng ta cần phải gắn kết vĩnh viễn. Để thực hiện gắn kết vĩnh viễn phải nhập trong tệp /etc/fstab. Bạn có thể sử dụng trình soạn thảo vi để nhập vào:

[root@localhost ~]# vi /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon Mar 25 20:38:00 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=c76528b7-acee-4deb-bbef-0dea1e296b59 /boot                   xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0

UUID=709d2fc0-699f-4b33-a973-86f4942c207d  /data	    etx4     defaults	      0 0
UUID=6a5b3985-cbff-477d-8642-0cfa36d6a76b  /backup     etx4     defauts          0 0

Để lấy UUID của các phân vùng chúng ta thực hiện như sau:

[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="709d2fc0-699f-4b33-a973-86f4942c207d" TYPE="xfs"
[root@localhost ~]# blkid /dev/sdb2
/dev/sdb2: UUID="6a5b3985-cbff-477d-8642-0cfa36d6a76b" TYPE="xfs"

Khi đã biết UUID và hệ thống tệp, chúng tôi có thể nhập vào tệp /etc/fstab. Các tập tin fstab có định dạng sau.

[Device] [Mount Point] [File System Type] [Options] [Dump] [Pass]

Lưu lại file /etc/fstab và chạy lệnh:

[root@localhost ~]# mount -a

Nếu có lỗi, không reboot server để tránh tình trạng server không thể khởi động. Kiểm tra cấu hình trong file /etc/fstab và chạy lại lệnh cho tới khi không có thông báo lỗi.

3.3.4. Tạo phân vùng mới với tất cả không gian còn lại

Lệnh dưới đây tạo một phân vùng mới bắt đầu từ 13GB và kết thúc là toàn bộ không gian còn lại của đĩa:

Chúng ta có thể tạo phân dùng với cú pháp sau đây:

parted [Disk Name] [mkpart] [Partition Type] [Filesystem Type] [Partition Start Size] [Partition End Size]

Tạo phân vùng 3 với size bằng toàn bộ không gian còn lại của đĩa:

[root@localhost ~]#  parted /dev/sdb mkpart primary 13.0GB 100%
Information: You may need to update /etc/fstab.

Bây giờ kiểm tra kết quả:

[root@localhost ~]# parted /dev/sdb print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  10.0GB  9999MB  primary  ext4
 2      10.0GB  13.0GB  3000MB  primary  ext4
 3      16.0GB  17.2GB  1180MB  primary

3.3.5. Xoá phân vùng

Lưu ý: Đối với phân vùng đã được mount trước khi xoá chúng ta phải umonut phân vùng đó. Và vào file /etc/fstab để xoá phân vùng đã gắn kết.

Chúng ta có thể xóa phân vùng không sử dụng bằng lệnh rm. Sử dụng cú pháp sau đây sẽ loại bỏ phân vùng 3 /dev/sdb3:

[root@localhost ~]# parted /dev/sdb rm 3
[root@localhost ~]# parted /dev/sdb print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
        32.3kB  1049kB  1016kB           Free Space
 1      1049kB  10.0GB  9999MB  primary  ext4
 2      10.0GB  13.0GB  3000MB  primary  ext4

3.3.6. Đặt hoặc thay đổi cờ cho phân vùng

Chúng ta có thể thay đổi cờ phân vùng bằng cách sử dụng lệnh dưới đây. Chúng ta sẽ đặt lvm cho phân vùng 2 /dev/sdb2.

[root@localhost ~]# parted /dev/sdb set 2 lvm on
Information: You may need to update /etc/fstab.

[root@localhost ~]# parted /dev/sdb print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  10.0GB  9999MB  primary  ext4
 2      10.0GB  13.0GB  3000MB  primary  ext4         lvm

3.3.7. Thay đổi kích thước phân vùng

parted cho phép người dùng thay đổi kích thước các phân vùng thành kích thước lớn và nhỏ hơn.

Chạy lệnh sau để kiểm tra phân vùng đĩa và không gian trống có sẵn, dung lượng của phân dùng hiện tại:

[root@localhost ~]# parted /dev/sdb print free
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
        32.3kB  1049kB  1016kB           Free Space
 1      1049kB  10.0GB  9999MB  primary  ext4
 2      10.0GB  13.0GB  3000MB  primary  ext4         lvm
        13.0GB  17.2GB  4180MB           Free Space
[root@localhost ~]# df -HT
Filesystem          Type      Size  Used Avail Use% Mounted on
/dev/mapper/cl-root xfs        15G  1.4G   14G  10% /
devtmpfs            devtmpfs  952M     0  952M   0% /dev
tmpfs               tmpfs     964M     0  964M   0% /dev/shm
tmpfs               tmpfs     964M  9.3M  955M   1% /run
tmpfs               tmpfs     964M     0  964M   0% /sys/fs/cgroup
/dev/sda1           xfs       1.1G  187M  877M  18% /boot
tmpfs               tmpfs     193M     0  193M   0% /run/user/0
/dev/sdb1           ext4      9.8G   38M  9.2G   1% /data
/dev/sdb2           ext4      2.9G  8.8M  2.8G   1% /backup

Cách 1: Tăng kích thước phân vùng bằng command truyền tham số trực tiếp

Chạy lệnh sau để tăng kích thước phân vùng 2 tăng 2GB (tăng end trong partition table 13GB to 15GB) chúng ta thực hiện như sau.

[root@localhost ~]# parted /dev/sdb resizepart 2 15.0GB
Information: You may need to update /etc/fstab.

Sau khi chạy lệnh trên thì parted chỉ tăng ở partition table, vì thế chúng ta phải chạy lệnh sau để resize:

  • Đối với file system (ext2, ext3, ext4): resize2fs
  • Đối với file system (xfs): xfs_growfs

Thực hiện như sau:

[root@localhost ~]# resize2fs /dev/sdb2
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/sdb2 is mounted on /backup; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/sdb2 is now 1220637 blocks long.

[root@localhost ~]# parted /dev/sdb print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  10.0GB  9999MB  primary  ext4
 2      10.0GB  15.0GB  5000MB  primary  ext4         lvm

[root@localhost ~]# df -TH
Filesystem          Type      Size  Used Avail Use% Mounted on
/dev/mapper/cl-root xfs        15G  1.4G   14G  10% /
devtmpfs            devtmpfs  952M     0  952M   0% /dev
tmpfs               tmpfs     964M     0  964M   0% /dev/shm
tmpfs               tmpfs     964M  9.3M  955M   1% /run
tmpfs               tmpfs     964M     0  964M   0% /sys/fs/cgroup
/dev/sda1           xfs       1.1G  187M  877M  18% /boot
tmpfs               tmpfs     193M     0  193M   0% /run/user/0
/dev/sdb1           ext4      9.8G   38M  9.2G   1% /data
/dev/sdb2           ext4      4.9G   12M  4.6G   1% /backup

Cách 2: Tăng kích thước phân vùng bằng interactive mode

Chạy lệnh sau để tăng kích thước phân vùng 2 lên 1GB (tăng End trong partition table 15GB to 16GB).

[root@localhost ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  10.0GB  9999MB  primary  ext4
 2      10.0GB  15.0GB  5000MB  primary  ext4         lvm

(parted) resizepart
Partition number? 2
End?  [15.0GB]? 16.0GB
(parted) print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  10.0GB  9999MB  primary  ext4
 2      10.0GB  16.0GB  6000MB  primary  ext4         lvm

(parted) quit
Information: You may need to update /etc/fstab.

Sau khi chạy lệnh trên thì parted chỉ tăng ở partition table, vì thế chúng ta phải chạy lệnh sau để resize:

  • Đối với file system (ext2, ext 3, ext 4): resize2fs
  • Đối với file system (xfs): xfs_growfs

    [root@localhost ~]# resize2fs /dev/sdb2
    resize2fs 1.42.9 (28-Dec-2013)
    Filesystem at /dev/sdb2 is mounted on /backup; on-line resizing required
    old_desc_blocks = 1, new_desc_blocks = 1
    The filesystem on /dev/sdb2 is now 1464778 blocks long.
    
    [root@localhost ~]# df -TH
    Filesystem          Type      Size  Used Avail Use% Mounted on
    /dev/mapper/cl-root xfs        15G  1.4G   14G  10% /
    devtmpfs            devtmpfs  952M     0  952M   0% /dev
    tmpfs               tmpfs     964M     0  964M   0% /dev/shm
    tmpfs               tmpfs     964M  9.3M  955M   1% /run
    tmpfs               tmpfs     964M     0  964M   0% /sys/fs/cgroup
    /dev/sda1           xfs       1.1G  187M  877M  18% /boot
    tmpfs               tmpfs     193M     0  193M   0% /run/user/0
    /dev/sdb1           ext4      9.8G   38M  9.2G   1% /data
    /dev/sdb2           ext4      5.9G   12M  5.6G   1% /backup
    

4. Các quản lý phân vùng Linux trong quá trình vận hành

4.1. Lệnh du

Lệnh du ước tính và tóm tắt sử dụng không gian tệp và thư mục.

👉 Ví dụ 1: Liệt kê kích thước của một thư mục trong đơn vị đã cho (B/KB/MB):

[root@localhost ~]# du -b /etc/
4488	/etc/pki/rpm-gpg
195745	/etc/pki/ca-trust/extracted/java
347488	/etc/pki/ca-trust/extracted/openssl
680891	/etc/pki/ca-trust/extracted/pem
1224742	/etc/pki/ca-trust/extracted
...
[root@localhost ~]# du -k /etc/
12	/etc/audit
4	/etc/kernel/postinst.d
4	/etc/kernel
0	/etc/sudoers.d
30172	/etc/
...
[root@localhost ~]# du -m /etc/
1	/etc/audit
1	/etc/kernel/postinst.d
1	/etc/kernel
0	/etc/sudoers.d
30	/etc/
...

👉 Ví dụ 2: Liệt kê các kích thước của một thư mục ở dạng có thể đọc được(tự động chọn đơn vị thích hợp cho từng kích thước):

[root@localhost ~]# du -h /etc/
12K	/etc/pki/rpm-gpg
196K	/etc/pki/ca-trust/extracted/java
344K	/etc/pki/ca-trust/extracted/openssl
672K	/etc/pki/ca-trust/extracted/pem
1.2M	/etc/pki/ca-trust/extracted
...

Hiển thị kích thước của một thư mục, theo đơn vị người có thể đọc được:

[root@localhost ~]# du -sh /etc/
30M	/etc/

4.2. Lệnh df

Lệnh df cung cấp một cái nhìn tổng quan về việc sử dụng không gian đĩa hệ thống tập tin.

👉 Ví dụ 1: Hiển thị tất cả các hệ thống tệp và sử dụng đĩa của chúng

[root@localhost ~]# df
Filesystem          1K-blocks    Used Available Use% Mounted on
/dev/mapper/cl-root  17811456 1037568  16773888   6% /
devtmpfs               488984       0    488984   0% /dev
tmpfs                  499968       0    499968   0% /dev/shm
tmpfs                  499968    6844    493124   2% /run
tmpfs                  499968       0    499968   0% /sys/fs/cgroup
/dev/sda1             1038336  141596    896740  14% /boot
tmpfs                   99996       0     99996   0% /run/user/0
/dev/sdb1            10666936   40984  10061044   1% /data
/dev/sdb2             9199252   36888   8672016   1% /backupp

👉 Ví dụ 2: Hiển thị tất cả các hệ thống tệp và việc sử dụng đĩa của chúng ở dạng người có thể đọc được

[root@localhost ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/cl-root   17G 1014M   16G   6% /
devtmpfs             478M     0  478M   0% /dev
tmpfs                489M     0  489M   0% /dev/shm
tmpfs                489M  6.7M  482M   2% /run
tmpfs                489M     0  489M   0% /sys/fs/cgroup
/dev/sda1           1014M  139M  876M  14% /boot
tmpfs                 98M     0   98M   0% /run/user/0
/dev/sdb1             11G   41M  9.6G   1% /data
/dev/sdb2            8.8G   37M  8.3G   1% /backup

Chúng ta cũng có thể hiển thị tất cả các hệ thống tệp và việc sử dụng đĩa của chúng ở dạng người có thể đọc được bằng tuỳ chọn -H. Nhưng tùy chọn -H n sẽ dùng 1000 byte khi tính(1KB=1000byte) thay vì dùng 1024 byte (1MB=1000byte) như tùy chọn -h.

[root@ngocdang ~]# df -H
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/cl-root   17G  1.4G   16G  10% /
devtmpfs             493M     0  952M   0% /dev
tmpfs                498M     0  964M   0% /dev/shm
tmpfs                498M  9.3M  955M   1% /run
tmpfs                498M     0  964M   0% /sys/fs/cgroup
/dev/sda1            1.1G  187M  877M  18% /boot
tmpfs                133M     0  133M   0% /run/user/0
/dev/sdb1             12G   42M   12G   1% /data
/dev/sdb2            9.2G   38M  8.7G   1% /backup

4.3. Lệnh fsck

Lệnh fsck kiểm tra và sửa chữa hệ thống tệp Linux.

👉 Ví dụ 1: Chúng ta có thể kiểm tra một hệ thống tập tin cụ thể /dev/sdb1 như bên dưới.

[root@localhost ~]# fsck /dev/sdb1
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/sdb1: clean, 12/686784 files, 200300/2742624 blocks

Sau đây là các mã(return code) có thể cho lệnh fsck:

  • 0: Không có lỗi
  • 1: Sửa lỗi hệ thống tập tin
  • 2: Hệ thống nên được khởi động lại
  • 4: Lỗi hệ thống tập tin không được quan tâm
  • 8: Lỗi vận hành
  • 16: Lỗi sử dụng hoặc cú pháp
  • 32: Fsck bị hủy theo yêu cầu của người dùng
  • 128: Lỗi thư viện dùng chung

👉 Ví dụ 2: Chúng ta có thể buộc fsck kiểm tra hệ thống tập tin bằng cách sử dụng tuỳ chọn -f như bên dưới.

[root@localhost ~]#  fsck /dev/sdb1 -f
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 12/686784 files (0.0% non-contiguous), 200300/2742624 blocks

4.4. Lệnh e2fsck

Lệnh e2fsck là một bộ tập hợp các công cụ để bảo trì các kiểu hệ thống tệp ext2, ext3 và ext4.

👉 Ví dụ 1: Sử dụng tùy chọn -p, lệnh e2fsck kiểm tra và tự động sửa chữa tất cả các vấn đề mà không cần nhắc bạn xác nhận.

[root@localhost ~]# e2fsck -p /dev/sdb1
/dev/sdb1: clean, 12/686784 files, 200300/2742624 blocks

👉 Ví dụ 2: Sử dụng tùy chọn -y, câu trả lời sẽ sử dụng câu trả lời yes cho tất cả các câu hỏi được yêu cầu bởi lệnh e2fsck.

[root@localhost ~]# e2fsck -y /dev/sdb1
e2fsck 1.42.9 (28-Dec-2013)
/dev/sdb1: clean, 12/686784 files, 200300/2742624 blocks

👉 Ví dụ 3: Sử dụng tùy chọn -n, lệnh e2fsck chỉ thực hiện kiểm tra không thực hiện bất kỳ thay đổi nào đối với hệ thống tập tin.

[root@localhost ~]# e2fsck -n /dev/sdb1
e2fsck 1.42.9 (28-Dec-2013)
/dev/sdb1: clean, 12/686784 files, 200300/2742624 blocks

👉 Ví dụ 4: Khi hệ thống tập tin sạch sẽ, nó sẽ không thực hiện bất kỳ kiểm tra nào. Tuy nhiên, nếu bạn muốn buộc kiểm tra hệ thống tập tin, ngay cả khi nó sạch, hãy sử dụng tùy chọn -f như bên dưới.

[root@localhost ~]# e2fsck -f /dev/sdb1
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 12/686784 files (0.0% non-contiguous), 200300/2742624 blocks

4.5. Lệnh mke2fs

Lệnh mke2fs để tạo một hệ thống tập tin ext2/ext3/ext4.

👉 Ví dụ 1: Để tạo một hệ thống tập tin trên thiết bị

[root@localhost ~]# mke2fs  /dev/sdb2
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
593344 inodes, 2369838 blocks
118491 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2428502016
73 block groups
32768 blocks per group, 32768 fragments per group
8128 inodes per group
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done

👉 Ví dụ 2: Để chỉ định kích thước khối theo byte

[root@localhost ~]# mke2fs -b 1024 /dev/sdb2
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
592896 inodes, 9479352 blocks
473967 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=76808192
1158 block groups
8192 blocks per group, 8192 fragments per group
512 inodes per group
Superblock backups stored on blocks:
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553,
	1024001, 1990657, 2809857, 5120001, 5971969

Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done

👉 Ví dụ 3: Để kiểm tra các thiết bị cho các khối xấu

[root@localhost ~]# mke2fs -c /dev/sdb2
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
593344 inodes, 2369838 blocks
118491 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2428502016
73 block groups
32768 blocks per group, 32768 fragments per group
8128 inodes per group
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Checking for bad blocks (read-only test): done
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done

4.6. Lệnh tune2fs

Lệnh tune2fs được sử dụng để sửa đổi các tham số có thể điều chỉnh trên các hệ thống tệp kiểu ext2, ext3 và ext4.

👉 Ví dụ 1: Sử dụng tùy chọn -l như hiển thị bên dưới, sẽ liệt kê tất cả các tham số và giá trị của nó.

[root@localhost ~]#  tune2fs -l /dev/sdb1
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          83c642e8-5faf-4f61-bc96-8094c3071041
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              686784
Block count:              2742624
Reserved block count:     137131
Free blocks:              2692816
Free inodes:              686773
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      669
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8176
Inode blocks per group:   511
Filesystem created:       Sat Apr  6 16:56:57 2019
Last mount time:          n/a
Last write time:          Sat Apr  6 16:57:04 2019
Mount count:              0
Maximum mount count:      -1
Last checked:             Sat Apr  6 16:56:57 2019
Check interval:           0 (<none>)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Default directory hash:   half_md4
Directory Hash Seed:      14dc4016-46ac-4987-bc1a-6ac0c4ece456

👉 Ví dụ 2: Chuyển đổi loại hệ thống tập tin

Bạn có thể sử dụng tùy chọn -j để chuyển đổi hệ thống tệp ext2 sang ext3 như bên dưới.

tune2fs -j /dev/sdb1

Lưu ý: Chỉ thực hiện lệnh trên trên hệ thống kiểm tra cho mục đích thử nghiệm.

Bạn có thể sử dụng tùy chọn -O để chuyển đổi hệ thống tệp ext3 sang ext4 như bên dưới.

tune2fs -O extents,uninit_bg,dir_index /dev/sda2

Lưu ý: Chỉ thực hiện lệnh trên trên hệ thống kiểm tra cho mục đích thử nghiệm. Bạn có thể làm hỏng hệ thống tập tin của mình.

4.7. Lệnh xfs_repair

Lệnh xfs_repair sửa chữa một hệ thống tập tin xfs.

Kiểm tra tính nhất quán hệ thống tệp và sửa chữa xfs có thể được thực hiện bằng lệnh xfs_repair. Bạn có thể chạy lệnh với tuỳ chọn -n để nó không sửa đổi bất cứ thứ gì trên hệ thống tập tin. Nó sẽ chỉ quét và báo cáo những sửa đổi sẽ được thực hiện.

[root@localhost ~]# xfs_repair -n /dev/sdb1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan (but don't clear) agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
No modify flag set, skipping phase 5
Phase 6 - check inode connectivity...
        - traversing filesystem ...
        - traversal finished ...
        - moving disconnected inodes to lost+found ...
Phase 7 - verify link counts...
No modify flag set, skipping filesystem flush and exiting.

4.8. Lệnh xfs_fsr

Lệnh xfs_fsr sắp xếp lại hệ thống tập tin xfs.

Lệnh xfs_fsr sắp xếp lại tất cả các tệp thông thường trong tất cả các hệ thống tệp được gắn kết.

[root@localhost ~]# xfs_fsr /dev/sdb1
/data start inode=0

Bạn có thể chỉ định thời gian nó chạy theo tùy chọn -t cú pháp sau:

xfs_fsr -t [time]

Lệnh xfs_fsr có một tính năng ghi lại hệ thống tệp nơi nó rời khỏi lần chạy trước, vì vậy nó có thể bắt đầu ở đó vào lần tiếp theo. Thông tin này được lưu trữ trong tệp /var/tmp/.fsrlast_xfs. Nếu thông tin tìm thấy ở đây không nhất quán hoặc lỗi thời, nó sẽ bị bỏ qua và tổ chức lại bắt đầu từ đầu hoặc hệ thống tập tin đầu tiên được tìm thấy trong /etc/mtab.

4.9. Lệnh xfs_db

Lệnh xfs_db gỡ lỗi hệ thống tập tin xfs

Chạy lệnh xfs_db trên đường dẫn thiết bị và khi bạn đã nhập xfs_db dấu nhắc, hãy chạy lệnh version.

[root@localhost ~]# xfs_db /dev/sdb1
xfs_db> version [feature | versionnum features2]
versionnum [0xb4a5+0x18a] = V5,NLINK,DIRV2,ALIGN,LOGV2,EXTFLG,MOREBITS,ATTR2,LAZYSBCOUNT,PROJID32BIT,CRC,FTYPE
xfs_db> quit

Lệnh xfs_db thường được sử dụng để kiểm tra hệ thống tệp xfs. Lệnh version được sử dụng để kích hoạt các tính năng trong hệ thống tập tin.

5. Lời kết

Qua bài trên, giúp cho chúng ta biết cách chia phân vùng đĩa cứng chuẩn MBR lẫn GPT bằng việc sử dụng tiện ích fdisk hoặc tiện ích parted trên hệ điều hành Linux, cách quản lý các phân vùng này trong quá trình vẫn hành và các lệnh repair lại phân vùng khi gặp lỗi trong quá trình sử dụng.