У меня есть виртуальная машина CentOS 5, и я только что увеличил диск виртуальной машины с 10 до 20 ГБ, но я не могу заставить fdisk увидеть новый размер диска без перезагрузки.
я пробовал echo 1 > /sys/block/sda/device/rescan
, похоже, это указывает на то, что он может видеть новый размер, но когда я перехожу к fdisk для создания нового раздела, он все еще видит диск как 10G.
Любые идеи?
Вам необходимо отправить команду повторного сканирования на шину SCSI.
В VMware контроллер SCSI может быть найден в каком-нибудь необычном месте. Сначала найдите это:
find /sys -iname 'scan'
Для меня это вернулось
/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0/scan
/sys/devices/pci0000:00/0000:00:07.1/host1/scsi_host/host1/scan
/sys/devices/pci0000:00/0000:00:10.0/host2/scsi_host/host2/scan
Затем просто введите команду повторного сканирования
echo "- - -" >/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0/scan
echo "- - -" >/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host1/scan
echo "- - -" >/sys/devices/pci0000:00/0000:00:10.0/host0/scsi_host/host2/scan
Который должен Помогите. :)
Мне пришлось столкнуться с аналогичной проблемой на сервере SLES 11. LVM был построен с необработанными дисками, работающими на VMWare ESXi.
# pvcreate /dev/sdd; vgextend ....
Через некоторое время мне нужно было увеличить размер LVM, но я не добавил дополнительный диск, а затем pvcreate + vgextend, как делал раньше, но я решил увеличить размер существующего диска (в данном случае / dev / sdd ). После увеличения VMWare я выполнил
# rescan-scsi-bus.sh
Но pvdisplay по-прежнему показывал «старый» размер диска. Пришлось сделать
# echo 1 > /sys/block/sdd/device/rescan
чтобы ядро узнало новый размер диска / dev / sdd
после первого выполнения echo 1 > /sys/block/sda/device/rescan
pvresize /dev/sda
сделал трюк для меня
Если таблица разделов используется напрямую (например, вы смонтировали файловую систему с использованием базового раздела), ядро продолжит использовать старую таблицу разделов, пока это не исчезнет. Кто-то однажды сказал мне, что если вы используете LVM, вы можете обойти это ....
Обновить: Centos 6 - невозможно обновить таблицу разделов активного диска онлайн, Centos 7 - последний раздел можно расширить с помощью расти или создайте новый раздел с помощью fdisk и сделайте его видимым без перезагрузки с помощью Partprobe. Наверное, то же самое на ubuntu / debian. - В какой-то момент после версии 2.6 ядро начало поддерживать оперативное перечитывание таблицы разделов активного диска. Поскольку вопрос касается Centos 5, я бы сказал, что нет.
Если вы используете разделы, вам необходимо перезагрузиться, чтобы использовать новое пространство. Я не нашел способа избежать этого. Если кто-то дайте мне знать.
Однако перезагрузку следует выполнять после расширения последнего раздела на диске или добавления нового раздела. Раньше перезагружаться нет смысла.
Первое, что вы должны заметить после повторного сканирования, - это больший размер диска в fdisk и lsblk. Если вы его не видите, вам нужно поиграть с этими командами echo 1 и echo - - -.
После того, как вы увидите больше места, вы можете расширить / добавить раздел, затем перезагрузиться, расширить vg, расширить lv и fs.
Если вы хотите избежать перезагрузки, вам необходимо назначить необработанный диск sda / b / c группе томов, не разбивая его на sda1 / 2/3. Тогда перезагрузка не требуется.
Некоторое время назад, когда Linux не мог загрузиться с LVM, было необходимо разметить разделы, но теперь это возможно.
Если вы выполните lsblk, вы увидите разделы или lvms в зависимости от того, используете ли вы разделы или lvm, у вас могут быть все части, если вы не используете lvm, или все lvms, если вы не используете разделы. Вот один пример:
root@srv4 ~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 7.3T 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 7.3T 0 part
├─vg_srv4-LogVol13 (dm-0) 253:0 0 7.1T 0 lvm /
├─vg_srv4-LogVol05 (dm-1) 253:1 0 100G 0 lvm /var/log
├─vg_srv4-LogVol04 (dm-2) 253:2 0 20G 0 lvm /var
├─vg_srv4-LogVol01 (dm-5) 253:5 0 20G 0 lvm /opt
├─vg_srv4-LogVol00 (dm-6) 253:6 0 20G 0 lvm /home
├─vg_srv4-LogVol03 (dm-7) 253:7 0 20G 0 lvm /usr
└─vg_srv4-LogVol02 (dm-8) 253:8 0 8G 0 lvm /tmp
Чтобы обнаружить изменения на существующем диске:
echo 1 > /sys/class/block/sdX/device/rescan
Чтобы обнаружить новый диск:
echo 1 > /sys/class/scsi_device/X:X:X:X/device/block/device/rescan
Чтобы найти X в первой ситуации, вы можете использовать fdisk -l
.
https://kerneltalks.com/disk-management/how-to-rescan-disk-in-linux-after-exnding-vmware-disk/
Я знаю, что это может быть немного поздно, но я использую KVM на хосте. Чтобы изменить размер диска, мне пришлось запускать его на хосте, а не на госте. В моем случае это было
lvextend -L+4G /dev/<volume group>/<volume>
virsh qemu-monitor-command <vm name from virsh list> --hmp "info block"
virsh qemu-monitor-command <vm name> --hmp "block_resize drive-virtio-disk2 <new size>"
Ранее я запускал такие команды, как echo "- - -" > /sys/class/scsi_host/host1/scan
но ничего не изменилось, пока я не запустил virsh qemu-monitor-command -hmp
команда
Придется перезагружать, выхода нет.