Что такое партиция linux

Что такое партиция linux

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Партиции для работы с LVM

Прежде всего рассмотрим создание партиций на одном из подключенных дисков — шаг можно пропустить если работа будет производиться непосредственно с дисками, но партиции использовать также удобно. При помощи партиций можно выделить разделы на дисках, которые система будет видеть как отдельные устройства. Автоматически к имени диска будут добавлены порядковые номера /dev/sdb1, /dev/sdb2 и т.д.

Инициализируем диск, с которым будем работать при помощи fdisk

Просматриваем существующую структуру разделов

Disk /dev/vdc: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3aa19e91

На диске не выделено партиций, создаем новую

Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions

Выбираем тип партиции

Задаем номер раздела (выберется по умолчанию при нажатии ввода)

Оставляем настройки разметки диска (указание первого сектора в байтах) по умолчанию

Для последнего сектора выбираем необходимое значение, под партицию будет выделено 140 Мб, поэтому выбираем размар в байтах 824500

Задаем тип партиции

Все возможные типы партиций можно посмотреть введя L, для LVM нам потребуется тип 8e из списка. Данный код означает тип партиции Linux LVM.

Таким же образом создаем вторую партицию. Отличиями будут 824500 байт которые система предложит в качестве начального сектора для устройства, при выборе значения, определяющего конец партиции достаточно нажать Enter, под нее зарезервируется все оставшееся место на диске.

Читайте также:  Wps office linux русификация через терминал

Вновь просматриваем таблицу

Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3aa19e91

Device Boot Start End Sectors Size Id Type
/dev/vdb1 2048 824500 3350 140M 8e Linux LVM
/dev/vdb2 824500 10485759 10482410 4.86G 8e Linux LVM

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

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

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

Проверить все ли сделано корректно можно примонтировав диски в какую-либо точку файловой системы. Например, выполнив mount -t ext4 /dev/vda1 /mnt. Затем нужно отмонитровать используя umount поскольку монтирование происходит при выполнении pvcreate в дальнейшем.

Для приведенных на иллюстрации в начале статье дисках /dev/vda и /dev/vdc таким же образом создаются партиции, процесс полностью аналогичен — первый и последний биты сектора выбирать не нужно, партиция для устройств занимает весь объем диска.

Создание логических устройств и настройка LVM в Linux

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

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

Physical volume «/dev/vdb1» successfully created.

Physical volume «/dev/vdb2» successfully created.

При необходимости смотрим справку по следующей команде, которую будем использовать

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

vgcreate vg1 /dev/vdb1 /dev/vdb2 /dev/vda1 /dev/vdc1

Volume group «vg1» successfully created

Просматриваем информацию о логической группе

Среди прочего в выводе будет размер всех устройств в группе и ее UUID.

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

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

Создаем логические устройства указывая их размер (ключ -L) и имена (ключ -n)

Logical volume «lv1» created.

Logical volume «lv2» created.

total 0
lrwxrwxrwx 1 root root 7 окт 13 10:17 lv1 -> ../dm-0
lrwxrwxrwx 1 root root 7 окт 13 10:17 lv2 -> ../dm-1

Видим созданные логические устройства, которые видит системаи может работать с ними как с отдельными дисками

На каждом нужно создать файловую систему

Создаем при необходимости точки монтирования и монтируем разделы в файловую систему

Команда выводит все логические девайсы, используемые в системе (информация предствлена в блоках и сгруппирована по устройствам)

— Logical volume —
LV Path /dev/vg1/lv1
LV Name lv1
VG Name vg1
LV UUID VTP39y-e1Ui-Xawl-h4oQ-Ml3k-CacV-aIiERw
LV Write Access read/write
LV Creation host, time vm-2c6ce884, 2017-10-13 10:17:06 +0000
LV Status available
# open 0
LV Size 1,00 GiB
Current LE 256
Segments 1
Allocation inherit
Read ahead sectors auto
— currently set to 256
Block device 253:0

— Logical volume —
LV Path /dev/vg1/lv2
LV Name lv2
VG Name vg1
LV UUID OPik1D-p0C8-3vyh-auJb-xLbi-f625-0zffvf
LV Write Access read/write
LV Creation host, time vm-2c6ce884, 2017-10-13 10:17:31 +0000
LV Status available
# open 0
LV Size 2,00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
— currently set to 256
Block device 253:1

Базовая настройка LVM в Linux на этом завершена. Далее рассмотрены операции с логическими томами, сталкиваться с которыми приходится чаще всего.

Изменение размера логических устройств

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

Читайте также:  Verify 64 bit windows

Создадим файлы в /home, в который смонтировали lv1, их присутствие в файловой системе проверим после того как диск будет расширен

В выводе размер размещенного и неразмещенного пространства vg

VG Size 5,00 GiB
PE Size 4,00 MiB
Alloc PE / Size 768 / 3,00 GiB
Free PE / Size 511 / 2,00 GiB

Расширим lv1 поскольку 1 Гб для /home куда обычно помещаются файлы пользователей недостаточно. Используем команду lvextend. Все все свободное пространство использовать система не даст, оставим 100 Мб, остальное используем для расширения lv1

Rounding size to boundary between physical extents: 1,90 GiB.
Size of logical volume vg1/lv1 changed from 1,00 GiB (256 extents) to 2,90 GiB (743 extents).
Logical volume vg1/lv1 successfully resized.

vgdisplay | grep Size
VG Size 5,00 GiB
PE Size 4,00 MiB
Alloc PE / Size 1255 / 4,90 GiB
Free PE / Size 24 / 96,00 MiB

lvdisplay теперь покажет, что под lv1 выделено 2,9 Гб. Созданные файлы остались на месте

file1.txt file2.txt

При помощи lvremove можно удалить логический девайс и все данные на нем, команду можно выполнить для несуществующего устройства lv3

Failed to find logical volume «vg1/lv3»

Настройка LVM в Linux и практика выделения разделов

Также рейд массивы и LMV можно устанавливать непосредственно на этапе установки операционной системы

Важное правило — при разметке файловой системы стоит избегать помещения раздела /boot на логический раздел поскольку информация из /boot считывается при старте системы, при размещении на логическом устройстве подобное считывание корректно может не произойти.

Часто встречающимся решением является создание рейда 1 на двух дисках с секторами, выделенными под раздел /boot, вне lvm. Остальные диски сервера объединяются в рейд какой-либо конфигурации более эффективной для хранения больших объемов данных. Рейд 1 используется для обеспечения надежности — при выходе из строя одного из дисков загрузочный сектор системы будет считываться с другого.

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

Источник

LVM — это просто!

Собственно, хочется просто и доступно рассказать про такую замечательную вещь как Logical Volume Management или Управление Логическими Томами.
Поскольку уже давно пользуюсь LVM-ом, расскажу что он значит именно для меня, не подглядывая в мануалы и не выдёргивая цитаты из wiki, своими словами, чтобы было понятно именно тем кто ничего о нем не знает. Постараюсь сразу не рассказывать о всяческих «продвинутых» функциях типа страйпов, снапшотов и т.п.

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

есть 3 уровня абстракции:
1. PV (Physical Volume) — физические тома (это могут быть разделы или целые «неразбитые» диски)
2. VG (Volume Group) — группа томов (объединяем физические тома (PV) в группу, создаём единый диск, который будем дальше разбивать так, как нам хочется)
3. LV (Logical Volume) — логические разделы, собственно раздел нашего нового «единого диска» ака Группы Томов, который мы потом форматируем и используем как обычный раздел, обычного жёсткого диска.
это пожалуй вся теория. 🙂 теперь практика:
для работы нужны пакеты lvm2 и возможность работать с привелегиями root поэтому:
$ sudo bash
# apt-get install lvm2

допустим у нас в компе есть жёсткий диск на 40Гб и нам удалось наскрести немного денег и наконец-то купить себе ТЕРАБАЙТНИК! :))) Система уже стоит и работает, и первый диск разбит одним разделом (/dev/sda1 как / ), второй — самый большой, который мы только подключили — вообще не разбит /dev/sdb…
Предлагаю немножко разгрузить корневой диск, а заодно ускорить (новый диск работает быстрее старого) и «обезопасить» систему с помощью lvm.
Можно делать на втором диске разделы и добавлять их в группы томов (если нам нужно несколько групп томов),
а можно вообще не делать на диске разделы и всё устройство сделать физическим разделом (PV)

Читайте также:  Где хранятся эскизы windows 10

# pvcreate /dev/sdb
Physical volume «/dev/sdb» successfully created

Создаём группу томов с говорящим названием, например по имени машины «ws», чтобы когда мы перетащим данный диск на другую машину небыло конфликтов с именами групп томов:

# vgcreate ws /dev/sdb
Volume group «vg0» successfully created

желательно внести с корневого раздела такие папки как /usr /var /tmp /home, чтобы не дефрагментировать лишний раз корневой раздел и ни в коем случае его не переполнить, поэтому создаём разделы:

# lvcreate -n usr -L10G ws # здесь мы создаём раздел с именем «usr», размером 10Gb
Logical volume «usr» created
по аналогии делаем то же для /var, /tmp, /home:
root@ws:

# lvcreate -n var -L10G ws
root@ws:

# lvcreate -n tmp -L2G ws
root@ws:

# lvcreate -n home -L500G ws
у нас ещё осталось немного свободного места в группе томов (например для будущего раздела под бэкап)
посмотреть сколько именно можно командой:
root@ws:

# vgdisplay
информацию по созданным логическим томам
root@ws:

# lvdisplay
информацию по физическим томам
root@ws:

разделы что мы создали появятся в папке /dev/[имя_vg]/, точнее там будут ссылки на файлы,
lrwxrwxrwx 1 root root 22 2009-08-10 18:35 swap -> /dev/mapper/ws-swap
lrwxrwxrwx 1 root root 21 2009-08-10 18:35 tmp -> /dev/mapper/ws-tmp
lrwxrwxrwx 1 root root 21 2009-08-10 18:35 usr -> /dev/mapper/ws-usr
lrwxrwxrwx 1 root root 21 2009-08-10 18:35 var -> /dev/mapper/ws-var
и т.д…

дальше lvm уже почти кончается… форматируем наши разделы в любимые файловые системы:
root@ws:

# mkfs.ext2 -L tmp /dev/ws/tmp
root@ws:

# mkfs.ext4 -L usr /dev/ws/usr
root@ws:

# mkfs.ext4 -L var /dev/ws/var
root@ws:

# mkfs.ext4 -L home /dev/ws/home

кстати, не плохо было бы сделать раздел подкачки:
root@ws:

# lvcreate -n swap -L2G ws
root@ws:

# mkswap -L swap /dev/ws/swap
root@ws:

создаём папку и подключая по очереди новообразовавшиеся тома, копируем в них нужное содержимое:
root@ws:

# mkdir /mnt/target
root@ws:

# mount /dev/ws/home /mnt/target
копируем туда всё из папки /home своим любимым файловым менеджером (с сохранением прав доступа), например так ;):
root@ws:

# cp -a /home/* /mnt/target/
root@ws:

# umount /mnt/target/
кстати, для папки temp необходимо только поправить права, копировать туда что-либо необязательно:
root@ws:

На вкусное, хочу предложить более продвинутую штуку:
допустим у нас есть система с разделом на LVM, а жёсткий диск начал сбоить, тогда мы можем без перезагрузки переместить всю систему на другой жёсткий диск/раздел:

# On-line добавление/удаление жёстких дисков с помощью LVM (пример)

# pvcreate /dev/sda1 # наш эмулятор сбойного диска
Physical volume «/dev/sda1» successfully created

# pvcreate /dev/sdb1 # наш эмулятор спасательного диска
Physical volume «/dev/sdb1» successfully created

# vgcreate vg0 /dev/sda1 # создаю группу томов vg0
Volume group «vg0» successfully created

# lvcreate -n test -L10G vg0 #создаю раздел для «важной» инфы
Logical volume «test» created

# mkfs.ext2 /dev/vg0/test # создаю файловую систему на разделе
root@ws:

# mount /dev/mapper/vg0-test /mnt/tmp/ #монтирую раздел
… # заполняю его информацией, открываю на нем несколько файлов и т.п.

# vgextend vg0 /dev/sdb1 # расширяю нашу групу томов на «спасательный» диск
Volume group «vg0» successfully extended

# pvmove /dev/sda1 /dev/sdb1 #передвигаю содержимое с «умирающего» диска на «спасательный»
/dev/sda1: Moved: 0.9%
/dev/sda1: Moved: 1.8%

/dev/sda1: Moved: 99.7%
/dev/sda1: Moved: 100.0%

# vgreduce vg0 /dev/sda1 # убираю «умирающий» диск из группы томов.
Removed «/dev/sda1» from volume group «vg0»

Итого:
Я создал логический раздел, отформатировал его, примонтировал и заполнил нужными данными, затем переместил его с одного устройства на другое, при этом раздел остался примонтирован и данные всё время оставались доступны!
Подобным образом мне удавалось без перезагрузки перенести всю систему с умирающего диска на рэид-массив. 🙂

Источник

Оцените статью