Как создать файловую систему на блочном устройстве? Какие параметры можно задать при создании?devops-71

Основные шаги создания ФС

  1. Подготовка устройства:
    • Проверка доступности устройства
    • Очистка старых данных (опционально)
# Просмотр доступных блочных устройств
$ lsblk
# Очистка суперблоков (осторожно!)
$ wipefs -a /dev/sdX
  1. Создание разделов (опционально):
    • Использование fdisk, gdisk или parted
# Для MBR
$ fdisk /dev/sdX
# Для GPT
$ gdisk /dev/sdX
  1. Выбор типа файловой системы:
    • ext4 (стандарт для Linux)
    • XFS (для больших файлов)
    • Btrfs (продвинутые функции)
    • Другие (NTFS, FAT для совместимости)

Основные команды создания ФС

Для ext4 :

$ mkfs.ext4 /dev/sdX1

Для XFS:

$ mkfs.xfs /dev/sdX1

Для Btrfs:

$ mkfs.btrfs /dev/sdX1

Ключевые параметры создания

1. Размер блока :

  • 1024, 2048 или 4096 байт (по умолчанию обычно 4096)
  • Меньшие блоки лучше для маленьких файлов
  • Большие блоки эффективнее для больших файлов
$ mkfs.ext4 -b 4096 /dev/sdX1

2. Журналирование:

  • Размер журнала (-J size=)
  • Отключение журнала (не рекомендуется)
# Установка размера журнала 512MB
$ mkfs.ext4 -J size=512 /dev/sdX1

3. Пространство для root :

  • Процент резервирования для суперпользователя
  • По умолчанию 5% (для серверов можно уменьшить)
# Резервируем 1% для root
$ mkfs.ext4 -m 1 /dev/sdX1

4. Метки и UUID:

  • Метка тома (-L)
  • Указание UUID (обычно генерируется автоматически)
# Создание с меткой "DATA"
$ mkfs.ext4 -L DATA /dev/sdX1

5. Особые параметры для разных ФС:

Для XFS:

  • Размер группы размещения (-d agcount=)
  • Размер журнала (-l size=)
$ mkfs.xfs -d agcount=4 -l size=512m /dev/sdX1

Для Btrfs:

  • Профиль метаданных (-m)
  • Профиль данных (-d)
# Создание Btrfs с зеркалированием метаданных
$ mkfs.btrfs -m raid1 /dev/sdX1

Дополнительные настройки

  1. Проверка после создания (-c):
    • Проверка на bad-блоки
$ mkfs.ext4 -c /dev/sdX1
  1. Настройки inode:
    • Количество inodes (-N)
    • Размер inode (-I)
# Создание с увеличенным числом inodes
$ mkfs.ext4 -N 1000000 /dev/sdX1
  1. Сжатие (для поддерживающих ФС):
    • Zstd в Btrfs
    • LZO в Btrfs
$ mkfs.btrfs -O compress-zstd /dev/sdX1

Автоматическое создание

Использование mkfs без параметров применяет разумные умолчания:

$ mkfs -t ext4 /dev/sdX1

Проверка созданной ФС

# Просмотр информации о созданной ФС
$ blkid /dev/sdX1
$ tune2fs -l /dev/sdX1 (для ext*)
$ xfs_info /dev/sdX1 (для XFS)

Монтирование новой ФС

# Создание точки монтирования
$ mkdir /mnt/newfs
# Монтирование
$ mount /dev/sdX1 /mnt/newfs
# Добавление в /etc/fstab для автоматического монтирования
$ echo "/dev/sdX1 /mnt/newfs ext4 defaults 0 2" >> /etc/fstab

Резюмируем: создание файловой системы включает выбор типа ФС, настройку параметров (размер блока, журналирование, резервирование пространства) и последующее монтирование. Современные инструменты типа mkfs предоставляют гибкие настройки под различные сценарии использования - от SSD-оптимизированных ФС до высоконадежных конфигураций с зеркалированием метаданных.