Просмотр информации о дисках
Команда lsblk
Самая простая команда для просмотра подключенных дисков и их разделов:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 50G 0 disk
├─vda1 252:1 0 1M 0 part
└─vda2 252:2 0 50G 0 part /
vdb 252:16 0 4G 0 disk
vdc 252:32 0 2G 0 disk
Чтобы увидеть файловые системы и их UUID, используйте флаг -f
:
NAME FSTYPE LABEL UUID MOUNTPOINT
vda
├─vda1
└─vda2 ext4 82afb880-9c95-44d6-8df9-84129f3f2cd1 /
vdb
vdc
Команда fdisk
Более подробная информация о дисках:
Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors
Disk model: Virtual disk
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: 8E70400A-DD3F-443D-95C1-844A5A72302B
Device Start End Sectors Size Type
/dev/vda1 2048 4095 2048 1M BIOS boot
/dev/vda2 4096 104857566 104853471 50G Linux filesystem
–
/dev/sdX
— физические диски (SATA/SCSI)–
/dev/vdX
— виртуальные диски–
/dev/nvmeXnY
— SSD NVMeЦифры после буквы обозначают номера разделов.
Таблицы разделов: MBR vs GPT
Перед использованием диск нужно разметить — создать таблицу разделов. Есть два стандарта:
Характеристика | MBR (старый) | GPT (новый) |
---|---|---|
Максимум разделов | 4 основных или 3 основных + 1 расширенный (с логическими) | 128 (обычно) |
Максимальный размер диска | 2 ТБ | 9.4 ЗБ (зеттабайт!) |
Резервная копия таблицы | Нет | Да |
Совместимость | Все системы | Новые системы (UEFI) |
Практическое задание 1: Определение типа таблицы разделов
1. Выполните команду: sudo fdisk -l /dev/vda
2. Найдите строку Disklabel type
3. Запомните, какая таблица разделов используется (gpt
или dos
)
Разметка диска с помощью fdisk
Давайте разметим новый диск /dev/vdb
:
# Создаем новую таблицу GPT:
Command (m for help): g
Created a new GPT disklabel (GUID: E83C9D88-AB63-3341-AB6F-2E7FAC0FC15D).
# Создаем первый раздел на 1ГБ:
Command (m for help): n
Partition number (1-128, default 1): [Enter]
First sector (2048-8388574, default 2048): [Enter]
Last sector: +1G
# Создаем второй раздел на оставшееся место:
Command (m for help): n
Partition number (2-128, default 2): [Enter]
First sector: [Enter]
Last sector: [Enter]
# Проверяем что получилось:
Command (m for help): p
Disk /dev/vdb: 4 GiB, 4294967296 bytes, 8388608 sectors
Device Start End Sectors Size Type
/dev/vdb1 2048 2099199 2097152 1G Linux filesystem
/dev/vdb2 2099200 8388574 6289375 3G Linux filesystem
# Записываем изменения:
Command (m for help): w
The partition table has been altered.
w
записывает изменения на диск.Если вы ошиблись, выйдите без сохранения командой
q
.Практическое задание 2: Создание разделов
1. Откройте fdisk для вашего диска: sudo fdisk /dev/vdb
2. Создайте таблицу GPT (команда g
)
3. Создайте два раздела: первый 1ГБ, второй 3ГБ
4. Запишите изменения (w
)
5. Проверьте результат: lsblk
Файловые системы
После создания раздела нужно создать файловую систему (отформатировать):
# Форматируем в ext4:
user@server:~$ sudo mkfs.ext4 /dev/vdb1
# Форматируем в XFS:
user@server:~$ sudo mkfs.xfs /dev/vdb2
Сравнение файловых систем
Файловая система | Особенности | Лучше использовать для |
---|---|---|
ext4 |
Надёжная, можно уменьшать и увеличивать | Системные разделы, домашние каталоги |
XFS |
Быстрая с большими файлами, можно только увеличивать | Базы данных, большие файлы |
Btrfs |
Поддержка снимков, сжатия | Резервные копии, системы хранения |
Монтирование разделов
Чтобы использовать раздел, его нужно смонтировать в каталог:
user@server:~$ sudo mkdir /mnt/data
# Монтируем временно:
user@server:~$ sudo mount /dev/vdb1 /mnt/data
# Проверяем:
user@server:~$ df -h /mnt/data
Filesystem Size Used Avail Use% Mounted on
/dev/vdb1 976M 2.6M 907M 1% /mnt/data
Для автоматического монтирования при загрузке добавьте запись в /etc/fstab
:
/dev/vdb1: UUID=”d6e…” TYPE=”ext4″
# Открываем файл для редактирования:
user@server:~$ sudo nano /etc/fstab
# Добавляем строку (в самом конце файла):
UUID=d6e… /mnt/data ext4 defaults 0 2
UUID
вместо /dev/sdX
в fstab, так как порядок дисков может меняться!Практическое задание 3: Монтирование
1. Создайте каталог /mnt/test
2. Смонтируйте /dev/vdb1
в этот каталог
3. Проверьте командой df -h
4. Добавьте запись в /etc/fstab
5. Проверьте: sudo mount -a
LVM - логическое управление томами
LVM (Logical Volume Manager) позволяет объединять несколько дисков/разделов в один логический том с возможностью изменения размера “на лету”.
Создание LVM
user@server:~$ sudo pvcreate /dev/vdb1 /dev/vdb2
# Создаем группу томов:
user@server:~$ sudo vgcreate vg_data /dev/vdb1 /dev/vdb2
# Создаем логический том на всё свободное место:
user@server:~$ sudo lvcreate -l 100%FREE -n lv_storage vg_data
# Форматируем и монтируем:
user@server:~$ sudo mkfs.ext4 /dev/vg_data/lv_storage
user@server:~$ sudo mkdir /mnt/lvm
user@server:~$ sudo mount /dev/vg_data/lv_storage /mnt/lvm
Расширение LVM
Когда место заканчивается, можно добавить новый диск в группу и расширить том:
user@server:~$ sudo pvcreate /dev/vdc
user@server:~$ sudo vgextend vg_data /dev/vdc
# Расширяем логический том:
user@server:~$ sudo lvextend -l +100%FREE /dev/vg_data/lv_storage
# Расширяем файловую систему (для ext4):
user@server:~$ sudo resize2fs /dev/vg_data/lv_storage
Практическое задание 4: Работа с LVM
1. Создайте физические тома на /dev/vdb1
и /dev/vdb2
2. Создайте группу томов vg_test
3. Создайте логический том lv_test
на 2ГБ
4. Отформатируйте его в ext4
и смонтируйте в /mnt/lvm_test
Проверьте свои знания:
- Какой командой посмотреть список подключенных дисков?
- Как создать раздел размером 2ГБ на диске
/dev/sdb
? - Как отформатировать раздел в файловую систему XFS?
- Как смонтировать раздел
/dev/sdb1
в/mnt/data
? - Какие три команды нужны для расширения LVM тома?
Полезные команды
# Проверить свободное место:
user@server:~$ df -h
# Проверить использование дисков:
user@server:~$ du -sh /path
# Проверить целостность файловой системы:
user@server:~$ fsck /dev/sdX
# Показать информацию о LVM:
user@server:~$ pvs
user@server:~$ vgs
user@server:~$ lvs
sudo
).Теперь вы умеете:
- Просматривать информацию о дисках
- Создавать разделы и файловые системы
- Монтировать разделы
- Работать с LVM
- Расширять файловые системы
LVM особенно полезен, когда нужно гибко управлять дисковым пространством.
Файл подкачки (Swap) — «Виртуальная оперативная память»
Создание и активация swap-файла
Давайте разберем предоставленные команды по шагам:
# sudo — выполняем команду с правами администратора.
# dd — утилита для копирования и преобразования данных.
# if=/dev/zero — читаем данные из “виртуального устройства” /dev/zero, которое выдает только нули.
# of=/swap — записываем данные в файл с именем /swap в корневой директории.
# bs=1M — размер одного блока данных — 1 Мегабайт.
# count=4096 — количество таких блоков. 4096 * 1M = 4096 Мб (4 Гб).
user@server:~$ sudo dd if=/dev/zero of=/swap bs=1M count=4096
# 2. Задаем правильные права доступа на файл.
# chmod 600 /swap — устанавливаем права: владелец может читать и писать (600), остальные — не могут ничего.
# Это критически важно для безопасности, так как swap может содержать конфиденциальные данные из памяти.
user@server:~$ chmod 600 /swap
# 3. Форматируем файл в специальный swap-формат.
user@server:~$ mkswap /swap
# 4. Активируем созданный swap-файл, чтобы система начала им пользоваться.
user@server:~$ swapon /swap
# 5. Проверяем, что наш swap-файл успешно активирован и отображается в списке.
user@server:~$ swapon -s
Делаем изменение постоянным
Команда swapon
активирует swap только до следующей перезагрузки. Чтобы система подключала его автоматически, нужно добавить запись в файл /etc/fstab
— это «меню автозагрузки» для дисков и файловых систем.
# echo — выводит текст.
# | (пайп) — перенаправляет вывод одной команды на вход другой.
# sudo tee -a — команда tee с правами root (sudo) получает текст и добавляет его (-a) в указанный файл.
user@server:~$ echo “/swap none swap sw 0 0” | sudo tee -a /etc/fstab
# Всегда полезно проверить файл после редактирования, чтобы убедиться, что запись добавлена корректно.
user@server:~$ sudo vi /etc/fstab
Попробуйте сами
Используя команды free -h
или swapon -s
, проверьте текущее состояние swap до и после выполнения описанных выше шагов (если решитесь потренироваться на тестовой виртуальной машине!).
Глубокий взгляд на файлы: stat и getfacl
Команды ls -l показывают базовые права доступа. Но что если нужно узнать больше деталей или посмотреть расширенные права (ACL)? На помощь приходят stat и getfacl.
stat — «паспорт» файла
Команда stat
выводит подробнейшую информацию (метаданные) о файле или директории — своего рода его паспорт.
user@server:~$ stat /swap
# Вывод будет содержать:
# File — имя файла.
# Size — размер в байтах.
# Blocks — сколько блоков на диске он занимает.
# IO Block — размер блока ввода-вывода.
# Inode — уникальный номер индексного дескриптора (это как номер паспорта для файла в файловой системе).
# Links — количество жестких ссылок на файл.
# Access — права доступа в цифровом (0777) и буквенном (-rwxrwxrwx) формате.
# Uid — User ID (идентификатор пользователя) и его имя.
# Gid — Group ID (идентификатор группы) и ее имя.
# Access — время последнего доступа к файлу (чтение).
# Modify — время последнего изменения *содержимого* файла.
# Change — время последнего изменения *метаданных* файла (например, прав доступа).
Задание для размышления
Сравните вывод команды stat
для обычного файла и директории. Что общего и в чем разница?
getfacl — «расширенная инструкция по доступу»
Стандартных прав (читать, писать, выполнять) для пользователя, группы и остальных иногда недостаточно для гибкого управления доступом. Например, вы хотите дать разным пользователям разные права на один файл. Для этого существуют списки контроля доступа (ACL — Access Control Lists). Команда getfacl
позволяет посмотреть эти расширенные правила.
user@server:~$ getfacl /swap
# Пример вывода:
# file: swap – Имя файла
# owner: root – Владелец
# group: root – Группа
user::rw- – Права для владельца (read, write)
group::— – Права для членов группы (нет прав)
other::— – Права для всех остальных (нет прав)
#
# Если бы были заданы расширенные ACL, вы увидели бы дополнительные строки, например:
user:webadmin:r– – Пользователь ‘webadmin’ имеет право только на чтение.
group:developers:rw- – Группа ‘developers’ имеет права на чтение и запись.
getfacl
показывает как стандартные права (которые видны в ls -l
), так и расширенные. Для управления ACL (добавления, изменения) используется команда-близнец setfacl
.Тест для самопроверки
Закрепите полученные знания, ответив на несколько вопросов.
1. Какова основная цель создания файла подкачки (swap) в Linux?
Правильный ответ: C
Файл подкачки служит «страховкой» для оперативной памяти. Когда физическая память заканчивается, система перемещает в swap данные, к которым не обращалась долгое время.
2. Почему для swap-файла критически важно устанавливать права доступа 600?
Правильный ответ: C
В swap может попасть любая информация из памяти (пароли, ключи, документы). Права 600 защищают эти данные.
3. Команда stat показывает…
Правильный ответ: C
stat выводит все метаданные файла, кроме содержимого.
4. Чем команда getfacl полезна по сравнению с ls -l?
Правильный ответ: C
ls -l показывает только базовые права. getfacl показывает и расширенные правила (ACL).
вы узнали о трех важных аспектах работы с Linux:
- Управление памятью: Вы научились создавать, активировать и делать постоянным файл подкачки (swap), который является страховкой для вашей оперативной памяти.
- Анализ метаданных: Вы познакомились с командой
stat
, которая выдает исчерпывающую информацию о файле. - Контроль доступа: Вы узнали о команде
getfacl
, которая помогает заглянуть дальше стандартных прав доступа и увидеть расширенные ACL.
Эти инструменты — фундамент для грамотного администрирования любой Linux-системы. Чтобы углубить знания, потренируйтесь на тестовой виртуальной машине: создавайте файлы с разными правами, смотрите их метаданные и пробуйте настраивать простые ACL с помощью команды setfacl
.
Нужна помощь с вашей IT-инфраструктурой?
Команда экспертов Kamensky-lab готова взять на себя задачи по настройке, оптимизации и безопасности ваших серверов. От разовых консультаций до полного сопровождения проектов.