Как я могу перечислить жесткий диск и все его разделы, включая размер из терминала?

У меня установлен сервер Ubuntu 12.04 без графического интерфейса. Я хотел бы перечислить мой жесткий диск и его разделы, а также размер каждого раздела с помощью командной строки.

6
задан 1 October 2015 в 13:27

4 ответа

Вот несколько путей:

  • , Если у Вас есть таблица разделов 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 
    
0
ответ дан 1 October 2015 в 13:27

В терминале:

sudo fdisk -l

Тип Ваш пароль.

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

lsblk команда:

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

0
ответ дан 1 October 2015 в 13:27

Вот несколько других подходов:

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

udiscsctl имеет info опция, который вместе с -b (для блочного устройства) флаг, может показать подробную информацию. Используя простое для цикла и 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 МБ там находится на устройстве. Таким образом, истинный размер 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
2
ответ дан 1 October 2015 в 13:27
  • 1
    перезагрузка, технически, перезапускает каждый сервис. И это shouldn' t быть необходимыми..., хотя, обратите внимание, что некоторые приложения (например, Firefox) могут кэшировать эти данные и эти приложения потребность, которая будет перезапущена. – michael 2 November 2017 в 18:31

Я добрался до этого путем поиска "gpt разделов списка сервера человечности". Я искал ответ при использовании 16.04.1 LTS. Для тех из Вас, кто хочет перечислить разделы (MBR или GPT), fdisk, кажется, имеет поддержку и (и не только MBR как в более ранних версиях Ubuntu) в 16.04.1 LTS. Также parted не установлен по умолчанию, когда "опция" утилит базовой системы выбрана во время установки. Таким образом, следующая команда - все, в чем Вы нуждаетесь на 16.04.1 LTS:

sudo fdisk -l
0
ответ дан 1 October 2015 в 13:27
  • 1
    Это - то, что я склонен делать после любых изменений сети я обычно поместил && между двумя командами для создания его остротой. – Arronical 27 August 2015 в 02:31

Другие вопросы по тегам:

Похожие вопросы: