- #Как добавить новый диск в Linux?
- #Добавление диска
- #Шаг 1. Анализ конфигурации дискового пространства и поиск нового устройства (диска)
- #Шаг 2. Создание нового раздела на новом устройстве (диске)
- #Шаг 3. Анализ имеющейся конфигурации LVM и файловой системы
- #Шаг 4. Расширение LVM
- #Шаг 5. Расширение файловой системы
- #Шаг 6. Проверка.
- Обозначения дисков и дисковых разделов в системах linux.
- Диски.
- Разделы.
#Как добавить новый диск в Linux?
lsblk — вывести список блочных устройств;
fdisk /dev/sdb — создать новый раздел в неразмеченной области /dev/sdb ,
далее n — создать раздел, p — создать основной раздел, w — записать изменения на диск;
pvs — вывести список физических томов;
vgs — вывести список группы томов;
lvs — вывести список логических томов;
df -hT — вывести список разделов и файловых систем;
pvcreate /dev/sdb1 — создать новый физический том /dev/sdb1;
vgextend centos /dev/sdb1 — добавить том /dev/sdb1 в группу centos;
lvextend -l +100%FREE /dev/centos/root — расширить логический том /dev/centos/root; xfs_growfs /dev/mapper/centos-root — увеличить размер файловой системы XFS на логическом томе /dev/mapper/centos-root (для Fedora, CentOS, RHEL, Oracle Linux, Alma Linux, Rocky Linux);
resize2fs /dev/mapper/ubuntu-root — увеличить размер файловой системы EXT4 на логическом томе /dev/mapper/ubuntu-root (для Ubuntu, Debian).
#Добавление диска
В данном примере будет описано как расширить дисковое пространство раздела / (root) на 10Gb путем добавления нового устройства (диска) используя возможности LVM.
Расширение будет выполнено на примере дистрибутива CentOS . Данная инструкция подходит для большинства дистрибутивов Linux, дает подробную информацию, как корректно расширить дисковое пространство даже при нестандартной разметке разделов, учитывает особенности команд различных дистрибутивов.
Примечание: Все команды необходимо выполнять под пользователем root либо с правами суперпользователя (sudo).
При выполнении данной инструкции есть риск потери данных, поэтому предварительно рекомендуется сделать резервную копию виртуальной машины.
#Шаг 1. Анализ конфигурации дискового пространства и поиск нового устройства (диска)
Сперва следует определить название нового добавленного устройства (диска) в системе с помощью команды lsblk .
Структуру дискового пространства можно отобразить в виде схемы:
В данном примере мы видим, что в системе имеется 3 устройства:
На устройстве /dev/sda (30Gb) созданы 2 раздела:
- Раздел /dev/sda1 (1Gb) является первичным с меткой /boot, на который установлен загрузчик ядра linux.
- Раздел /dev/sda2 (29Gb) является расширенным разделом LVM, на котором создан физический том /dev/sda2. На основе физического тома создана группа томов centos, в которую входят 2 логических тома root и swap.
Устройства /dev/sdb (10Gb) и /dev/vda (20Gb) добавлены в систему, но не имеют разделов.
Выберем для расширения устройство /dev/sdb размером 10Gb.
Устройства (диски) в linux могут иметь следующие названия: sda, sdb, sdc и др.
Примечание: устройство vda было создано во время первичного заказа виртуальной машины с опцией дополнительный диск.
В данном примере мы используем новое устройство /dev/sdb (название устройства может отличаться).
#Шаг 2. Создание нового раздела на новом устройстве (диске)
Необходимо создать новый раздел командой: fdisk /dev/sdb , где /dev/sdb — имя нового раздела.
Далее последовательно ввести нижеуказанные ключи:
n — создать новый раздел
p — создать новый основной раздел
выбрать номер раздела, его первый и последний секторы (по умолчанию Enter )
w — сохранить новый раздел на диск
Созданный раздел можно увидеть, снова введя команду lsblk .
2.1 Используя утилиту fdisk , создайте новый раздел на новом устройстве, в нашем случае это /dev/sdb .
Примечание: название устройства может отличаться.
Введите n , чтобы создать новый раздел:
[root@centos ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.32.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0xba91dc06. Command (m for help): n
2.2 Затем выберите p , чтобы создать новый основной раздел:
Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1
Примечание: В вашей системе может быть только 4 основных раздела на одном диске.
Если вы уже достигли этого предела, создайте расширенный раздел.
2.3 Выберите номер раздела и его первый и последний секторы, если вы нажмете Enter , то по умолчанию новый раздел будет использовать все доступное дисковое пространство:
First sector (2048-20971519, default 2048): Last sector, +sectors or +size (2048-20971519, default 20971519): Created a new partition 1 of type 'Linux' and of size 10 GiB.
2.4 Наконец, вам нужно записать раздел на диск с помощью команды w .
Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
2.5 Проверьте, был ли создан раздел с помощью команды lsblk .
На устройстве /dev/sdb (10Gb) имеется раздел /dev/sdb1 (10Gb).
#Шаг 3. Анализ имеющейся конфигурации LVM и файловой системы
Для проверки существующей конфигурации LVM можно ввести команды:
pvs — вывести название и количество имеющихся физических томов (PV)
vgs — вывести группы томов (VG)
lvs — вывести логические тома (LV)
Необходимо определить системный раздел и тип файловой системы на нем, который требуется расширить с помощью команды
df -hT .
В данном примере мы видим, что в системе имеется физический том /dev/sda2, который входит в созданную группу томов centos.
В этой группе томов созданы 2 логических тома: root и swap.
В данном примере мы хотим расширить раздел с названием /dev/mapper/centos-root, размером 28Gb имеющий файловую систему xfs, который имеет точку монтирования /.
Структура дискового пространства до расширения LVM отображена на схеме:
#Шаг 4. Расширение LVM
4.1 На новом диске необходимо создать новый физический том с помощью команды:
pvcreate /dev/sdb1 , где /dev/sdb1 — имя нового раздела.
4.2 Расширить группу томов добавив к ней новый физический том с помощью команды:
vgextend centos /dev/sdb1 , где centos — название группы томов (можно узнать по команде vgs ).
4.3 Расширить логический том, выполнив команду:
lvextend -l +100%FREE /dev/centos/root , где /dev/centos/root — путь расширяемой файловой системы,
centos — название группы (можно узнать по команде vgs ),
root — название логического тома (можно узнать по команде lvs ).
В команде выше, вместо /dev/centos/root можно указать другой путь /dev/mapper/centos-root (можно узнать по команде df -hT ), результат будет тот же.
4.1 Создайте на только что созданном разделе физический том с помощью команды pvcreate . (в нашем примере созданный раздел это /dev/sdb1 . Обратите внимание,что название раздела может отличаться, а также проверьте созданный физический том командой pvs :
В данном примере физический том имеет свободное пространство 10Gb и не имеет группы томов.
4.2 На шаге 3.1 мы узнали название группы томов. Расширьте эту группу томов, добавив к ней новый физический том с помощью команды vgextend .
Проверьте изменения с помощью команды vgs . (в нашем примере группа томов называлась centos, новый физический том — /dev/sdb1 . Обратите внимание, у вас будет свое название группы и физического тома. Столбец VFree показывает количество свободного места.
В данном примере группа томов centos включает 2 физических тома и имеет 10Gb свободного пространства.
4.3 На шаге 3.1 мы узнали названия группы томов и расширяемого логического тома. Расширьте этот логический том, выполнив команду lvextend . (в нашем примере группа томов называлась centos , логический том — root . Обратите внимание, у вас будет свое название группы и логического тома. Убедитесь в расширении логического тома командой lvs .
В данном примере общий размер логического тома из группы томов centos расширен до 37.99Gb.
#Шаг 5. Расширение файловой системы
Примечание: Данная операция несет риск потери данных. Предварительно рекомендуется сделать резервную копию виртуальной машины.
Для увеличения файловой системы на логическом томе, необходимо ввести команду в зависимости от дистрибутива:
- Fedora, CentOS, RHEL, Oracle Linux, Alma Linux, Rocky Linux (файловая система XFS):
xfs_growfs /dev/mapper/centos-root , где
/dev/mapper/centos-root — название расширяемой файловой системы (название и тип можно узнать по команде df -hT ). - Ubuntu, Debian (файловая система ext4):
resize2fs /dev/mapper/ubuntu-root ,
где /dev/mapper/ubuntu-root — название расширяемой файловой системы (название и тип можно узнать по команде df -hT ).
5.1 Определим путь монтирования файловой системы раздела root, точку монтирования и тип файловой системы.
В нашем примере путь — /dev/mapper/centos-root (или /dev/centos/root ),
точка монтирования — / ,
тип файловой системы — xfs .
Примечание: Обратите внимание, у вас будет свой путь и тип файловой системы.
5.2 Далее необходимо увеличить размер файловой системы на логическом томе. В зависимости от типа файловой системы и дистрибутива выберите ниже подходящий вам тип.
5.2.1 Для файловой системы XFS (дистрибутивы Fedora, CentOS, RHEL, Oracle Linux, Alma Linux, Rocky Linux) используется утилита xfs_growfs и путь указанный в выводе команды df -hT для расширяемого раздела (в примере ниже для Centos — это /dev/mapper/centos-root ).
5.2.2 Для файловой системы ext4 (дистрибутивы Ubuntu, Debian) используется утилита resize2fs и путь указанный в выводе команды df -hT для расширяемого раздела (в примере ниже для Ubuntu это /dev/mapper/ubuntu-root ).
#Шаг 6. Проверка.
Для проверки нового размера диска и файловой системы следует повторить команды: df -hT и lsblk .
Итоговая конфигурация дискового пространства и файловой системы отображена на схеме:
Обозначения дисков и дисковых разделов в системах linux.
Один из основных постулатов Unix/Linux — «всё есть файл», и жесткие диски — не исключение.
Каждый найденный ядром диск, отображается в виде файла в специальном каталоге устройств «/dev»
Диски.
SATA/ SCSI HDD, а также многие переносные накопители типа USB flash:
На новых Linux-ядрах >=2.6.21 для некоторых чипсетов может действовать новая система именования IDE-дисков, при которой IDE-устройства именуются также как и SATA/ SCSI .
Приведем наглядный пример:
сохранит MBR c первого диска SATA/ SCSI в системе в обычный файл MY_SATA_MBR.BIN.
Получить список обнаруженных системой дисков можно выполнив команду fdisk -l:
v-serv:~# fdisk -l Disk /dev/sda: 200.0 GB, 200048565760 bytes 255 heads, 63 sectors/track, 24321 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 3824 30716248+ c W95 FAT32 (LBA) /dev/sda2 3825 4532 5687010 83 Linux /dev/sda3 4533 5140 4883760 83 Linux /dev/sda4 5141 24321 154071382+ 5 Extended /dev/sda5 5141 5991 6835626 83 Linux /dev/sda6 5992 7207 9767488+ 83 Linux /dev/sda7 7208 10854 29294496 83 Linux /dev/sda8 10855 24321 108173646 83 Linux Disk /dev/sdb: 320.0 GB, 320071851520 bytes 255 heads, 63 sectors/track, 38913 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 365 2931831 83 Linux /dev/sdb2 366 1216 6835657+ 83 Linux /dev/sdb3 1217 1277 489982+ 82 Linux swap / Solaris /dev/sdb4 1278 38913 302311170 5 Extended /dev/sdb5 1278 4924 29294496 83 Linux /dev/sdb6 4925 5046 979933+ 83 Linux /dev/sdb7 5047 6870 14651248+ 83 Linux /dev/sdb8 6871 7478 4883728+ 83 Linux /dev/sdb9 7479 8086 4883728+ 83 Linux /dev/sdb10 8087 21553 108173646 83 Linux /dev/sdb11 21554 33711 97659103+ 83 Linux /dev/sdb12 33712 38913 41785033+ 83 Linux
Разделы.
Конкретный раздел (синонимы — том, партиция) определяется по номеру, после обозначения устройства, начиная с 1. Например: hdc5 — пятый том мастера на втором контроллере IDE, sde3 — третий том пятого SATA/ SCSI накопителя.
Например: как быстро уничтожить форматированный раздел — заполним нулевыми байтами первые 10MB:
dd if=/dev/zero count=Разделы могут быть:
расширенными (Extended) — логические разделы (обычно только один) с которыми нельзя работать, контейнер для дополнительных разделов;
Кроме номера и размера, каждый раздел имеет свой тип, который обозначен одним байтом: