Управление жесткими дисками

Правильное управление и обслуживание жестких дисков играют ключевую роль в обеспечении надежности и производительности Системы, а также в защите данных от потерь. Эффективное управление дисковыми устройствами напрямую влияет на производительность Системы. Помимо физических дисков, Система может работать с виртуальными дисковыми устройствами, которые используются в контейнеризации, виртуализации и других технологиях.

Раздел диска – это часть долговременной памяти накопителя данных, логически выделенная для удобства работы и состоящая из смежных блоков. Информация о разделах хранится в таблице разделов.

Все физические устройства памяти в Системе располагаются в каталоге /dev. Каждому из дисков по умолчанию присваивается последовательное название: /dev/sdX, где X — последовательные буквы a,b,c,d,e,... в зависимости от порядкового номера диска.

Обычно каждый раздел диска рассматривается ОС как отдельный логический диск, даже если все они находятся на одном физическом носителе. В ОС каждый раздел назначается каталогу /dev, например, /dev/sda1 или /dev/sda2 и так далее.

Существует два основных способа хранения информации о разделах на жестких дисках. Первый MBR (основная загрузочная запись), а второй GPT (таблица разделов GUID).

Разбиение диска на разделы также происходит и в ходе инсталляции Системы на шаге выбора места установки ОС.

Fdisk

Стандартной утилитой для управления разделами MBR в ОС является fdisk – это интерактивная утилита с меню. С ее помощью можно создавать, изменять, удалять и просматривать разделы дисков.

Все операции с дисками необходимо выполнять от имени пользователя root или с привилегиями root, используя команду sudo.

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

lsblk

или

disk -l

Важно – Для начала работы с fdisk необходимо открыть терминал и выполнить команду, указав путь к устройству, с которым требуется работать:

Основные команды для работы с fdisk:

sudo fdisk /dev/sda

где /dev/sda — это имя устройства, соответствующего вашему жесткому диску. После перехода к жесткому диску вводят следующие параметры команды:

  • m – выводит список всех доступных команд в fdisk и используется для полного ознакомления с утилитой;
  • p – выводит на экран текущую таблицу разделов, чтобы увидеть, какие разделы уже созданы на диске;
  • n – создать новый раздел: система предложит выбрать тип раздела (основной или расширенный) и указать начальный и конечный сектора;
  • d – удаляет выбранный раздел: рекомендуется использовать с осторожностью, так как удаление раздела приведет к потере всех данных на нем;
  • w – сохраняет все изменения, сделанные в таблице разделов, и завершает работу fdisk. После записи изменений они вступают в силу и их нельзя отменить;
  • q – выйти без сохранения изменений, сделанных в текущем сеансе;
  • t – изменение типа раздела, за которым следует номер раздела, подлежащий изменению.

Первичные и расширенные разделы

На MBR-диске может быть 2 основных типа разделов: основной первичный (primary) и расширенный (extended*)*. Если требуется сделать диск "загрузочным", первый раздел должен быть основным. Следует учесть, что в таблице MBR может быть только 4 основных раздела на диске.

Один из способов обойти это ограничение – создать расширенный раздел, который действует как контейнер для логических разделов. Например, могут быть следующие разделы: основной, дополнительный, занимающий оставшуюся часть дискового пространства и пять логических разделов внутри него.

В ОС первичный и расширенный разделы обрабатываются одинаково, поэтому нет никаких преимуществ использования одного над другим.

Управление разделами

  • Создание нового раздела:
  • запуск fdisk для нужного диска:
sudo fdisk /dev/sda
  • чтобы создать новый раздел, необходимо ввести команду n (new);
  • выполнить инструкции утилиты, указав:
    • какой тип раздела необходимо создать: основной (primary) или расширенный (extended).

Примечание – Обычно используется основной.

  • номер раздела (например, номер "1" для первого раздела);
  • начальный сектор. Если оставить поле пустым, будет использован первый доступный сектор;
  • конечный сектор или размер раздела (например, +10Гб для 10 Гб);
  • если всё прошло успешно, ввести параметр p, чтобы просмотреть таблицу разделов и убедиться, что новый раздел создан;
  • для того чтобы записать изменения и выйти необходимо ввести команду w.

Удалениераздела:

  • запустить fdisk для нужного диска:
sudo fdisk /dev/sda
  • для того чтобы удалить раздел необходимо ввести команду d;
  • утилита предложит выбрать номер раздела, который необходимо удалить;
  • ввести команду p, чтобы убедиться, что раздел удален;
  • ввести команду w для того, чтобы записать изменения и выйти.

Примечание – Перед внесением любых изменений в разделы диска рекомендуется сделать резервную копию всех важных данных, так как изменения в таблице разделов могут привести к потере данных.

Проверка нераспределенного пространства диска

Если неизвестно сколько свободного места осталось на диске, то можно использовать команду F(free), чтобы показать нераспределенное пространство, например:

Command (m for help): F
Unpartitioned space /dev/sdd: 881 MiB, 923841536 bytes, 1804378 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
start End Sectors Size
2099200 3903577 1804378 881M

Gdisk

Для работы с GPT-дисками применяется утилита gdisk, являющаяся функциональным аналогом fdisk, но адаптированная для GUID-таблиц разделов. Её интерфейс интерактивный и использует похожие команды.

Просмотр таблицы разделов

Для отображения текущей таблицы разделов используется команда p. Пример вывода:

Command (? for help): p
Disk /dev/sdb: 3903578 sectors, 1.9 GiB
Model: DataTraveler 2.0
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): AB41B5AA-A217-4D1E-8200-E062C54285BE
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 3903544
Partitions will be aligned on 2048-sector boundaries
Total free space is 1282071 sectors (626.0 MiB)
Number  Start (sector)  End (sector)  Size     Code  Name
1       2048            2099199       1024.0 MiB  8300  Linux filesystem
2       2623488         3147775       256.0 MiB   8300  Linux filesystem

Особенности GPT-разметки:

  • каждому диску присваивается уникальный идентификатор (GUID) — 128-битное шестнадцатеричное число. Благодаря этому при монтировании разделов используется GUID, а не путь устройства (например, /dev/sdb).
  • GPT-диски поддерживают до 128 разделов, устраняя необходимость в первичных и расширенных разделах.
  • свободное место отображается автоматически, поэтому отсутствует необходимость в команде F, как в fdisk.

Создание и удаление разделов

Создание нового раздела выполняется командой n.

Во время создания указываются номер раздела, начальный и конечный сектора (или размер), а также тип. GPT поддерживает больше типов разделов, чем MBR.

Просмотреть список доступных типов можно с помощью команды l.

Пример:

Command (? for help): n
Partition number (1-128): 3
First sector (34-3903544, default = 34):
Last sector, +sectors or +size{K,M,G,T,P} (default = 3903544): +512M
Hex code or GUID (L to show codes, Enter = 8300):

Удаление раздела выполняется командой d и указанием номера необходимого раздела.

Если требуется переупорядочить нумерацию разделов без изменения их содержимого, используется команда s.

После выполнения этой команды таблица разделов будет перенумерована последовательно.

Следует учитывать, что при создании нового раздела можно использовать всё нераспределённое пространство диска, независимо от расположения существующих разделов.

Восстановление и резервирование данных GPT

GPT-диски содержат резервные копии заголовка и таблицы разделов, что облегчает восстановление в случае повреждения. Для доступа к функциям восстановления в gdisk используется команда r (recovery mode).

Доступные операции восстановления:

  • b и c – восстановление основного заголовка GPT или таблицы разделов;
  • d и e – восстановление из резервной копии;
  • f и g – преобразование схем разметки (из MBR в GPT и наоборот).

Для получения справки по доступным командам восстановления необходимо ввести знак "?" в режиме recovery.

Работа с дисками

При необходимости увеличить объём хранилища выполняется подключение и монтирование дополнительного диска на физическую или виртуальную машину. Для этого следует придерживаться алгоритма действий:

Подготовка. Необходимо проверить доступные в ОС накопители командой:

sudo fdisk -l

Иногда наличие устройства в BIOS может быть недостаточным.

  • Разметка диска через утилиту fdisk с указанием пути до диска:
fdisk /dev/sdb

Так как предполагается создавать простой раздел (не загрузочный) и используется все дисковое пространство, следует нажать клавиши n и Enter.

Система запросит тип раздела выбрать p(primary) – первичный.

Номер раздела – 1.

На вопрос о первом и последнем секторе нажать клавишу Enter.

Следует обратить внимание, что если требуется создать несколько логических дисков, то в ответе на последний сектор следует указать размер в kilo-, mega-, giga-, tera-, petabytes. Соответственно, если раздел нужен размером в 2 гигабайта, то нужно указать 2Гб.

Далее нужно сохранить изменения нажатием клавиши w и подтвердить выбор с помощью клавиши Enter.

После выполнения операции, описанной выше, в Системе будет создано устройство /dev/sdb1.По своей сути это и есть раздел на диске.

Форматирование раздела. ОС предлагает на выбор несколько вариантов ФС. Создание ФС происходит выполнением команды mkfs с указанием ключей либо выполнением одной из программ:

mkfs.bfs
mkfs.btrfs
mkfs.cramfs
mkfs.ext2
mkfs.ext3
mkfs.ext4
mkfs.ext4dev
mkfs.fat
mkfs.minix
mkfs.msdos
mkfs.ntfs
mkfs.vfat
mkfs.xfs

Форматирование выполняется командой:

sudo mkfs.ext4 /dev/sdb1

Диск готов к работе. Остается только смонтировать его.

Монтирование. В ОС существует возможность монтировать диск (либо иное блочное устройство) в любую из директорий, которая должна быть пустой. Для этого нужно выполнить следующие действия:

  • создать каталог в директории /mnt:
sudo mkdir /mnt/1
  • изменить права доступа к каталогу (всем разрешаем всё):
sudo chmod -R 0777 /mnt/1
  • монтировать:
sudo mount /dev/sdb1 /mnt/1

Для монтирования диска автоматически при загрузке Системы необходимо редактировать файл /etc/fstab с помощью любого текстового редактора, например, nano:

sudo nano /etc/fstab

Далее в самый конец файла вставить строку и сохранить файл:

/dev/sdb1 /mnt/1 ext4 defaults 0 0

Образы дисков

Для создания и записи образов дисков в Системе используются утилиты dd, genisoimage и wodim, обеспечивающие полное управление процессом копирования и подготовки носителей.

Для записи информации на новый диск предварительно создаётся его образ.

Для создания копии существующего диска необходимо выполнить:

dd if=/dev/cdrom of=mycd.iso

где:

  • if — источник (input file);
  • of — выходной файл (output file).

Утилита dd копирует содержимое устройства поблочно, создавая точный образ.

При необходимости можно задать размер блока (bs=1024) или продолжить копирование при ошибках чтения (noerror).

Примечание — утилита dd не подходит для копирования защищённых или двухслойных дисков.

Для создания образа из каталога необходимо выполнить:

genisoimage -f -v -J -o mycd.iso /mnt/somedisk/temp

Параметры:

  • -v – вывод хода выполнения;
  • -J – поддержка длинных имён файлов (Joliet);
  • -f – следование по символическим ссылкам.

Для подготовки содержимого можно создать временный каталог с символическими ссылками на нужные файлы и передать его утилите genisoimage.

При создании DVD-видео необходимо включить файловую систему UDF, используя параметр -udf или -dvd-video.

Расширение Rock Ridge (-r) обеспечивает поддержку атрибутов UNIX и увеличенной глубины каталогов.

Запись образа на диск

Для записи подготовленного ISO-образа применяется утилита wodim:

wodim dev=/dev/hdc -eject -v mycd.iso

Параметры утилиты:

  • -eject – извлечение диска после записи;
  • -dummy – пробная запись без лазера;
  • -multi – многосессионный диск;
  • blank=fast или blank=all – очистка перезаписываемого носителя;
  • speed=<значение> – установка скорости записи;
  • -overburn – запись сверх стандартного объёма.

Диспетчер разделов KDE

Диспетчер разделов KDE — стандартный графический инструмент для управления разделами в среде KDE. Он предоставляет удобный интерфейс для выполнения операций над разделами, включая создание, удаление, изменение размеров и перемещение. Диспетчер разделов поддерживает все основные типы файловых систем, используемых в Unix-подобных системах.

Рисунок 69 – Диспетчер разделов KDE

Для перехода к приложению нужно войти в "Главное меню Системы Утилиты Диспетчер разделов KDE" (рисунок 79).

Диспетчер разделов KDE предоставляет следующие основные функции:

  • просмотр информации о дисках и разделах: о размере, файловой системе и свободном месте;
  • создание новых разделов с выбором файловой системы;
  • удаление разделов;
  • изменение размеров разделов без потери данных, если файловая система поддерживает такие операции;
  • форматирование разделов в различные файловые системы, такие как ext4, xfs, btrfs и другие;
  • присвоение меток разделам для удобства их идентификации.

Практические инструкции по работе с** **Диспетчером разделов KDE:

  1. Для создания нового раздела нужно:
  • выбрать диск, на котором будет создан новый раздел;
  • в верхнем навигационном меню программы перейти в "Раздел ⟶ Создать";
  • задать тип раздела (например, основной или логический) и размер раздела;
  • выбрать файловую систему для нового раздела, например, ext4;
  • при необходимости задать метку раздела;
  • нажать на кнопку Применить, чтобы подтвердить создание нового раздела. Изменения будут применены только после подтверждения.
  1. Для изменения размера раздела нужно:
  • выбрать раздел, который необходимо изменить;
  • по нажатию правой кнопкой мыши на разделе выбрать кнопку Изменить размер;
  • в открывшимся окне ввести новый желаемый размер раздела (рисунок 70);
  • нажатием на кнопку ОК сохранить все внесенные изменения;

Рисунок 70 - Изменение размера раздела в Диспетчере разделов KDE

  1. Для удаления раздела нужно:
  • выбрать раздел, который необходимо удалить;
  • по нажатию правой кнопкой мыши на разделе в контекстном меню выбрать кнопку Удалить;
  • для подтверждения действия нажать на кнопку Применить.

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

Важно – Следует быть осторожными при работе с разделами, на которых установлена ОС или важные данные, чтобы избежать потери доступа к Системе.

GParted

GParted — это мощный и гибкий графический инструмент для управления разделами жесткого диска. Он поддерживает широкий спектр файловых систем и позволяет выполнять разнообразные операции с дисками и разделами, такие как создание, удаление, изменение размера и перемещение разделов. GParted особенно полезен для сложных задач по переразметке дисков и работает в среде GNOME.

GParted позволяет просматривать и отменять действия до их применения. Также можно видеть все запланированные изменения в журнале перед их окончательной реализацией.

Рисунок 71 – Приложение GParted

Для перехода к приложению нужно войти в "Главное меню Системы → Все приложения → GParted". После запуска GParted открывается основной интерфейс программы (рисунок 71):

  • Меню выбора диска: в верхнем правом углу в выпадающем списке можно выбрать нужный диск, если у вас несколько физических дисков.
  • Основное окно, в котором отображаются все разделы выбранного диска в виде графической схемы.
  • Информация о разделе: под схемой отображается информация о выделенном разделе: его файловая система, размер, статус (занятое и свободное место), а также метка.

Основные операции с разделами:

  1. Для создания нового раздела нужно:
  • выбрать диск с неразмеченным пространством;
    1. по нажатию правой кнопкой мыши по неразмеченному пространству на диске в открывшимся контекстном меню выбрать кнопку Создать (пиктограмма файл);
    2. в открывшемся окне выбрать размер раздела, файловую систему (например, ext4, NTFS и т.д.) и метку;
    3. нажать на кнопку Добавить, чтобы сохранить изменения;
    4. для применения изменений нажать на кнопку Применить (пиктограмма галочка в верхней панели инструментов).
  • Для изменения размера раздела нужно:
    1. выбрать раздел, который необходимо изменить;
    2. нажать на кнопку Изменить размер или перенести выбранный раздел (пиктограмма стрелка);
    3. ввести новый размер раздела;
    4. нажать на кнопку Применить (пиктограмма галочка), чтобы сохранить изменения.
  • Для удаления раздела нужно:
    1. выбрать раздел, который необходимо удалить;
    2. нажать на кнопку Удалить выбранный раздел (пиктограмма корзина);
    3. подтвердить действие нажатием на кнопку Применить.
  • Для форматирования раздела нужно:
    1. выбрать раздел, который нужно отформатировать;
    2. нажатием правой кнопкой мыши по разделу выбрать опцию "Форматировать в…" или перейти в пункт навигационного меню "Раздел → Форматировать в…", затем выбрать файловую систему, в которую необходимо отформатировать раздел;
    3. подтвердить форматирование нажатием на кнопку Применить;
  • Для создания таблицы разделов:
    1. выбрать раздел, с которым будет продолжена работа;
    2. перейти в навигационном меню в раздел "Устройство → Создать таблицу разделов";
    3. в открывшемся окне при необходимости указать дополнительные параметры.

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

Управление дисковыми квотами

Настройка дисковых квот позволяет ограничивать объем дискового пространства, доступный пользователям и группам, а также контролировать потребление ресурсов на уровне файловой системы. Поддержка квот реализована средствами подсистемы diskquota.

Механизм квотирования обеспечивает:

  • ограничение дискового пространства (block quota);
  • ограничение количества создаваемых inode (inode quota);
  • раздельное применение ограничений для пользователей и групп;
  • регистрацию событий превышения лимитов в системных журналах;
  • управление превышениями через мягкие и жёсткие лимиты;
  • автоматическое уведомление пользователя при достижении мягкого лимита.

