VMware позволяет увеличить размер виртуального диска онлайн - когда виртуальная машина работает. Следующие ожидаемые шаги для системы Linux:
fdisk
pvresize
lvresize
операцииresize2fs
для файловой системыНо я застрял на первом шаге: fdisk
и sfdisk
по-прежнему отображается старый размер диска.
Мой диск - это виртуальный диск SCSI, подключенный с помощью виртуального контроллера LSI Logic.
Как обновить информацию о размере виртуального диска и таблице разделов, доступную в ядре Linux без перезагрузки ?
Насколько мне известно, все эти шаги возможны для работающей Windows, без перезагрузки и даже без каких-либо действий пользователя благодаря инструментам VMWare. В Linux я тоже собираюсь выполнять все шаги онлайн, и я уже знаю, что шаги 2, 3 и 4 работают онлайн. Но первое - изменение размера раздела, заявленного в таблице разделов (все еще), похоже, требует перезагрузки.
Обновить: Моя система - это Debian Lenny с ядром 2.6.26, а расширенный мной диск является основным диском с большим PV, содержащим «корневой» LV для «/».
Другой предоставленный ответ не касается вашего вопроса, я определил правильную команду для повторного сканирования уже подключенного диска.
Мы должны повторно просканировать ваш уже подключенный диск, сначала определив, какой диск вы хотите повторно просканировать.
ls /sys/class/scsi_disk/
В моем примере я вижу символическую ссылку с именем 0:0:0:0
, поэтому мы повторно просканируем этот scsi-диск.
echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan
Я просто расширил свой диск VMware, и мне пришлось искать другие ответы, чтобы найти правильную команду. Надеюсь, это избавит будущих искателей от бесполезных попыток.
Сделать это можно без перезагрузки. pvresize не изменяет размер физического тома до тех пор, пока раздел не будет обновлен с добавленным пространством. Вы должны fdisk раздел и воссоздать его с новым полным размером диска, после того, как вы можете повторно сканировать диски, чтобы увидеть дополнительное пространство в первую очередь.
Больше информации: http://theducks.org/2009/11/expanding-lvm-partitions-in-vmware-on-the-fly/
Что касается корневой файловой системы /
смонтирован на диске, размер которого был изменен, таблица разделов и размер диска не обновляются при повторном сканировании SCSI в Linux 2.6.26.
Я очень надеюсь, что скоро будет лучше с более новыми версиями ядра.
Поэтому мне пришлось:
fdisk
fdisk
partprobe
из parted
пакет только если /
не установлен тамpvresize
получить новое свободное место, lvextend
и resize2fs
выделить больше места для файловой системыМне посоветовали просто выбросить эту тупую старую таблицу разделов и запустить pvcreate
непосредственно на устройстве, поскольку Grub2 может загружать образ ядра непосредственно из файловой системы в раздел LVM. Но такая настройка совершенно не очевидна для установщиков дистрибутива.
Обновить: Я только что проверил Debian GNU / Linux Jessie 8.2 с ядром 3.16 и parted
3.2, partprobe
теперь успешно после редактирования таблицы разделов с cfdisk
без перезагрузки. pvresize
работает сразу после.
Если вы хотите расширить PV, сохраненный как логический раздел ПК, например /dev/sda5
на расширенном основном разделе /dev/sda2
, не используй fdisk
но предпочитаю parted
:
parted /dev/sda2 -1
parted /dev/sda5 -1
pvresize /dev/sda5
Мой PV не был в разделе, но существовал напрямую на / dev / sdb.
В Ubuntu 16.04.1 я смог сделать следующее, чтобы изменить размер тома с 1024 ГБ до 1,4 ТБ:
echo '1' > /sys/class/scsi_disk/32\:0\:1\:0/device/rescan
pvresize /dev/sdb
lvextend -l +100%FREE /dev/nvr01-opt/opt
resize2fs /dev/nvr01-opt/opt
Нет fdisk
требовалось, и место было немедленно доступно.
Вам необходимо повторно сканировать диски, прежде чем вы сможете сделать больший раздел.
В Centos это можно сделать с помощью
ls /sys/class/scsi_host
затем для каждого хоста
echo "- - -" > /sys/class/scsi_host/host#/scan
(замените # на число)
Также есть еще один шаг к вышеизложенному: расширение ext или любой другой файловой системы, которую вы используете, после изменения размера раздела.
Однако в какой-то момент вам все равно придется размонтировать этот раздел. Что мы обычно делаем, так это добавляем второй диск vmware и используем lvm для расширения на новый диск (и уменьшаем старый, если он заменяет), поскольку это позволяет всему процессу происходить в реальном времени.
Вы не предоставили нам достаточно подробностей, чтобы указать точные команды, которые вам понадобятся, но, по сути, вам нужно использовать lvextend
команду для расширения логического тома, затем e2fsck
команда, а затем resize2fs
команда для расширения вашей файловой системы. Для каждой из этих команд потребуются дополнительные параметры, в частности информация об устройстве и файловой системе, которую мы не можем предоставить, но вам необходимо их знать, просто используйте параметр --help для каждой команды, чтобы узнать, как их использовать, плюс вы, вероятно, в конечном итоге воспользуетесь pvdisplay
, lvdisplay
и mount
команды, помогающие заполнить эти параметры.
Никто не опубликовал полный набор команд, так что начнем:
# the following steps are for adding a new HDD
apt install scsitools
rescan-scsi-bus
pvcreate /dev/sdX
vgextend /dev/vgname /dev/sdx
lvextend -l +100%FREE /dev/vgname/root
resize2fs /dev/vgname/root
#if resizing existing HDD
fdisk /dev/sdX
create new partition
pvcreate /dev/sdXn
vgextend /dev/vgname /dev/sdXn
lvextend -l +100%FREE /dev/vgname/root
resize2fs /dev/vgname/root