Lỗi không chia được ổ cứng in linux năm 2024

Ở bài này sẽ mô tả về sử dụng hard disk trên Linux

Partition là gì?

Có thể chia ổ cứng (hard disk) ra thành nhiều các phân vùng logic (partition) và mỗi partition đó sẽ được sử dụng như 1 hard disk. Nếu phân chia partition theo mục đích chẳng hạn như tách partition chuyên dụng cho data, partition chuyên dụng cho system…thì sẽ có nhiều lợi điểm khác nhau như việc backup và update system sẽ trở nên dễ dàng hơn, thậm chí khi data bị overflow thì cũng không dẫn đến kết nối hệ thống bị đình chỉ, hoặc có thể cứu được data trong trường hợp hệ thống bị crash… Điểm bất lợi là việc phải tính toán trước khả năng disk (kích thước) cho cấu trúc hệ thống thì khá là phức tạp và cả việc cập nhật sau đó cũng là vấn đề khó khăn. Trên Linux để tạo các partition trên ổ cứng thì có thể sử dụng lệnh fdisk

File system là gì?

File system là cơ chế để quản lý các thuộc tính dữ liệu như file name, date update… được lưu trữ trong vùng nhớ của ổ cứng. File system có nhiều loại khác nhau, chẳng hạn ở Windows thì có định dạng FAT32 và NTFS, trên Linux thì có ext2, ext3, gần đây thì có ext4, trên CD thì có iso9660 và rất nhiều loại định dạng dữ liệu khác nữa. Tuỳ thuộc vào file hệ thống được sử dụng mà kích thước tối đa của 1 file, số ký tự tên file, hiệu quả truy cập, security, file compression… có rất nhiều chức năng khác nhau nhưng khi sử dụng hard disk thì tối thiểu trên partition cần thiết phải tạo các file hệ thống. Ở Linux, để tạo các file hệ thống trên partition thì có thể dùng command mkfs

Mount là gì?

Cấu trúc của directory trong Linux được gọi là /root directory tương tự như cấu trúc tree bắt đầu từ trên top(root) của directory. Khi thiết bị lưu trữ kết nối với máy tính thì chúng ta sẽ làm cho thiết bị lưu trữ này thực hiện chức năng như 1 directory nằm trên cấu trúc tree của directory hệ thống. Mount tức là việc thiết bị lưu trữ kết nối với máy đăng ký truy cập vào 1 điểm trên cấu trúc tree directory này. Để mount file system thì sử dụng command mount

***Note Khi mount disk vào bên trong directory đã có content thì content cũng sẽ bị replace cho dù directory đã được mount vào là /directory, lúc này thì sẽ không thể đọc hoặc ghi nội dung bên trong directory trước đó được nữa.

***Note Về cấu trúc directory của Linux

Cấu trúc directory của Linux được tạo ra theo chuẩn được gọi là FHS(Filesystem Hierarchy Standard), cấu trúc này được mô tả như dưới đây.

Lỗi không chia được ổ cứng in linux năm 2024

Root directory

Ở directory nào đặt vào những file như thế nào để chuẩn hoá, rất nhiều các bản phân phối mà file đã được sắp xếp sẵn theo chuẩn. Để biết được với mỗi directory thì sẽ đặt những file như thế nào thì có thể xem mô tả dưới đây.

/usr các loại file mà user install độc lập /có 1 cấu trúc tương tự trực tiếp bên dưới /bin các chương trình của general user /boot các file liên quan đến khởi động hệ thống /dev directory, device file /etc file setting /lib các library common được sử dụng bởi nhiều chương trình trong hệ thống /var các data thay đổi thường xuyên (log, db, web …) /sbin chương trình quản lý system /tmp file tạm

Tham khảo nguồn

Trên các hệ thống hạ tầng cloud, sau khi sizing (bổ sung dung lượng) ổ đĩa ảo (volume), ta cần phải thực hiện thêm một vài lệnh đặc thù trên từng phân vùng ổ đĩa (partition) để hệ thống thực sự nhận diện được dung lượng mới thêm.

Chú ý: Trước khi cập nhật dụng lượng trên ổ đĩa có chứa dữ liệu quan trọng thì ta nên backup dữ liệu hoặc tạo snapshot cho ổ đĩa đó trên các hệ thống cloud mà có hỗ trợ tính năng snapshot.

Các bước cơ bản

Sau đó, thực hiện cập nhật dung lượng phân vùng theo các bước sau:

  1. Việc tăng thêm dung lượng cho ổ đĩa ảo không đồng thời tăng dung lượng cho phân vùng bên trong nó. Do đó, ta cần phải kiểm tra xem phân vùng cần tăng thêm dung lượng có nằm bên trong ổ đĩa vừa được bổ sung dung lượng hay không.
  2. Thực hiện các câu lệnh đặc thù để tăng dung lượng cho các phân vùng dựa trên định dạng của phân vùng đó.

Nội dung bài viết hiện tại chỉ hướng dẫn cách tăng dung lượng phân vùng cho các sử dụng định dạng: xfs, ext4 trên các máy chủ ảo của AWS, GCP, Azure hoặc VMWare.

Đĩa cứng là thành phần chính của hệ thống để lưu trữ dữ liệu vĩnh viễn. Bạn có thể cài đặt một hoặc nhiều đĩa để lưu trữ dữ liệu và một số lệnh được sử dụng để liệt kê chi tiết đĩa và phân vùng đĩa trên máy tính của bạn. Đối với người quản trị hệ thống, việc kiểm tra xem các ổ đĩa có hoạt động bình thường hay không là một mối quan tâm lớn. Trong nhiều trường hợp, bạn sẽ phải liệt kê tất cả các ổ đĩa có sẵn trên máy tính của mình cùng với kích thước của chúng để đảm bảo rằng chúng không bị hết dung lượng. Nếu chúng hết dung lượng, về cơ bản, máy chủ của bạn có thể ngừng hoạt động, ngăn tất cả người dùng truy cập vào nó. Trong hướng dẫn này, chúng ta sẽ xem các lệnh có thể dễ dàng giúp bạn liệt kê các ổ đĩa có sẵn trên máy Linux của mình.

Điều kiện để có thể thực hiện các lệnh liệt kê ổ đĩa trong Linux

Đối với một số lệnh được sử dụng trong hướng dẫn này, ngoài trang bị một máy chủ Linux hoặc có thể mua VPS Linux, bạn sẽ cần có quyền quản trị viên để có được đầu ra đầy đủ của lệnh. Để kiểm tra xem bạn có quyền sudo hay không, bạn có thể thực thi lệnh “sudo” bằng “-l”:

$ sudo -l

Nếu bạn thấy các mục trùng khớp, điều đó có nghĩa bạn là tài khoản đặc quyền trên máy này.

Lỗi không chia được ổ cứng in linux năm 2024

Kiểm tra đặc quyền sudo để liệt kê ổ đĩa trong Linux

8 lệnh hữu ích để liệt kê các ổ đĩa trong Linux

1. lsblk

lsblk (list block devices) được sử dụng để liệt kê thông tin của tất cả các thiết bị khối có sẵn, chẳng hạn như đĩa cứng và ổ đĩa flash. Chỉ cần gõ lệnh lsblk sẽ liệt kê tất cả các thiết bị khối ở dạng cây. Đây là một cách tiện dụng và đơn giản để liệt kê các đĩa.

lsblk

Output:

sda      8:0    0 238.5G  0 disk   
 ├─sda1   8:1    0   529M  0 part   
 ├─sda2   8:2    0   100M  0 part /boot/efi  
 ├─sda3   8:3    0    16M  0 part   
 ├─sda4   8:4    0 165.8G  0 part   
 ├─sda5   8:5    0    70G  0 part /  
 └─sda6   8:6    0     2G  0 part [SWAP]  
 zram0  252:0    0     8G  0 disk [SWAP]

2. df -h

Lệnh df được sử dụng để liệt kê toàn bộ dung lượng ổ đĩa có sẵn. Lệnh df mặc định in tên thiết bị, tổng số khối, dung lượng ổ đĩa đã sử dụng, dung lượng đĩa trống, phần trăm dung lượng đã sử dụng, điểm gắn kết hệ thống tệp và cũng in các hệ thống tệp được gắn từ xa như NFS. Lệnh df -h liệt kê dung lượng trống của tất cả các đĩa ở dạng người có thể đọc được.

sudo df -h

Output:

Filesystem      Size  Used Avail Use% Mounted on  
 devtmpfs        5.8G     0  5.8G   0% /dev  
 tmpfs           5.8G   90M  5.7G   2% /dev/shm  
 tmpfs           2.4G   11M  2.4G   1% /run  
 tmpfs           4.0M     0  4.0M   0% /sys/fs/cgroup  
 /dev/sda5        69G   62G  3.1G  96% /  
 tmpfs           5.8G  4.7M  5.8G   1% /tmp  
/dev/sda2        96M   41M   56M  43% /boot/efi  
 tmpfs           1.2G  200K  1.2G   1% /run/user/1000

Một lệnh thay thế cho df -h là findmnt –df cho kết quả tương tự.

3. fdisk -l

Lệnh fdisk là một tiện ích dựa trên văn bản được sử dụng để quản lý các phân vùng đĩa. Sử dụng fdisk bạn có thể liệt kê các phân vùng đĩa, tạo phân vùng mới, xóa phân vùng đĩa cứng hiện có và xem kích thước của phân vùng. Sử dụng fdisk -l để xem tất cả các phân vùng đĩa có sẵn:

sudo fdisk -l

Output:

lsblk

8

lsblk

9

4. parted -l

Parted là một công cụ hữu ích và mạnh mẽ được sử dụng để quản lý các phân vùng đĩa cứng từ dòng lệnh như danh sách, tạo, thu nhỏ, xóa, tìm và cứu các phân vùng đĩa. Với lệnh parted bạn có thể dễ dàng quản lý tất cả các phân vùng đĩa cứng. Lệnh parted -l sẽ liệt kê bố cục phân vùng đĩa trên tất cả các thiết bị khối:

sudo parted -l

Output:

Model: ATA SK hynix SC300B (scsi)  
 Disk /dev/sda: 256GB  
 Sector size (logical/physical): 512B/4096B  
 Partition Table: gpt  
 Disk Flags:   
 Number  Start   End    Size    File system     Name                          Flags  
  1      1049kB  556MB  555MB   ntfs            Basic data partition          hidden, diag  
  2      556MB   661MB  105MB   fat32           EFI System Partition          boot, esp  
  3      661MB   677MB  16.8MB                  Microsoft reserved partition  msftres  
  4      677MB   179GB  178GB   ntfs            Basic data partition          msftdata  
  5      179GB   254GB  75.2GB  ext4  
  6      254GB   256GB  2147MB  linux-swap(v1)                                swap  
 Model: Unknown (unknown)  
 Disk /dev/zram0: 8590MB  
 Sector size (logical/physical): 4096B/4096B  
 Partition Table: loop  
 Disk Flags:   
 Number  Start  End     Size    File system     Flags  
  1      0.00B  8590MB  8590MB  linux-swap(v1)

5. cfdisk

Cfdisk hơi khác so với các lệnh trên, nó cung cấp chế độ xem đồ họa trong giao diện đầu cuối dựa trên văn bản để quản lý đĩa. Sử dụng cfdisk bạn có thể liệt kê, tạo, xóa và sửa đổi các phân vùng trên thiết bị đĩa:

sudo cfdisk

Output:

                                            Disk: /dev/sda                        Size: 238.47 GiB, 256060514304 bytes, 500118192 sectors                      Label: gpt, identifier: FF57C955-D98A-49C4-B1ED-835A44F2A0A4 Device                   Start            End        Sectors        Size Type  
        /dev/sda1                 2048        1085439        1083392        529M Windows recovery environment       
         /dev/sda2              1085440        1290239         204800        100M EFI System  
         /dev/sda3              1290240        1323007          32768         16M Microsoft reserved  
         /dev/sda4              1323008    349122559      347799552      165.8G Microsoft basic data  
         /dev/sda5            349122560    495923199      146800640         70G Linux filesystem  
         /dev/sda6            495923200    500117503        4194304          2G Linux swap      
 ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────┐  
  │  Partition name: Basic data partition                                                                    │  
  │  Partition UUID: E73F9719-F144-42A8-87BC-862FB470828B                                                    │  
  │  Partition type: Windows recovery environment (DE94BBA4-06D1-4D40-A16A-BFD50179D6AC)                     │  
  │    Attributes: RequiredPartition                                                                       │  
  │ Filesystem UUID: 8C0A62C30A62A9C2                                                                        │  
  │Filesystem LABEL: Recovery                                                                                │  
  │    Filesystem: ntfs                                                                                    │  
  └──────────────────────────────────────────────────────────────────────────────────────────────────────────┘  
               [ Delete ]  [ Resize ]  [  Quit  ]  [  Type  ]  [  Help  ]  [  Write ]  [  Dump  ]

Lỗi không chia được ổ cứng in linux năm 2024

Lệnh cfdisk có thể thực hiện đa dạng chức năng trên các phân vùng đĩa

6. sfdisk -l

Sfdisk là một trình soạn thảo bảng phân vùng. Nó có thể liệt kê các phân vùng trên thiết bị, liệt kê kích thước của phân vùng, kiểm tra các phân vùng trên thiết bị và chuẩn bị thiết bị. Nó không được thiết kế cho các phân vùng lớn.sfdisk -l sẽ liệt kê các phân vùng của đĩa:

lsblk

0

Output:

lsblk

1

7. ls -l /dev/disk/by-id

Lệnh ls là một lệnh rất đơn giản nhưng mạnh mẽ được sử dụng để liệt kê các tập tin và thư mục. Chúng ta có thể liệt kê các đĩa bằng cách liệt kê thư mục /dev/disk/by-id.

lsblk

2

Output:

lsblk

3

\=>> Lệnh lsusb trong Linux (Hiển thị chi tiết thiết bị USB)

8. lshw

lshw là một công cụ Linux được sử dụng để tạo thông tin chi tiết về cấu hình phần cứng của hệ thống. Sử dụng -class disk để liệt kê thông tin đĩa.