9 Lệnh Kiểm Tra Dung Lượng Ổ Cứng HDD Trên Linux
Trong bài viết này mình sẽ giới thiệu tới các bạn các câu lệnh kiểm tra dung lượng ổ cứng hdd cho các bạn mới và các bạn đã sử dụng linux lâu năm.
fdisk
Đây là câu lệnh có thể hiển thị chi tiết các partitions trên một ổ đĩa, câu lệnh thường được sử dụng để kiểm tra các partition, nhưng nhượt điểm của câu lệnh này không hiển thị dung lượng của từng partition. Sau đây là ví dụ về cậu lệnh fdisk
$ sudo fdisk -l Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 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 identifier: 0x30093008 Device Boot Start End Blocks Id System /dev/sda1 * 63 146801969 73400953+ 7 HPFS/NTFS/exFAT /dev/sda2 146802031 976771071 414984520+ f W95 Ext'd (LBA) /dev/sda5 146802033 351614654 102406311 7 HPFS/NTFS/exFAT /dev/sda6 351614718 556427339 102406311 83 Linux /dev/sda7 556429312 560427007 1998848 82 Linux swap / Solaris /dev/sda8 560429056 976771071 208171008 83 Linux Disk /dev/sdb: 4048 MB, 4048551936 bytes 54 heads, 9 sectors/track, 16270 cylinders, total 7907328 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 identifier: 0x0001135d Device Boot Start End Blocks Id System /dev/sdb1 * 2048 7907327 3952640 b W95 FAT32
sfdisk
Câu lệnh sfdisk cũng tương tự như fdisk nhưng nó có nhiều tính năng hơn, nó có khả năng thể hiện dung lượng của từng partition và tính bằng đơn vị Mb
$ sudo sfdisk -l -uM Disk /dev/sda: 60801 cylinders, 255 heads, 63 sectors/track Warning: extended partition does not start at a cylinder boundary. DOS and Linux will interpret the contents differently. Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End MiB #blocks Id System /dev/sda1 * 0+ 71680- 71681- 73400953+ 7 HPFS/NTFS/exFAT /dev/sda2 71680+ 476938 405259- 414984520+ f W95 Ext'd (LBA) /dev/sda3 0 - 0 0 0 Empty /dev/sda4 0 - 0 0 0 Empty /dev/sda5 71680+ 171686- 100007- 102406311 7 HPFS/NTFS/exFAT /dev/sda6 171686+ 271693- 100007- 102406311 83 Linux /dev/sda7 271694 273645 1952 1998848 82 Linux swap / Solaris /dev/sda8 273647 476938 203292 208171008 83 Linux Disk /dev/sdb: 1020 cylinders, 125 heads, 62 sectors/track Warning: The partition table looks like it was made for C/H/S=*/54/9 (instead of 1020/125/62). For this listing I'll assume that geometry. Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End MiB #blocks Id System /dev/sdb1 * 1 3860 3860 3952640 b W95 FAT32 start: (c,h,s) expected (4,11,6) found (0,32,33) end: (c,h,s) expected (1023,53,9) found (492,53,9) /dev/sdb2 0 - 0 0 0 Empty /dev/sdb3 0 - 0 0 0 Empty /dev/sdb4 0 - 0 0 0 Empty
cfdisk
Là câu lệnh của phân vùng mở rộng trong linux, nó có giao diện dành cho người dùng tương tác dựa trên kernel của linux. Nó có các tính năng cao hơn sfdisk ở chỗ nó có thể chỉnh sửa hoặc tạo ra các partition.
Dưới đây là một ví dụ về cách sử dụng cfdisk để liệt kê các phân vùng.
Nó có thể làm việc với một phân vùng tại một thời điểm cụ thể, bạn có thể xem chi tiết của một ổ đĩa
$ sudo cfdisk /dev/sdb
parted
đây là một câu lệnh để vượt ra giới hạn, có thể điều chỉnh thêm các partiton nếu cần thiết. Nó có thể liệt kê chi tiết các partion, dưới đây là ví dụ cụ thể về câu lệnh parted
$ sudo parted -l Model: ATA ST3500418AS (scsi) Disk /dev/sda: 500GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 75.2GB 75.2GB primary ntfs boot 2 75.2GB 500GB 425GB extended lba 5 75.2GB 180GB 105GB logical ntfs 6 180GB 285GB 105GB logical ext4 7 285GB 287GB 2047MB logical linux-swap(v1) 8 287GB 500GB 213GB logical ext4 Model: Sony Storage Media (scsi) Disk /dev/sdb: 4049MB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 4049MB 4048MB primary fat32 boot
df
đây là câu lệnh thường được dùng nhất trên hệ thống để kiểm tra dung lượng hdd, nó không hiển thị chi tiết các phân vùng nhưng nó có thể hiện thị chi tiết các thư mục được liên kết, nó có nhiều option các bạn có thể tự nghiên cứu nhé
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda6 97G 43G 49G 48% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 3.9G 8.0K 3.9G 1% /dev tmpfs 799M 1.7M 797M 1% /run none 5.0M 0 5.0M 0% /run/lock none 3.9G 12M 3.9G 1% /run/shm none 100M 20K 100M 1% /run/user /dev/sda8 196G 154G 33G 83% /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1 /dev/sda5 98G 37G 62G 38% /media/4668484A68483B47
ở ví dụ trên, các thiết bị được bắt đầu bằng /dev mới là các thiết bị thực tế nên chúng ta cần lọc ra để xem cho dễ hơn
$ df -h | grep ^/dev /dev/sda6 97G 43G 49G 48% / /dev/sda8 196G 154G 33G 83% /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1 /dev/sda5 98G 37G 62G 38% /media/4668484A68483B47
để xem chi tiết các phân vùng thật và kiểu của phần vùng ta dùng câu lệnh như sau:
$ df -h --output=source,fstype,size,used,avail,pcent,target -x tmpfs -x devtmpfs Filesystem Type Size Used Avail Use% Mounted on /dev/sda6 ext4 97G 43G 49G 48% / /dev/sda8 ext4 196G 154G 33G 83% /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1 /dev/sda5 fuseblk 98G 37G 62G 38% /media/4668484A68483B47
chú ý: nó chỉ hiện thị các phân vùng được liên kết chứ không hẳn là tất cả đều đã được hiển thị trong câu lệnh df này nhé.
pydf
đây là một phiên bản cải tiến từ fd, nó được viết từ python, nó có nhiều ưu điểm hơn df ở chỗ nó có thể hiển thị tất cả các partition và dễ đọc, nhưng nó chỉ hiển thị các tập tin được liên kết thôi.
$ pydf Filesystem Size Used Avail Use% Mounted on /dev/sda6 96G 43G 48G 44.7 [####.....] / /dev/sda8 195G 153G 32G 78.4 [#######..] /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1 /dev/sda5 98G 36G 61G 37.1 [###......] /media/4668484A68483B47
lsblk
nó liệt kê ra các block bao gồm các partition và ổ đĩa quang, nó thể hiện dung lượng tổng kích thước của các partition và block và các phân vùng được liên kết nếu có. Nó không trả về dung lượng còn trống và dung lượng đã sử dụng
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 70G 0 part ├─sda2 8:2 0 1K 0 part ├─sda5 8:5 0 97.7G 0 part /media/4668484A68483B47 ├─sda6 8:6 0 97.7G 0 part / ├─sda7 8:7 0 1.9G 0 part [SWAP] └─sda8 8:8 0 198.5G 0 part /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1 sdb 8:16 1 3.8G 0 disk └─sdb1 8:17 1 3.8G 0 part sr0 11:0 1 1024M 0 rom
Nếu câu lệnh trả về mà không có bất kỳ MOUNTPOINT nào thì nghĩa là không có bất kỳ file hệ thống nào được mout, đối với cd/dvd nghĩa là không có bất kỳ ổ đĩa nào tồn tại trong hệ thống.
Câu lệnh nó hiển thị về thông tin của mỗi thiết bị cũng như tên, đời của thiết bị.
blkid
câu lệnh trên trả về thông tin từng block của partition ( các partiton và các không gian lưu trữ media ) các thuộc tính giống như là uuid và loại file. Nó không trả về dung lượng của các partition
$ sudo blkid /dev/sda1: UUID="5E38BE8B38BE6227" TYPE="ntfs" /dev/sda5: UUID="4668484A68483B47" TYPE="ntfs" /dev/sda6: UUID="6fa5a72a-ba26-4588-a103-74bb6b33a763" TYPE="ext4" /dev/sda7: UUID="94443023-34a1-4428-8f65-2fb02e571dae" TYPE="swap" /dev/sda8: UUID="13f35f59-f023-4d98-b06f-9dfaebefd6c1" TYPE="ext4" /dev/sdb1: UUID="08D1-8024" TYPE="vfat"
hwinfo
đây là câu lệnh trả về các thông tin chính của phần cứng, nó được dùng để trả về thông tin của các ổ đĩa và danh sách các partition, tuy nhiên nó không đưa ra thông tin chi tiết về từng partiton như các câu lệnh ở trên.
$ hwinfo --block --short disk: /dev/sda ST3500418AS /dev/sdb Sony Storage Media partition: /dev/sda1 Partition /dev/sda2 Partition /dev/sda5 Partition /dev/sda6 Partition /dev/sda7 Partition /dev/sda8 Partition /dev/sdb1 Partition cdrom: /dev/sr0 SONY DVD RW DRU-190A
Tóm Lược:
Tất cả các câu lệnh trên trả về thông tin tóm tắt về các phần cứng, về các phân vùng khác nhau, hệ thống tập tin, dung lượng tổng. pydf và df nó giới hạn hiển thị, chỉ hiển thị các file hệ thống được gắn kết ( mount ).
fdisk và sfdisk thì cho chúng ta rất nhiều thông tin. cfdisk thì chỉ hiện thị một phân vùng tại một thời điểm nhất định.