Как добавить новый диск в 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) |
Информация
Для файловой системы btrfs
следует использовать другие инструкции.
Добавление диска¶
В данном примере будет описано как расширить дисковое пространство раздела (root) на 10Gb путем добавления нового устройства (диска), используя возможности LVM.
Расширение будет выполнено на примере дистрибутива CentOS
. Данная инструкция подходит для большинства дистрибутивов Linux, дает подробную информацию, как корректно расширить дисковое пространство даже при нестандартной разметке разделов, учитывает особенности команд различных дистрибутивов.
Примечание
Все команды необходимо выполнять под пользователем root либо с правами суперпользователя (sudo).
При выполнении данной инструкции есть риск потери данных, поэтому предварительно рекомендуется сделать резервную копию виртуальной машины.
Шаг 1. Анализ конфигурации дискового пространства и поиск нового устройства (диска)¶
Сперва следует определить название нового добавленного устройства (диска) в системе с помощью команды lsblk
.
[root@centos~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 29G 0 part
├─centos-root 253:0 0 28G 0 lvm /
└─centos-swap 253:1 0 1G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
sr0 11:0 1 1024M 0 rom
vda 252:0 0 20G 0 disk
Структуру дискового пространства можно отобразить в виде схемы:
В данном примере мы видим, что в системе имеется 3 устройства:
- /dev/sda
- /dev/sdb
- /dev/vda
На устройстве /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
.
-
Используя утилиту
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
-
Затем выберите
p
, чтобы создать новый основной раздел:
Примечание
В вашей системе может быть только 4 основных раздела на одном диске.
Если вы уже достигли этого предела, создайте расширенный раздел.
-
Выберите номер раздела и его первый и последний секторы, если вы нажмете
Enter
, то по умолчанию новый раздел будет использовать все доступное дисковое пространство: -
Далее, нужно записать раздел на диск с помощью команды
w
. -
Проверьте, был ли создан раздел с помощью команды
lsblk
.[root@centos~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 30G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 29G 0 part ├─centos-root 253:0 0 28G 0 lvm / └─centos-swap 253:1 0 1G 0 lvm [SWAP] sdb 8:16 0 10G 0 disk ├─sdb1 8:17 0 10G 0 disk sr0 11:0 1 1024M 0 rom vda 252:0 0 20G 0 disk
На устройстве /dev/sdb (10Gb) имеется раздел /dev/sdb1 (10Gb).
В данном примере мы видим, что в системе имеется физический том /dev/sda2, который входит в созданную группу томов centos.
В этой группе томов созданы 2 логических тома: root и swap.
Шаг 3. Анализ имеющейся конфигурации LVM и файловой системы¶
Для проверки существующей конфигурации LVM можно ввести команды:
- pvs
- вывести название и количество имеющихся физических томов (PV)
- vgs
- вывести группы томов (VG)
- lvs
- вывести логические тома (LV)
[root@centos~]# pvs
PV VG Fm Attr PSize PFree
dev/sda centos lvm2 a-- <29.00g 0
[root@centos~]# vgs
VG #PV #LV #SN Attr VSize PFree
dev/sda centos lvm2 0 wz--n <29.00g 0
[root@centos~]# lvs
LG VG Attr LSize
root centos -wi-ao---- <28.00g
swap centos -wi-ao---- 1.00g
df -hT
.
[root@centos~]# df-hT
Filesystem Type Size Used Avail Use Mounted on
devtmpfs devtmpfs 856M 0 856M 0% /dev
tmpfs tmpfs 875M 0 875M 0% /dev/shm
tmpfs tmpfs 875M 8.5M 867M 1% /run
tmpfs tmpfs 875M 0 875M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 28G 2.1G 26G 8% /
/dev/sda1 xfs 1014M 339M 676M 34% /boot
tmpfs tmpfs 175M 0 175M 0% /run/user/0
В данном примере мы хотим расширить раздел с названием /dev/mapper/centos-root, размером 28Gb, имеющий файловую систему xfs, который имеет точку монтирования /.
Структура дискового пространства до расширения LVM отображена на схеме:
Шаг 4. Расширение LVM¶
-
На новом диске необходимо создать новый физический том с помощью команды:
pvcreate /dev/sdb1
, где/dev/sdb1
- имя нового раздела. -
Расширить группу томов добавив к ней новый физический том с помощью команды:
vgextend centos /dev/sdb1
, гдеcentos
- название группы томов (можно узнать по командеvgs
). -
Расширить логический том, выполнив команду:
lvextend -l +100%FREE /dev/centos/root
, где/dev/centos/root
- путь расширяемой файловой системы,centos
- название группы (можно узнать по командеvgs
),root
- название логического тома (можно узнать по командеlvs
).
В команде выше, вместо /dev/centos/root
можно указать другой путь /dev/mapper/centos-root
(можно узнать по команде df -hT
), результат будет тот же.
- Создайте на только что созданном разделе физический том с помощью команды
pvcreate
.
Информация
В нашем примере созданный раздел - это /dev/sdb1
. Обратите внимание, что название раздела может отличаться, а также проверьте созданный физический том командой pvs
.
[root@centos~]# pvcreate/dev/sdb1
Physical volume "dev/sdb1" successfully created.
[root@centos~]# pvs
PV VG Fmt Attr PSize PFree
dev/sda2 centos lvm2 a-- <29.00g 0
dev/sdb1 lvm2 --- <10.00g <10.00g
В данном примере физический том имеет свободное пространство 10Gb и не имеет группы томов.
- На шаге 3 мы узнали название группы томов. Расширьте эту группу томов, добавив к ней новый физический том с помощью команды
vgextend
.
Проверьте изменения с помощью командыvgs
.
Информация
В нашем примере группа томов называлась centos
, новый физический том - /dev/sdb1
. Обратите внимание, у вас будет свое название группы и физического тома. Столбец PFree показывает количество свободного места.
[root@centos~]# vgextend centos /dev/sdb1
Volume group "centos" successfully extended.
[root@centos~]# vgs
VG #PV #LV #SN Attr PSize PFree
centos 2 2 0 wz--n- 38.99g <10.00g
В данном примере группа томов centos
включает 2 физических тома и имеет 10Gb свободного пространства.
- Также, на шаге 3, кроме названия группы томов, мы узнали и название расширяемого логического тома. Расширьте этот логический том, выполнив команду
lvextend
.
Информация
В нашем примере группа томов называлась centos
, логический том - root
. Обратите внимание, у вас будет свое название группы и логического тома. Убедитесь в расширении логического тома командой lvs
.
[root@centos~]# lvextend -l +100%FREE /dev/centos/root
Size of logical volume centos/root changed from <28.00 GiB (7167 extents) to 37.99 GiB (9726 extents).
Logical volume centos/root successfully resized.
[root@centos~]# lvs
LV VG Attr LSize
root centos -wi-ao---- 37.99g
swap centos -wi-ao---- 1.00g
В данном примере общий размер логического тома из группы томов 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
).
-
-
Нужно определить путь монтирования файловой системы раздела root, точку монтирования и тип файловой системы.
В нашем примере путь -/dev/mapper/centos-root
(или/dev/centos/root
),
точка монтирования -/
,
тип файловой системы -xfs
.
Примечание
Обратите внимание, у вас будет свой путь и тип файловой системы.
-
Далее необходимо увеличить размер файловой системы на логическом томе. В зависимости от типа файловой системы и дистрибутива выберите ниже, подходящий вам тип.
-
Для файловой системы XFS (дистрибутивы Fedora, CentOS, RHEL, Oracle Linux, Alma Linux, Rocky Linux) используется утилита
xfs_growfs
и путь указанный в выводе командыdf -hT
для расширяемого раздела (в примере ниже для Centos - это/dev/mapper/centos-root
).[root@centos~]# df -hT /dev/centos/root Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 28G 2.1G 26G 8% / [root@centos~]]# xfs_growfs /dev/mapper/centos-root meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=1834752 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=7339008, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=3583, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 7339008 to 9959424
-
Для файловой системы ext4 (дистрибутивы Ubuntu, Debian) используется утилита
resize2fs
и путь указанный в выводе командыdf -hT
для расширяемого раздела (в примере ниже для Ubuntu это/dev/mapper/ubuntu-root
).[root@ubuntu:~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/ubuntu-root ext4 38G 7.1G 29G 20% / root@ubuntu:~# resize2fs /dev/mapper/ubuntu-root resize2fs 1.45.5 (07 Jan 2020) Filesystem at /dev/mapper/ubuntu-root is mounted on/; on-line resizing required old_desc_blocks=4, new_desc_blocks=5 The filesystem on /dev/mapper/ubuntu-root is now 10101760 (4k) blocks long.
-
Шаг 6. Проверка¶
Для проверки нового размера диска и файловой системы следует повторить команды:
df -hT
и lsblk
.
[root@centos~]# df -hT /
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 38G 2.2G 36G 6% /
[root@centos~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 29G 0 part
├─centos-root 253:0 0 38G 0 lvm /
└─centos-swap 253:1 0 1G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 10G 0 disk
└─centos-swap 253:1 0 38G 0 lvm /
sr0 11:0 1 1024M 0 rom
vda 252:0 0 20G 0 disk
Итоговая конфигурация дискового пространства и файловой системы отображена на схеме: