Расширение диска внутри Hyper-V с помощью LVM
В моей лабораторной среде у меня есть сервер Ubuntu 12.04, к которому я пытаюсь добавить пространство. LVM был настроен при загрузке, и после добавления 100 ГБ с помощью мастера редактирования диска я не могу добавить это пространство в разделы. Я пытался использовать Part Magic, но он не позволяет увеличить размер, хотя я вижу дополнительное пространство.
fdisk -l дает мне;
Disk /dev/sda: 108.4 GB, 108447924224 bytes
255 heads, 63 sectors/track, 13184 cylinders, total 211812352 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
Disk identifier: 0x00097307
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 499711 248832 83 Linux
/dev/sda2 501758 33552383 16525313 5 Extended
/dev/sda5 501760 33552383 16525312 8e Linux LVM
Disk /dev/mapper/ubuntu--vg-root: 14.8 GB, 14751367168 bytes
255 heads, 63 sectors/track, 1793 cylinders, total 28811264 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
Disk identifier: 0x00000000
Disk /dev/mapper/ubuntu--vg-root doesn't contain a valid partition table
Disk /dev/mapper/ubuntu--vg-swap_1: 2143 MB, 2143289344 bytes
255 heads, 63 sectors/track, 260 cylinders, total 4186112 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
Disk identifier: 0x00000000
Disk /dev/mapper/ubuntu--vg-swap_1 doesn't contain a valid partition table
Я до сих пор не использовал LVM и вообще не гуру Linux, поэтому я не уверен, какими будут мои дальнейшие действия, так как я ищу Howtos в этом процессе. В конце я хотел бы также добавить немного места в загрузочный раздел.
Спасибо, что уделили время на чтение этого вопроса, и дайте мне знать, если есть дополнительные подробности, которые я мог бы вам дать.
2 ответа
Ты используешь gparted
изменить размер разделов. В 12.04 вам нужно будет загрузиться с livecd и запустить его оттуда, так как он не может изменить размер смонтированных разделов. В более поздних выпусках он может увеличить количество разделов, пока они монтируются. Это только даст LVM больше места для логических томов. Если вы хотите увеличить логический том, вы можете запустить, например, lvresize -L 30g ubuntu-vg/root
увеличить размер вашего корня до 30г. Затем вам нужно указать файловой системе использовать это новое пространство, что вы можете сделать с resize2fs /dev/ubuntu-vg/root
при условии, что вы используете файловую систему ext4 по умолчанию. Эти два последних шага могут быть выполнены онлайн, а не загружаться с других носителей. Вы также можете указать 100%
вместо 30g
в lvresize
использовать все доступное пространство, но это в некотором роде противоречит цели использования LVM в первую очередь для выделения всего пространства одному логическому тому, поскольку у вас нет свободного места для создания моментальных снимков, новых логических томов или увеличения некоторых томов потом.
Если вы хотите сделать это без инструментов графического интерфейса, вы можете использовать
parted
.
В моей системе я расширял корневую файловую систему (которая была на
dev/sda3
) от 128 ГБ до 160 ГБ. Измените приведенные ниже примеры в зависимости от вашей настройки. Все команды необходимо запускать от имени root (sudo -i
для входа в систему как root).
Раньше у меня было 95% использования:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 124G 113G 6.3G 95% /
С виртуальными машинами Gen2 все можно делать онлайн без перезагрузки.
Сначала разверните виртуальный диск с помощью графического интерфейса Hyper-V или инструментов интерфейса командной строки.
Затем вам нужно указать Ubuntu повторно сканировать блочное устройство, в данном случае
sda
:
# echo 1 > /sys/block/sda/device/rescan
Далее запустите
parted
и выберите
p
за
print
. Он должен признать, что таблица разделов не использует все пространство, и спросить, хотите ли вы исправить это, поэтому выберите
Fix
в этот момент.
# parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use all of the space (an
extra 69206016 blocks) or continue with the current setting?
Fix/Ignore? Fix
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 172GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot, esp
2 538MB 1612MB 1074MB ext4
3 1612MB 136GB 135GB
Теперь вам нужно расширить раздел. Еще в
parted
, используйте
resizepart
для этого. В моем случае, поскольку я расширяю
sda3
Я говорю ему изменить размер раздела 3 до 100% доступного пространства. Опять же, настройте команду для своей установки.
(parted) resizepart 3 100%
(parted) p
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 172GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot, esp
2 538MB 1612MB 1074MB ext4
3 1612MB 172GB 170GB
(parted) quit
Если вы используете LVM, вам теперь нужно указать ему расширить физический том.
pvs
показывает информацию о ваших физических томах; использовать
pvresize
чтобы расширить его. Без заданных параметров он будет использовать все доступное пространство.
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 ubuntu-vg lvm2 a-- <125.50g 0
# pvresize /dev/sda3
Physical volume "/dev/sda3" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 ubuntu-vg lvm2 a-- <158.50g 33.00g
Теперь вам нужно расширить логический том, а также саму файловую систему.
lvextend
с
-r
переключатель может делать и то, и другое.
# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
ubuntu-lv ubuntu-vg -wi-ao---- <125.50g
# lvextend -l +100%FREE -r /dev/mapper/ubuntu--vg-ubuntu--lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from <125.50 GiB (32127 extents) to <158.50 GiB (40575 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 16, new_desc_blocks = 20
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 41548800 (4k) blocks long.
Это оно! Теперь убедитесь, что файловая система видит лишнее пространство:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 156G 113G 38G 76% /
Если бы вы не использовали LVM, вы могли бы заменить эти шаги на resize2fs
вместо.
В этой статье о Teknophiles есть некоторые дополнительные сведения об этом процессе, а также снимки экрана с инструментами Hyper-V.
По состоянию на 2019 год у меня возникли некоторые проблемы при попытке изменить размер виртуальной машины Ubuntu 18.04, работающей на Hyper-V. Установка gparted:sudo apt install gparted
, запустив его: sudo gparted
и прохождение процесса изменения размера в графическом интерфейсе приложения решило мою проблему.
gparted GUI помощь: https://youtu.be/cDgUwWkvuIY?t=330