Найти в Дзене
Евгений Лощаков

Работа с накопителями на платформе Debian

Система хранения в Linux — это комплекс компонентов для управления физическими и логическими накопителями, включая диски, разделы, файловые системы и точки монтирования. Жесткие диски (HDD): Твердотельные накопители (SSD): NVMe накопители: Домашнее использование: Серверные решения: Рабочие станции: # Просмотр всех блочных устройств lsblk # Детальная информация о дисках sudo fdisk -l # Информация о размерах и использовании df -h # Информация о UUID файловых систем sudo blkid Схема именования: Обозначения разделов: ext4 (Fourth Extended Filesystem): XFS: Btrfs (B-Tree Filesystem): В Linux совсем непохожая на Windows система обозначения дисков. Вместо привычных дисков C, D, E и так далее, в Linux диски это устройства в папке /dev/. В dev вообще все возможные устройства, даже весьма экзотические, не существующие в Windows. Чтобы посмотреть доступные диски, можно при помощи следующих команд: # После подключения диска проверяем sudo dmesg | grep -i sd # Или используем lsblk для просмотра
Оглавление

🔹 Теоретическая часть: Основы работы с накопителями

1.1. Что такое система хранения в Linux?

Система хранения в Linux — это комплекс компонентов для управления физическими и логическими накопителями, включая диски, разделы, файловые системы и точки монтирования.

Архитектура системы хранения:

  • Блочные устройства — физические диски (/dev/sda, /dev/sdb)
  • Разделы — логические части дисков (/dev/sda1, /dev/sda2)
  • Файловые системы — структуры для организации данных (ext4, XFS, Btrfs)
  • Точки монтирования — каталоги для доступа к файловым системам

1.2. Типы накопителей и их особенности

Жесткие диски (HDD):

  • ✅ Большой объем (до 20 ТБ+)
  • ✅ Низкая стоимость за гигабайт
  • ⚠ Медленная скорость (100-200 МБ/с)
  • ⚠ Механические части

Твердотельные накопители (SSD):

  • ✅ Высокая скорость (500 МБ/с - 7 ГБ/с)
  • ✅ Отсутствие механических частей
  • ⚠ Высокая стоимость за гигабайт
  • ⚠ Ограниченный ресурс записи

NVMe накопители:

  • ✅ Очень высокая скорость (3-7 ГБ/с)
  • ✅ Низкая задержка
  • ⚠ Требуют специальный разъем M.2
  • ⚠ Высокая стоимость

1.3. Области применения различных конфигураций

Домашнее использование:

  • Один SSD для системы + HDD для данных
  • Быстрая загрузка и работа системы
  • Экономичное хранение больших объемов

Серверные решения:

  • RAID-массивы для отказоустойчивости
  • SSD для баз данных и кэша
  • HDD для архивного хранения

Рабочие станции:

  • Быстрые NVMe для активной работы
  • Внешние накопители для бэкапов
  • Сетевые хранилища (NAS)

🔹 Практическая часть: Управление накопителями в Debian

🔹 2. Определение и идентификация накопителей

2.1. Просмотр информации о дисках

# Просмотр всех блочных устройств

lsblk

# Детальная информация о дисках

sudo fdisk -l

-2

# Информация о размерах и использовании

df -h

-3

# Информация о UUID файловых систем

sudo blkid

-4

2.2. Пример вывода lsblk:

-5

2.3. Понимание имен устройств

Схема именования:

  • /dev/sdX — SATA/SAS/USB диски (sda, sdb, sdc...)
  • /dev/nvmeXnY — NVMe диски (nvme0n1, nvme0n1p1...)
  • /dev/hdX — Устаревшие IDE диски

Обозначения разделов:

  • /dev/sda1 — первый раздел на первом диске
  • /dev/sdb2 — второй раздел на втором диске

🔹 3. Файловые системы Linux

3.1. Сравнение файловых систем

-6

3.2. Характеристики файловых систем

ext4 (Fourth Extended Filesystem):

  • ✅ Максимальный размер файла: 16 ТБ
  • ✅ Максимальный размер ФС: 1 ЭБ (эксабайт)
  • ✅ Журналируемая
  • ✅ Стабильная и проверенная

XFS:

  • ✅ Максимальный размер файла: 8 ЭБ
  • ✅ Максимальный размер ФС: 8 ЭБ
  • ✅ Высокая производительность с большими файлами
  • ✅ Онлайн-дефрагментация

Btrfs (B-Tree Filesystem):

  • ✅ Snapshots и клонирование
  • ✅ Встроенное сжатие
  • ✅ RAID поддержка
  • ✅ Проверка целостности данных

🔹 4. Подключение второго жесткого диска

4.1. Определение нового диска

В Linux совсем непохожая на Windows система обозначения дисков. Вместо привычных дисков C, D, E и так далее, в Linux диски это устройства в папке /dev/. В dev вообще все возможные устройства, даже весьма экзотические, не существующие в Windows.