Поддержка квот актуальна для файловых систем ext4, xfs и других, входящих в состав ОС. Настройка выполняется отдельно для каждого раздела файловой системы.

Перед включением квот необходимо проверить поддержку соответствующих опций монтирования. Для файловой системы ext4 требуется указать параметры usrquota и/или grpquota.

Для постоянного включения квот следует отредактировать запись в файле /etc/fstab. Пример строки:

/dev/sda1   /home   ext4   defaults,usrquota,grpquota   0 2

После внесения изменений файловая система должна быть перемонтирована:

mount -o remount /home

Для файловой системы xfs параметры квот задаются при монтировании:

mount -o uquota,gquota /home

После включения опций квотирования требуется создать или обновить служебные файлы квот. Для ext4 используется команда:

quotacheck -cug /home

где:

  • -u — проверка пользовательских квот;
  • -g — проверка групповых квот;
  • -c — создание новых файлов квот.

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

quotaoff /home
quotacheck -avug

После завершения проверки квоты включаются:

quotaon /home

Статус квот можно просмотреть командой:

quotaon -p /home

Для назначения пользовательских и групповых квот используется утилита edquota. Редактирование квот для пользователя:

edquota имя_пользователя

На экране редактора указываются значения:

  • Soft limit — мягкое ограничение: задаёт порог допустимого использования дискового пространства или числа файлов, при превышении которого для пользователя начинается отсчёт льготного периода (grace period), однако работа с файловой системой остаётся доступной;
  • Hard limit — жёсткое ограничение: представляет собой абсолютный предел, превышение которого невозможно и при достижении которого дальнейшая запись данных или создание файлов блокируется немедленно;
  • Inode soft/hard — ограничения на количество файлов: регулируют не объём данных, а максимально допустимое количество файлов и каталогов, которые может создать пользователь или группа.

Период превышения мягкого лимита определяет время, в течение которого пользователь может превышать soft limit без блокировки операций. Значение задаётся командой:

edquota -t

Указывается время для блоков и inode, например:

  • 7days;
  • 12hours.

По истечении срока превышения пользователь не сможет создавать файлы или занимать новое пространство до освобождения ресурса или увеличения лимита.

Аналогично выполняется настройка квот для группы:

edquota -g имя_группы

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

edquota -p пользователь_образец пользователь1 пользователь2

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

quota -u имя_пользователя

Для просмотра групповых квот:

quota -g имя_группы

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

repquota -a

Отчёт формируется по каждому смонтированному разделу с поддержкой квот, включая сведения о фактическом использовании блоков и inode.

События, связанные с превышением квот, фиксируются подсистемой journald и могут быть просмотрены с помощью:

journalctl -u quota

Также возможен фильтр по ключевому слову:

journalctl | grep quota

Блокирование файлов (fileprotect)

Пакет fileprotect обеспечивает возможность блокирования изменений определённых файлов и каталогов независимо от прав доступа, заданных в файловой системе. Механизм предназначен для защиты критически важных конфигурационных файлов от модификации, удаления и перезаписи как пользователями, так и прикладными процессами.

Механизм fileprotect позволяет:

  • помечать файлы и каталоги как защищённые от изменений;
  • запрещать операции записи, переименования и удаления;
  • вести журнал событий обращения к защищённым объектам;
  • применять настройки как на уровне отдельных файлов, так и целых каталогов.

Ограничения применяются средствами подсистемы ядра, что обеспечивает невозможность обхода защиты через обычные механизмы изменения прав.

Настройка осуществляется с помощью утилиты fileprotectctl. Для добавления файла в список защищённых используется команда:

fileprotectctl add /путь/к/файлу

Для удаления файла из защиты:

fileprotectctl remove /путь/к/файлу

Для просмотра текущего списка защищённых объектов:

fileprotectctl list

При необходимости может быть заблокирован целый каталог. В этом случае защита применяется ко всем вложенным объектам.

Журналирование событий

Сведения о попытках изменения защищённых файлов фиксируются в системном журнале и могут быть просмотрены с помощью команд:

journalctl -u fileprotect

или с фильтром по ключевому слову:

journalctl | grep fileprotect

Журналирование позволяет выявлять процессы или пользователей, предпринимающих попытки модификации критически важных файлов.

При временной необходимости модификации конфигурации защита снимается:

fileprotectctl disable /путь/к/файлу

После завершения изменения объект может быть снова защищён:

fileprotectctl enable /путь/к/файлу

Удаление пакета fileprotect не рекомендуется, поскольку это приводит к потере ранее назначенных правил и лишает Систему дополнительного уровня защиты файловой структуры.