partitions — разметка диска для Linux сервера

Разметка диска для Linux сервера предстваляет собой выделение партиций. Партиция — выделенная часть диска, на которой создается своя файловая система. Партиция или раздел монтируется и форматируется отдельно.

 

 

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

 

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

 

Посмотреть список партиций

parted -l

Model: ATA QEMU HARDDISK (scsi)
Disk /dev/sda: 268MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1573kB 268MB 267MB primary ext4 boot


Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10,7GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:

Number Start End Size File system Flags
1 0,00B 10,7GB 10,7GB ext4

 

Здесь в раздела — 2 диска, один из которых является загрзуочным и содержит ядро с загрузчиком.

 

Что и куда смонтировано можно посмотреть выполнив mount просто или df

df -h

Filesystem Size Used Avail Use% Mounted on
udev 487M 0 487M 0% /dev
tmpfs 101M 14M 87M 14% /run
/dev/vda 9,9G 3,2G 6,2G 34% /

 

/dev/vda смонитирован в корень.

Стандартная таблица разделов MBR (DOS partition table)

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

 

Современные дистрибутивы используют таблицк разделов GUID (globally unique identifiers или GPT) , вместо BIOS они использут UEFI



 

GPT

  • позволяет работать с разделами объемом больше  2TB
  • первые 512 байт содержат MBR (для обратной совместимости)


MBR

  • может занимать весь объем или 2 Тб
  • 128 байт каждой партиции содержат hexdump

 

parted -l не показывает swap раздел поскольку он не монтируется.

 




Как создать партиции

Для некорневого раздела!

Отмонтируем

unmount /dev/sdb

 

Переходим в parted для раздела

parted /dev/sdb

Вывести список партиций

p

 

Вывести помощь по утилите

help

 

Задать единицы измерения — мегабайты

unit mib

 

Удалить существующие разделы (по номеру в списке)

rm 1

 

Теперь создание нового раздела

mktable

 

Тип

msdos

 

Подтверждение

yes

 

Снова список партиций

p

 

Для gpt аналогичная последовательность

mktable

Тип таблицы разделов

gpt

Подтверждение

yes

 

Показать неразмеченное и доступное пространство

print free

Единицы измерения

unit mib

 

Создать раздел

mkpart

Имя

test1

Тип ФС

fat32


Может быть vfat

Начальный сектор (утилита выводит подсказки на всех этапах)

1mib

Конечный сектор

1025mib

 

Далее следующий раздел, он начнется с 1025 Мб. Моно указывать все в одну строку

mkpart test2 ext4 1025mib 1926mib

Монтировать нужно отдельно позже

 

Просмотрим список

parted -l

Далее создаем файловую систему на разделах

mkfs.ext4 /dev/sdb2

 

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

mkdir /mount/1

 

mount -t ext4 /dev/sdb2 /mount/1

В /mount/1 должен появиться каталог lost+found

ls -la /mount/1

 

С MBR процесс немного отличается

Есть 3 типа таблицы:

primary (содержит фаловые системы, до 4 штук)
extended (содержит логические разделы, до 1 штук)
logical (содержит фаловые системы, до 15 штук)

 

Также начинаем с диска

parted /dev/sdb

Единицы измерения

unit mib

Смотрим неразмеченное пространство

print free

 

Будем разботать с msdos

mkpart

Создаем primary раздел

primary

Указыаем тип файловой сисемы

fat32

Начальный сектор

0

Конечный

1024

 

Подтверждаем выбор

То же самое в одну строку для следующего раздела типа extended

mkpart extended 1024mib 1927mib

 Посмотреть список

p

Свободное неразмеченное пространство

print free

 

Создаем логический том на расширенном (extended)

mkpart logical 1024mib 1025mib

 

Логические партиции (их номера) начинаются с 5.

Разметка диска для Linux сервера на этом завершена.

 



Поверх разделов при разметке диска можно создавать lvm

Разметка диска для Linux с использованием lvm начинается также

Задаем мегабайты

unit mib

 

Тип таблицы gpt

mktable gpt

 

Смотрим неразмеченное пространство

print free

 

Создаем партицию

mkpart flushc ext4 0 477mib

 

Для нее указываем, что будет использоваться lvm

set 1 lvm on

1 — номер раздела

 

Добавляем физическое устройство

pvcreate /dev/sdd1

 

Включаем его в vg

vgcreate vg0 /dev/sdd1 /dev/sdc1

 

Смотрим volume group-ы

vgdisplay

 

Теперь размер можно менять динамически

Расширить

vgextend vg0 /dev/sdg1

Сузить

vgreduce vg0 /dev/sdg1

 

И сздавать поверх lv

vgdisplay vg0

 

Выделим 1 Гб

lvcreate -L 1gib vg0 -n lv0

 

Список vg

vgdisplay

 

Список lv

lvdisplay

 

Посмотреть все LVs

lvdisplay /dev/vg0/lv0

 

parted -l покажет, что файловые системы не созданы

 

ФС ext 4 может расширяться на ходу и уменьшаться в отмонтированном состоянии

 

Создаем ФС ext4

mkfs.ext4 /dev/vg0/lv0

 

mount -t ext4 /dev/vg0/lv0 /mount/mountpoint

 

Как и ранее ожидаем увидеть lost+found

ls -la /mount/mountpoint

 

df -h покажет раздел в /mount/mountpoint

 

Его можно расширять

lvextend /dev/vg0/lv0 -L +1gib

 

И потом растягивать ФС

resize2fs /dev/vg0/lv0

 

!Уменьшение размера в обратном порядке

 1) сначала файловую систему

2) потом volume

 

Отмонтируем

unmount /dev/vg0/lv0

 

Проверяем

e2fsck -f /dev/vg0/lv0

Далее уменьшаем ФС

resize2fs /dev/vg0/lv0 1G

 

Смотрим список lv

lvdisplay /dev/vg0/lv0

 

Уменьшаем объем

lvreduce /dev/vg0/lv0 -L -1gib

 

Теперь можно монтировать снова

mount -t ext4 /dev/vg0/lv0 /mount/mountpoint

 

Также можно перенести LV в другой PV

pvmove -n lv0 /dev/sdb1

 

Уменьшить

vgreduce /dev/vg0 /dev/sdb1

 

Или удалить

pvremove /dev/sdb1

 

Подробнее о LVM