如何列出硬盘及其所有分区,包括终端的大小?

我安装了没有GUI的Ubuntu服务器12.04。 我想列出我的硬盘驱动器和它的分区以及每个分区使用命令行的大小。

以下是几种方法:

  • 如果您有MBR分区表:

    terdon@oregano ~ $ 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: 0x4b66b5d5 Device Boot Start End Blocks Id System /dev/sda1 63 80324 40131 de Dell Utility /dev/sda2 * 81920 30801919 15360000 7 HPFS/NTFS/exFAT /dev/sda3 30801920 194643539 81920810 7 HPFS/NTFS/exFAT /dev/sda4 194643601 976773119 391064759+ f W95 Ext'd (LBA) /dev/sda5 194643603 198836504 2096451 c W95 FAT32 (LBA) /dev/sda6 342951936 960387071 308717568 83 Linux /dev/sda7 198840320 342949887 72054784 83 Linux /dev/sda8 960389120 976773119 8192000 82 Linux swap / Solaris 

    或者sudo sfdidk -l

    但这些并没有给出特别人类可读的输出。 接下来的选择会更好。

  • 对于GPT和MBR分区表:

     terdon@oregano ~ $ sudo parted -l Model: ATA ST9500420AS (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 41.1MB 41.1MB primary fat16 diag 2 41.9MB 15.8GB 15.7GB primary ntfs boot 3 15.8GB 99.7GB 83.9GB primary ntfs 4 99.7GB 500GB 400GB extended lba 5 99.7GB 102GB 2147MB logical fat32 lba 7 102GB 176GB 73.8GB logical ext4 6 176GB 492GB 316GB logical ext4 8 492GB 500GB 8389MB logical linux-swap(v1) Model: ST950032 5AS (scsi) Disk /dev/sdb: 500GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 500GB 500GB primary ntfs 
  • lsblk

     terdon@oregano ~ $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 39.2M 0 part ├─sda2 8:2 0 14.7G 0 part ├─sda3 8:3 0 78.1G 0 part ├─sda4 8:4 0 1K 0 part ├─sda5 8:5 0 2G 0 part ├─sda6 8:6 0 294.4G 0 part /home ├─sda7 8:7 0 68.7G 0 part / └─sda8 8:8 0 7.8G 0 part [SWAP] sdb 8:16 0 465.8G 0 disk └─sdb1 8:17 0 465.8G 0 part /test sr0 11:0 1 1024M 0 rom 
  • 安装inxi然后运行

     terdon@oregano ~ $ inxi -D Drives: HDD Total Size: 1000.2GB (70.1% used) 1: id: /dev/sda model: ST9500420AS size: 500.1GB 2: id: /dev/sdb model: 5AS size: 500.1GB 

以下是其他几种方法:

lshw

lshw的简短版本lshw方便地列出描述中磁盘的大小

 sudo lshw -short | awk '/disk|volume/' /0/1/0.0.0 /dev/sda disk 120GB Radeon R7 /0/1/0.0.0/1 /dev/sda1 volume 111GiB EXT4 volume /0/2/0.0.0 /dev/cdrom disk DVDRAM GT20N 

有关更详细的信息,请使用lshw -class volume,disk

udiscsctl

udiscsctlinfo选项,它与-b (用于块设备)标志相结合,可以显示详细信息。 使用简单的for循环和awk ,我们可以使它专门显示分区和大小信息。 这是我的例子:

 $ for device in /dev/sd* ; do udisksctl info -b $device | awk '/[[:blank:]]Device:/; /Size/' ;done Device: /dev/sda Size: 120034123776 Device: /dev/sda1 Size: 120032591872 Size: 120032591872 

df命令

df命令显示有关所有当前安装的文件系统的信息。 同样,我们可以直接使用此命令,但也可以使用awk清理输出

 df -h | awk 'NR==1 ;/\/dev\/sd*/' Filesystem Size Used Avail Use% Mounted on /dev/sda1 110G 68G 37G 66% / 

这里我们只打印标题并使用-h标志,使大小以人类可读的格式打印

/ sys / class / block / sd *文件

/sys/class/block/文件夹中,您将找到与块设备相关的文件(通常指的是物理内存设备)。 特别是我们希望专注于以sd字母开头的任何文件。

例如,我有一个只有一个分区的硬盘。 因此/sys/class/block/sda指的是我的整个硬盘,而/sys/class/block/sda1指的是我的Ubuntu分区。

在每个设备的每个文件夹中,您将找到size文件,其中列出了设备上512 MB的块数 。 所以真正的大小是number of blocks x 521

再次,通过很少的命令行魔术,我们得到:

 $ for device in /sys/class/block/sd*; do printf "%s " $device; bc <<< "$(cat $device/size)*512" ; done /sys/class/block/sda 120034123776 /sys/class/block/sda1 120032591872 

或者用awk缩短一点:

 $ awk '{print substr(FILENAME,18)" "$1*512}' /sys/class/block/sd*/size sda/size 120034123776 sda1/size 120032591872 

在终端:

 sudo fdisk -l 

输入密码。

http://i.stack.imgur.com/FPRg3.png

lsblk命令:

http://i.stack.imgur.com/7egAM.png

我通过搜索“ubuntu服务器列表gpt分区”得到了这个。 我在使用16.04.1 LTS时正在寻找答案。 对于那些想要列出分区(MBR或GPT)的人来说,fdisk似乎在16.04.1 LTS中支持两者(而不仅仅是早期Ubuntu版本中的MBR)。 如果在安装期间选择“基本系统实用程序”选项,则默认情况下不会安装parted 。 所以16.04.1 LTS需要以下命令:

 sudo fdisk -l