如何在 Linux 命令行中列出磁盤

Linux 系統管理員一般會列出磁盤來檢查整個磁盤空間。 列出磁盤還有助於查看連接到系統、分區和磁盤文件系統的磁盤。

在 Linux 系統中,有多種方法可以列出所有硬盤。 在本教程中,我們將學習如何 在 Linux 中列出磁盤 使用命令行。

1. lsblk

lsblk(列出塊設備)用於列出所有可用塊設備的信息,例如硬盤和閃存驅動器。

只需輸入命令 lsblk 將以樹格式列出所有塊設備。 這是列出磁盤的方便且簡單的方法。

$ lsblk

輸出:

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

df 命令用於列出整體可用的磁盤空間量。 默認 df 命令打印設備名稱、總塊數、已用磁盤空間、可用磁盤空間、已用空間百分比、文件系統掛載點,還打印遠程掛載的文件系統,如 NFS。

命令 df -h 以人類可讀的形式列出所有磁盤的可用空間。

$ sudo df -h

輸出:

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

3. fdisk -l

fdisk 命令是一個基於文本的實用程序,用於管理磁盤分區。 使用 fdisk,您可以列出磁盤分區、創建新分區、刪除現有硬盤分區以及查看分區大小。

利用 fdisk -l 查看所有可用的磁盤分區

$ sudo fdisk -l

輸出:


Disk /dev/sda: 238.47 GiB, 256060514304 bytes, 500118192 sectors
Disk model: SK hynix SC300B
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk 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
Disk /dev/zram0: 8 GiB, 8589934592 bytes, 2097152 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk /dev/loop0: 207.15 MiB, 217214976 bytes, 424248 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 /dev/loop1: 99.18 MiB, 103993344 bytes, 203112 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

4. 分開 -l

Parted 是一個有用且強大的工具,用於從命令行管理硬盤分區,如列表、創建、縮小、刪除、查找和拯救磁盤分區。 使用 parted 命令,您可以輕鬆管理所有硬盤分區。

分開 -l 命令將列出所有塊設備上的磁盤分區佈局。

$ sudo parted -l

輸出:

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 與上述命令略有不同,它在基於文本的終端界面中提供圖形視圖來管理磁盤。 使用 磁盤 您可以列出、創建、刪除和修改磁盤設備上的分區。

$ sudo cfdisk

輸出:

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 ]

例子:

磁盤

6. sfdisk -l

sfdisk 是一個分區表編輯器。 它可以列出設備上的分區,列出分區的大小,檢查設備上的分區,並準備設備。 它不是為大分區設計的。

sfdisk -l 將列出磁盤分區。

sudo sfdisk -l

輸出:

Disk /dev/sda: 238.47 GiB, 256060514304 bytes, 500118192 sectors
Disk model: SK hynix SC300B
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk 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
Disk /dev/zram0: 8 GiB, 8589934592 bytes, 2097152 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/loop0: 207.15 MiB, 217214976 bytes, 424248 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 /dev/loop1: 99.18 MiB, 103993344 bytes, 203112 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

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

ls 命令是一個非常簡單但功能強大的命令,用於列出文件和目錄。 我們可以通過以下方式列出磁盤 列出目錄 /dev/disk/by-id.

$ ls -l /dev/disk/by-id

輸出:

total 0
lrwxrwxrwx 1 root root 9 Jun 20 23:26 ata-SK_hynix_SC300B_HFS256G39MND-3510B_FI68N023911308NC9 -> ../../sda
lrwxrwxrwx 1 root root 10 Jun 20 23:26 ata-SK_hynix_SC300B_HFS256G39MND-3510B_FI68N023911308NC9-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jun 20 23:26 ata-SK_hynix_SC300B_HFS256G39MND-3510B_FI68N023911308NC9-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Jun 20 23:26 ata-SK_hynix_SC300B_HFS256G39MND-3510B_FI68N023911308NC9-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Jun 20 23:26 ata-SK_hynix_SC300B_HFS256G39MND-3510B_FI68N023911308NC9-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 Jun 20 23:26 ata-SK_hynix_SC300B_HFS256G39MND-3510B_FI68N023911308NC9-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 Jun 20 23:26 ata-SK_hynix_SC300B_HFS256G39MND-3510B_FI68N023911308NC9-part6 -> ../../sda6
lrwxrwxrwx 1 root root 9 Jun 20 23:26 wwn-0x5ace42e0900dd482 -> ../../sda
lrwxrwxrwx 1 root root 10 Jun 20 23:26 wwn-0x5ace42e0900dd482-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jun 20 23:26 wwn-0x5ace42e0900dd482-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Jun 20 23:26 wwn-0x5ace42e0900dd482-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Jun 20 23:26 wwn-0x5ace42e0900dd482-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 Jun 20 23:26 wwn-0x5ace42e0900dd482-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 Jun 20 23:26 wwn-0x5ace42e0900dd482-part6 -> ../../sda6

您還可以通過以下方式列出:

  • 按標籤
  • 按部分標籤
  • 產後
  • 旁路
  • by-uuid

8. lshw 類磁盤

lshw 是一個 Linux 工具,用於生成系統硬件配置的詳細信息。

使用 -class disk 列出磁盤信息。

$ sudo lshw -class disk

輸出:

*-disk
description: ATA Disk
product: SK hynix SC300B
physical id: 0.0.0
bus info: scsi@1:0.0.0
logical name: /dev/sda
version: 0P00
serial: FI68N023911308NC9
size: 238GiB (256GB)
capabilities: gpt-1.00 partitioned partitioned:gpt
configuration: ansiversion=5 guid=ff57c955-d98a-49c4-b1ed-835a44f2a0a4 logicalsectorsize=512 sectorsize=4096

此外,還可以輸出 -類磁盤 作為 -json 或者 -html 或者 -xml.

$ sudo lshw -class disk -json

輸出:

{
"id" : "disk",
"class" : "disk",
"claimed" : true,
"handle" : "GUID:ff57c955-d98a-49c4-b1ed-835a44f2a0a4",
"description" : "ATA Disk",
"product" : "SK hynix SC300B",
"physid" : "0.0.0",
"businfo" : "scsi@1:0.0.0",
"logicalname" : "/dev/sda",
"dev" : "8:0",
"version" : "0P00",
"serial" : "FI68N023911308NC9",
"units" : "bytes",
"size" : 256060514304,
"configuration" : {
"ansiversion" : "5",
"guid" : "ff57c955-d98a-49c4-b1ed-835a44f2a0a4",
"logicalsectorsize" : "512",
"sectorsize" : "4096"
},
"capabilities" : {
"gpt-1.00" : "GUID Partition Table version 1.00",
"partitioned" : "Partitioned disk",
"partitioned:gpt" : "GUID partition table"
},
"children" : [
]
}

結論

對於除 lsblk 和 ls -l dev/disk 之外的所有命令,都需要 root 訪問權限或超級用戶權限才能運行它。

在本教程中,我們學習瞭如何使用命令行在 Linux 中列出磁盤。