Чтобы посмотреть доступные диски, можно при помощи следующих команд:

# После подключения диска проверяем

sudo dmesg | grep -i sd

-7

# Или используем lsblk для просмотра всех дисков

lsblk

-8

Как видно из скриншота, имеется диск /dev/sda. Затем перечислены два устройства /dev/sda1 и /dev/sda2, а так же /dev/sda5 . По совпадающему части названия sda можно понять, что это разделы, на которые разделён диск /dev/sda.

Также имеется диск /dev/sdb, который не разделён ни на какие разделы — именно его и нужно подключать.

# Проверяем, видит ли система новый диск

sudo fdisk -l | grep -i disk

-9

4.2. Создание разделов на новом диске

Разметка дисков (разделение на разделы) в Linux

В консоли диск можно разбить на разделы командой cfdisk. После неё укажите имя диска, с которым вы хотите выполнить действия:

sudo cfdisk /dev/sdb

-10

Диск может быть GPT или MBR (показывается как dos). Вы без труда найдёте множество информации об этих таблицах разделов в Интернете. Только отмечу, что GPT является более современной и имеет больше возможностей. Поэтому если не нужно работать со старым железом, которое понимает только MBR, то выбираем GPT.

Для создания диска выберите Новый

-11

Введите его размер, если нужен только 1 раздел, то просто нажмите ВВОД, если нужно несколько то укажите размер 1 раздела, после завершения переместитесь вниз на свободное место и повторяйте эти действия по созданию разделов. Когда закончите, выберите Запись. .

Если нужно, поменяйте тип раздела:

-12
-13
-14

4.3. Создание файловой системы

Для ext4:

# Создание файловой системы ext4

sudo mkfs.ext4 /dev/sdb1

# С меткой (label) для удобства

sudo mkfs.ext4 -L "data_disk" /dev/sdb1

-15

Для XFS:

# Создание файловой системы XFS

sudo mkfs.xfs /dev/sdb1

# С меткой

sudo mkfs.xfs -L "fast_storage" /dev/sdb1

Для Btrfs:

# Создание файловой системы Btrfs

sudo mkfs.btrfs /dev/sdb1

# С меткой

sudo mkfs.btrfs -L "backup_disk" /dev/sdb1

4.4. Создание точки монтирования

# Создание директории для монтирования

sudo mkdir /mnt/data

# Назначение правильных прав

sudo chmod 755 /mnt/data

4.5. Монтирование диска

Временное монтирование:

Монтирование и размонтирование дисков

С дисками в /dev/ нельзя работать напрямую, то есть нельзя на них записывать файлы или копировать с них файлы. Для работы с ними их нужно смонтировать. Это делается командой mount.

Диск подключается к точке монтирования и уже в этой папке можно работать с содержимом диска.

Эта концепция может показаться непривычной пользователям Windows, но это очень удобно! Диск можно смонтировать в любую папку. Например, домашняя папка может быть на другом диске — удобно при переустановке системы — данные не нужно копировать в безопасное место, поскольку они уже на другом диске.

Для монтирования используется команда вида:

sudo mount /dev/имя_раздела /точка/монтирования/

# Монтирование вручную

sudo mount /dev/sdb1 /mnt/data

# Проверка монтирования

df -h /mnt/data

-16

Постоянное монтирование через /etc/fstab:

# Редактируем fstab

sudo nano /etc/fstab

-17

# Добавляем строку (выберите подходящий вариант):

Вариант 1: По UUID (рекомендуется)

# Получаем UUID диска

sudo blkid /dev/sdb1

-18

# Добавляем в fstab

UUID=844b39af-f4c0-48a9-bc72-2e9121c1f811 /mnt/data ext4 defaults 0 2

-19

Вариант 2: по имени устройства (не рекомендуется, так как имя может поменяться).

/dev/sdb1 /mnt/data ext4 defaults 0 2

Вариант 3: С дополнительными опциями

UUID=844b39af-f4c0-48a9-bc72-2e9121c1f811 /mnt/data ext4 defaults,noatime,nodiratime 0 2

4.6. Проверка и применение настроек

# Проверка синтаксиса fstab

sudo mount -a

# Если ошибок нет - перезагружаем или проверяем

df -h

-20

# Проверка прав доступа

ls -la /mnt/data/

-21

🔹 5. Параметры монтирования в /etc/fstab

5.1. Структура записи в fstab

Поле 1: Устройство - UUID=xxxx-xxxx

Поле 2: Точка монтирования - /mnt/data

Поле 3: ФС - ext4

Поле 4: Опции - defaults

Поле 5: Дамп - 0

Поле 6: Проверка - 2

5.2. Основные параметры монтирования

-22

5.3. Специфичные параметры для разных ФС

Для ext4:

defaults,noatime,nodiratime,errors=remount-ro

Для SSD:

defaults,noatime,nodiratime,discard

Для сетевых ФС:

defaults,_netdev,auto

🔹 6. Управление разделами и LVM

6.1. Использование LVM (Logical Volume Manager)

Преимущества LVM:

  • Гибкое управление размерами разделов
  • Возможность создания снапшотов
  • Объединение нескольких дисков
  • Легкое изменение размеров

Установка LVM:

sudo apt update

sudo apt install -y lvm2

6.2. Создание LVM на новом диске

# Создание физического тома

sudo pvcreate /dev/sdb1

# Создание группы томов

sudo vgcreate vg_data /dev/sdb1

# Создание логического тома

sudo lvcreate -n lv_storage -l 100%FREE vg_data

# Создание файловой системы

sudo mkfs.ext4 /dev/vg_data/lv_storage

6.3. Монтирование LVM тома

# Создание точки монтирования

sudo mkdir /mnt/lvm_data

# Добавление в fstab

/dev/vg_data/lv_storage /mnt/lvm_data ext4 defaults 0 2

# Монтирование

sudo mount -a

🔹 7. Мониторинг и обслуживание

7.1. Проверка целостности файловых систем

# Проверка ext4

sudo fsck.ext4 -f /dev/sdb1

# Проверка XFS (только для чтения)

sudo xfs_repair -n /dev/sdb1

# Проверка Btrfs

sudo btrfs check /dev/sdb1

7.2. Мониторинг использования диска

# Общее использование

df -h

-23

# Детальная информация по директориям

du -sh /mnt/data/*

-24

# Поиск больших файлов

find /mnt/data -type f -size +100M -exec ls -lh {} \;

7.3. Оптимизация производительности

Для SSD дисков:

# Включение TRIM в fstab

defaults,discard

# Ручной TRIM

sudo fstrim /mnt/data

Настройка noatime:

# В fstab для увеличения производительности

defaults,noatime,nodiratime

🔹 8. Резервное копирование конфигурации

8.1. Резервное копирование fstab

# Создание резервной копии fstab

sudo cp /etc/fstab /etc/fstab.backup.$(date +%Y%m%d)

# Восстановление из резервной копии

sudo cp /etc/fstab.backup.20231215 /etc/fstab

8.2. Скрипт для автоматизации добавления дисков

#!/bin/bash

# add-disk.sh

DISK=$1

MOUNT_POINT=$2

FS_TYPE=${3:-ext4}

LABEL=$4

echo "Добавление диска $DISK в систему..."

# Создание раздела

echo -e "n\np\n1\n\n\nw" | sudo fdisk $DISK

# Создание файловой системы

if [ -n "$LABEL" ]; then

sudo mkfs.$FS_TYPE -L $LABEL ${DISK}1

else

sudo mkfs.$FS_TYPE ${DISK}1

fi

# Создание точки монтирования

sudo mkdir -p $MOUNT_POINT

# Получение UUID

UUID=$(sudo blkid -s UUID -o value ${DISK}1)

# Добавление в fstab

echo "UUID=$UUID $MOUNT_POINT $FS_TYPE defaults 0 2" | sudo tee -a /etc/fstab

# Монтирование

sudo mount -a

echo "Диск $DISK успешно добавлен и смонтирован в $MOUNT_POINT"

Использование скрипта:

sudo bash add-disk.sh /dev/sdb /mnt/data ext4 data_disk

🔹 9. Устранение неисправностей

9.1. Типичные проблемы и решения

-25

9.2. Команды диагностики

# Просмотр логов ядра

sudo dmesg | grep -i sd

# Проверка SMART статуса

sudo apt install -y smartmontools

sudo smartctl -a /dev/sdb

-26

# Проверка производительности

sudo hdparm -Tt /dev/sdb

🔹 Заключение

Итоги настройки:

Определен и идентифицирован новый жесткий диск
Создан раздел и файловая система
Настроено автоматическое монтирование через /etc/fstab
Проверена работоспособность и производительность
Настроено резервное копирование конфигурации

Ключевые принципы работы с накопителями:

  • Всегда используйте UUID в fstab вместо имен устройств
  • Регулярно проверяйте целостность файловых систем
  • Настраивайте мониторинг использования дискового пространства
  • Используйте LVM для гибкого управления дисковым пространством
  • Создавайте резервные копии важных данных и конфигураций

Рекомендации по выбору файловых систем:

  • Для системных разделов — ext4 (стабильность)
  • Для файловых серверов — XFS (производительность)
  • Для резервных копий — Btrfs (snapshots)
  • Для SSD дисков — ext4 с опцией discard

Пример команды для ежедневной проверки:

#!/bin/bash

# disk-health-check.sh

echo "=== Disk Usage ==="

df -h

echo -e "\n=== Disk Health ==="

for disk in /dev/sd?; do

echo "Checking $disk:"

sudo smartctl -H $disk | grep "SMART overall-health"

done

Теперь ваш второй жесткий диск правильно подключен, отформатирован и готов к использованию в системе Debian.