Я автоматизировал добавление диска в свой Vagrantfile:
Vagrant.configure("2") do |config|
...
file_to_disk = File.realpath( "." ).to_s + "/disk.vdi"
if ARGV[0] == "up" && ! File.exist?(file_to_disk)
puts "Creating 5GB disk #{file_to_disk}."
vb.customize [
'createhd',
'--filename', file_to_disk,
'--format', 'VDI',
'--size', 5000 * 1024 # 5 GB
]
vb.customize [
'storageattach', :id,
'--storagectl', 'SATA Controller',
'--port', 1, '--device', 0,
'--type', 'hdd', '--medium',
file_to_disk
]
...
config.vm.provision "shell", path: "scripts/add_new_disk.sh"
...
end
Где сценарий оболочки add_new_disk.sh выглядит следующим образом:
set -e
set -x
if [ -f /etc/disk_added_date ]
then
echo "disk already added so exiting."
exit 0
fi
sudo fdisk -u /dev/sdb <<EOF
n
p
1
t
8e
w
EOF
pvcreate /dev/sdb1
vgextend VolGroup /dev/sdb1
lvextend /dev/VolGroup/lv_root
resize2fs /dev/VolGroup/lv_root
date > /etc/disk_added_date
Этот скрипт предназначен для centos 6.4, но может быть легко адаптирован к ubuntu.
Вместо добавления диска другие опции включают:
, используя поле с большим диском, например, opscode bento с 40Gb диски создают вашу собственную коробку с помощью пакета. Вы можете использовать определения упаковщика пакетов opscode как отправную точкуВы можете использовать плагин, который позволит вам указать размер диска https://github.com/sprotheroe/vagrant-disksize
Я нашел этот самый простой способ решить эту проблему:
Установить этот плагин: vagrant plugin install vagrant-disksize Изменить Vagrantfile:Vagrant.configure('2') do |config| ... config.vm.box = 'ubuntu/xenial64' config.disksize.size = '50GB' ... end
Установите этот плагин: vagrant plugin install vagrant-disksize vagrant upотказ от ответственности: ответ скорее всего применим только для дистрибутивов с использованием логического управления томами, например, rhel, для которого применяется следующий прецедент:
Я использую официальный брандмауэр Red Hat Enterpise 7.2, официально предоставленный красной шляпой .
(вам понадобится учетная запись разработчика rhel, которую вы можете создать бесплатно)
После установки меня беспокоил тот факт, что доступны только 8 ГБ:
[ f1]И как вы можете видеть, большая часть пространства уже была использована установкой rhel.
Однако я обнаружил, что группа томов, соответствующая файловой системе /dev/mapper/VolGroup00-root, имела дополнительное пространство (которое Я полагаю, что в терминах виртуальной коробки было выделено динамическое распределение)
sudo vgdisplay VolGroup00
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 11
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 39,70 GiB
PE Size 4,00 MiB
Total PE 10164
Alloc PE / Size 7872 / 30,75 GiB
Free PE / Size 2292 / 8,95 GiB
VG UUID JBVwpl-13KX-HbQw-FqUa-CA9w-swpF-dF6glm
. Осталось только сделать следующее:
отказ от ответственности: ответ скорее всего применим только для distros с использованием управления логическими томами, например rhel, для которого применяется следующий прецедент: ) Увеличьте размер нашего логического тома, скажем, 10G
sudo lvextend -L+10G /dev/VolGroup00/root [!d1 2]
и
b) Обновите корневую файловую систему, чтобы она узнала об этом изменении
sudo xfs_growfs /dev/mapper/VolGroup00-root
(обратите внимание, что, по крайней мере, для rhel 7.2 resize2fs не будет работать для этой цели).
После этого дополнительное пространство было доступно для моей файловой системы:
sudo df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-root 18G 2,5G 16G 14% /
devtmpfs 234M 0 234M 0% /dev
tmpfs 245M 0 245M 0% /dev/shm
tmpfs 245M 4,3M 241M 2% /run
tmpfs 245M 0 245M 0% /sys/fs/cgroup
/dev/sda2 297M 134M 164M 45% /boot
tmpfs 49M 0 49M 0% /run/user/1000
... никакого вмешательства в виртуальный бокс уровень