1. Введение
Для задач администрирования нам часто требуется подробная информация о нашей системе. Таким образом, в случае Linux знания о версии ядра и дистрибутиве для нас очень важны.
Кроме того, нам нужна информация о доступном физическом хранилище. Следовательно, в контексте Linux нам нужно перечислить разделы диска.
Мы рассмотрим команды Linux, полезные для достижения этой цели.
2. Команда uname для данных ядра
Команда uname возвращает кучу информации, касающейся нашего ядра. Итак, давайте проверим имя ядра:
$ uname
Linux
2.1. Варианты отмены
Мы должны использовать опции для получения более конкретной информации. Поэтому для всех полей давайте использовать переключатель –a:
$ uname -a
Linux 10.0.2.15 5.14.10-300.fc35.x86_64 #1 SMP Thu Oct 7 20:48:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Теперь давайте проверим каждый фрагмент информации, связанный с ядром, с помощью его собственного переключателя.
Таким образом, для имени ядра давайте использовать -s (или просто ничего):
$ uname -s
Linux
Затем, для выпуска ядра, давайте использовать -r:
$ uname -r
5.14.10-300.fc35.x86_64
Наконец, для версии ядра мы должны использовать -v:
$ uname -v
#1 SMP Thu Oct 7 20:48:44 UTC 2021
Давайте заметим, что данные, связанные с ядром, компилируются только во время сборки ядра. Во время выполнения они получаются с помощью системного вызова uname.
2.2. Доступность
Команда является частью пакета sh-utils или coreutils. Поэтому мы должны найти ее практически во всех дистрибутивах.
3. Информация о распространении с помощью lsb_release
Теперь мы собираемся узнать о деталях дистрибутива Linux с помощью команды lsb_release:
$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: Fedora
Description: Fedora release 35 (Thirty Five)
Release: 35
Codename: ThirtyFive
Итак, мы видим, что наша операционная система — Fedora 35.
Кроме того, давайте заметим, что команда построена на основе концепции Linux Standard Base (LSB).
Таким образом, в случае дистрибутивов, совместимых с LSB, команда собирает информацию из файлов /etc/lsb-release и /etc/distrib-release. Кроме того, он анализирует имена файлов в папке /etc/lsb-release.d .
Однако в нашем примере Fedora 35 существует только папка /etc/lsb-release.d .
В некоторых дистрибутивах команда недоступна из коробки. Он поставляется с пакетом lsb_release.
4. Анализ файла версии ОС
Мы можем добиться аналогичного эффекта, как при использовании lsb_release, проанализировав содержимое файла /etc/os-release . Итак, давайте разберемся:
$ cat /etc/os-release
NAME="Fedora Linux"
VERSION="35 (Workstation Edition)"
ID=fedora
VERSION_ID=35
VERSION_CODENAME=""
PLATFORM_ID="platform:f35"
PRETTY_NAME="Fedora Linux 35 (Workstation Edition)"
# more output skipped ...
Теперь давайте будем более конкретными и отобразим только PRETTY_NAME с помощью grep:
$ grep '^PRETTY_NAME' /etc/os-release
PRETTY_NAME="Fedora Linux 35 (Workstation Edition)"
Эта функция является частью systemd manager, поэтому мы должны найти ее в большинстве дистрибутивов Linux. Однако не все поля необходимо заполнять.
5. Команда hostnamectl
Команда hostnamectl управляет именами хостов системы.Он принимает команды, связанные с различными функциями системы.
Таким образом, с помощью команды status мы собираемся получить информацию о ядре и дистрибутиве:
$ hostnamectl status
Static hostname: n/a
Transient hostname: 10.0.2.15
Icon name: computer-vm
Chassis: vm
Machine ID: 588ce19ba22340289d4e9f9ad3c5df63
Boot ID: 5a4584a74a1f4b1596ac4b6d15c96e01
Virtualization: oracle
Operating System: Fedora Linux 35 (Workstation Edition)
CPE OS Name: cpe:/o:fedoraproject:fedora:35
Kernel: Linux 5.14.10-300.fc35.x86_64
Architecture: x86-64
Hardware Vendor: innotek GmbH
Hardware Model: VirtualBox
Хотя некоторые другие команды сужают выходные данные hostnamectl, ни одна из них не возвращает единственную информацию о ядре.
Команда hostnamectl поставляется с пакетом systemd-services.6. Список блочных устройств с помощью lsblk
Мы собираемся получить информацию о системных блочных устройствах с помощью команды lsblk:
$ sudo lsblk -o NAME,KNAME,FSTYPE,MOUNTPOINT,SIZE
NAME KNAME FSTYPE MOUNTPOINT SIZE
sda sda 78,1G
├─sda1 sda1 ext2 /boot 1,5G
├─sda2 sda2 1K
├─sda5 sda5 ext4 / 5,5G
├─sda6 sda6 ext4 /usr 12,5G
├─sda7 sda7 ext4 /home 54,7G
└─sda8 sda8 swap 4G
sr0 sr0 1024M
Мы должны использовать опции -o для предоставления списка имен столбцов, которые мы хотим отобразить. В нашем примере мы использовали:
- ИМЯ – имя устройства
- KNAME – имя внутреннего устройства
- FSTYPE – тип файловой системы
- ТОЧКА ПОДКЛЮЧЕНИЯ – точка подключения устройства
- РАЗМЕР – размер устройства
Мы можем получить полный список доступных столбцов, используя выдачу lsblk -h.
Кроме того, мы можем изменить единицы измерения на байты с помощью переключателя -b.
Наконец, нам не нужны привилегии root для выполнения этой команды.Однако без root-доступа или sudo некоторые столбцы недоступны, например, FSTYPE .
Команда распространяется как часть пакета util-linux.
7. Список разделов диска с помощью fdisk
Давайте воспользуемся хорошо известной командой fdisk для составления списка разделов диска:
$ sudo fdisk -l
Disk /dev/sda: 83.9 GB, 83886080000 bytes
255 heads, 63 sectors/track, 10198 cylinders, total 163840000 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: 0x000031b3
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 3106815 1552384 83 Linux
/dev/sda2 3108864 163839999 80365568 5 Extended
/dev/sda5 3110912 14583807 5736448 83 Linux
/dev/sda6 14585856 40724479 13069312 83 Linux
/dev/sda7 40726528 155449343 57361408 83 Linux
/dev/sda8 155451392 163839999 4194304 82 Linux swap / Solaris
Размер разделов указан в блоках по 512 байт. К сожалению, мы не можем изменить единицу, указанную в списке.
7.1. Получение размера раздела в ГБ
Давайте отобразим сведения о разделе, передав его имя в качестве аргумента в fdisk:
$ sudo fdisk -l /dev/sda7
Disk /dev/sda7: 58.7 GB, 58738081792 bytes
255 heads, 63 sectors/track, 7141 cylinders, total 114722816 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: 0x00000000
Disk /dev/sda7 doesn't contain a valid partition table
Таким образом, мы можем прочитать размер раздела в ГБ.
7.2. Замечания по безопасности и доступность
Мы должны знать, что предоставление списка разделов — это лишь малая часть возможностей fdisk.
Прежде всего, это интерактивный инструмент для создания, удаления и изменения разделов.
Итак, если случайно мы вызываем sudo fdisk /dev/sda (без -l), то мы попадаем в оболочку со всеми доступными командами fdisk.
Затем, если мы не хотим изменять таблицу разделов, мы должны ввести q для выхода.
Команда включена в пакет util-linux.
8. разделен, чтобы справиться с большими разделами
Разделена еще одна команда для управления разделами. Итак, давайте покажем обычный список разделов:
$ sudo parted -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 83,9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 1591MB 1590MB primary ext2 boot
2 1592MB 83,9GB 82,3GB extended
5 1593MB 7467MB 5874MB logical ext4
6 7468MB 20,9GB 13,4GB logical ext4
7 20,9GB 79,6GB 58,7GB logical ext4
8 79,6GB 83,9GB 4295MB logical linux-swap(v1)
Давайте заметим, что разделы идентифицируются по номеру, а не по имени устройства. Кроме того, размер аккуратно форматируется с помощью соответствующей единицы измерения.
Команда parted — это интерактивный инструмент, похожий на fdisk.
Однако его замечательной особенностью является возможность работы с разделами размером более 2 ТБ.
Нам нужно установить эту утилиту из пакета parted с таким же именем.
9. Заключение
В этой статье мы представили способы предоставления информации об операционной системе Linux. Мы начали с получения скомпилированной версии ядра.
Затем мы узнали, как проверить детали дистрибутива Linux, применив концепцию LSB или используя данные systemd. Мы также получили аналогичную информацию с помощью инструмента управления именами хостов.
Наконец, мы рассмотрели множество инструментов, предназначенных для запроса системы разделов диска.