Вопрос или проблема
У меня установлен Ubuntu на VM VirtualBox.
Как я могу изменить размер раздела Linux (не виртуального диска)?
Я уже изменил размер виртуальной машины с помощью VBoxManage modifyhd, чтобы изменить размер виртуального диска, но мне нужно изменить размер раздела Linux. У меня нет графического интерфейса для gparted, поэтому мне нужно изменить размер раздела из командной строки.
Если вы используете LVM (Менеджер логических томов):
-
Расширьте физический том (sda3 замените на имя вашего раздела):
sudo pvresize /dev/sda3
-
Проверьте свободное место:
sudo vgdisplay
-
Добавьте место к логическому тому (VG00/share замените на путь к вашему LV; вы можете получить его из
sudo lvdisplay
):sudo lvresize –L -r 100G VG00/share
-
Проверьте изменения:
sudo lvdisplay
Если вы не используете LVM:
Все ниже приведенные команды работают для размонтированного раздела, поэтому вам следует загрузиться с другого источника, например, с iso (образ liveCD).
-
Измените размер раздела:
sudo fdisk /dev/sda
:- Удалите старый раздел (
d
). - Создайте новый, начиная с того же сектора, но большего размера (
n
). - Вы должны получить сообщение, что раздел содержит подпись. Когда вас спросят, хотите ли вы её удалить, ответьте
n
. Если вы не получили сообщение, значит, что-то не так: не продолжайте (не записывайте изменения), а выйдите (q
). - Если все в порядке, запишите изменения (
w
).
- Удалите старый раздел (
-
Расширьте файловую систему:
sudo e2fsck -f /dev/sda3 sudo resize2fs /dev/sda3
-
Перезагрузите систему, загрузитесь как обычно.
-
Проверьте разделы:
df
Если это физический диск (не LVM, вы можете проверить это с помощью lvdisplay
), вам нужно выполнить два шага:
-
Увеличьте размер вашего раздела (например,
/dev/sdb1
):sudo growpart /dev/sdb 1
Да, разделите номер раздела и устройство 😉
-
Расширьте вашу файловую систему:
sudo resize2fs /dev/sdb1
Если это LVM, вам нужно выполнить три шага:
-
Расширьте ваш физический том:
sudo pvresize /dev/sdb1
И подождите, пока
sudo pvdisplay
не покажет ваш новый размер. Хотяpvresize
уже сообщает, что изменение размера произошло и завершается, на самом деле процесс изменения размера может все еще продолжаться. -
Расширьте ваш логический том[1]:
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
-
Расширьте вашу файловую систему[1]:
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
[1] Где /dev/ubuntu-vg/ubuntu-lv
— это путь к вашему логическому тому. Вы можете запросить его с помощью sudo lvdisplay
. В качестве альтернативы вы можете использовать сопоставленное имя вашего логического тома, например, /dev/mapper/ubuntu--vg-ubuntu--lv
, которое вы видите в выводе df -h
.
После изменения размера диска виртуальной машины я смог увидеть в fdisk
, что /dev/sda
было 128 GiB, но /dev/sda3
использовал только 99G. Я использовал комбинацию этих трёх ответов, чтобы увеличить размер раздела и расширить мой LV:
$ sudo growpart /dev/sda 3
CHANGED: partition=3 start=2101248 old: size=207611904 end=209713152 new: size=266334175 end=268435423
$ sudo pvresize /dev/sda3
Physical volume "/dev/sda3" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
$ sudo lvextend -l +100%FREE -r /dev/mapper/ubuntu--vg-ubuntu--lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from <99.00 GiB (25343 extents) to <127.00 GiB (32511 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
...
Теперь я могу видеть ожидаемое дисковое пространство:
$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 3.2G 3.0M 3.2G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 125G 40G 80G 33% /
...
Ответ или решение
Изменение размера раздела в командной строке на системе с Ubuntu, установленной на виртуальной машине VirtualBox, требует соблюдения определенных шагов. Данный процесс позволяет эффективно использовать пространство, добавленное на виртуальный диск после его расширения при помощи VBoxManage. В этой инструкции я подробно объясню, как можно изменить размер раздела Linux с помощью командной строки без использования графического интерфейса.
Теория
Все изменения, касающиеся разделов и файловых систем, необходимо выполнять с осторожностью, поскольку они могут повлиять на данные, которые хранятся на диске. Необходимость расширения раздела возникает, когда размер виртуального диска был увеличен, но раздел на этом диске использует прежнее объем пространства. В данном контексте мы рассмотрим два возможных сценария: использование LVM (управление логическими томами) и работа с физическими разделами без LVM.
LVM (Logical Volume Manager)
LVM – это более гибкая система управления дисками, позволяющая легко изменять размеры томов. При использовании LVM мы можем увеличивать физические и логические объемы без необходимости их отмонтирования, при этом обеспечивая непрерывность работы системы.
Физические разделы без LVM
Если LVM не используется, необходимо будет изменить размеры классических разделов. Это может быть сложнее, так как требует отмонтирования разметки и работы с разделами напрямую.
Пример
Рассмотрим процесс изменения размера раздела на примере LVM и физического раздела.
Для систем с LVM
-
Увеличение физического объема:
sudo pvresize /dev/sda3
Здесь
/dev/sda3
– это устройство, на котором находится ваш физический объем. Это действие увеличит физический объем, чтобы использовать все доступное место на увеличенном диске. -
Просмотр свободного пространства:
sudo vgdisplay
Таким образом вы можете увидеть, сколько свободного места доступно в группе томов.
-
Увеличение логического объема:
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
Это расширяет логический том до максимума, используя все доступное свободное место.
-
Расширение файловой системы:
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
Теперь файловая система занимает весь доступный логический объем.
Для физических разделов (без LVM)
-
Изменение размера раздела:
Запуститеfdisk
для работы с разделом.sudo fdisk /dev/sda
- Удалите старый раздел (
d
). - Создайте новый, начиная с того же сектора, но большей длины (
n
). - Убедитесь, что не удалили сигнатуру раздела, если получили такое предупреждение.
- Сохраните изменения (
w
).
- Удалите старый раздел (
-
Расширение файловой системы:
sudo e2fsck -f /dev/sda3 sudo resize2fs /dev/sda3
Эти команды проверят файловую систему на ошибки и расширят её, чтобы она занимала весь раздел.
-
Перезагрузка системы:
Перезагрузите систему, чтобы изменения вступили в силу.
Применение
После выполнения вышеописанных шагов, вы должны увидеть увеличенное пространство на вашем разделе. Команда df -h
покажет обновленное состояние файловых систем, где вы сможете убедиться в применении изменений. Важно помнить, что хотя увеличение размера раздела и файловой системы — это рутинная задача для администратора, она требует точности и внимания к деталям, чтобы избежать потери данных. Убедитесь, что вы заранее сделали резервное копирование всех критически важных данных и пробную симуляцию всех шагов на менее критичных системах.