Изменение размера дискового пространства на vagrant box
Я хотел бы дать моей коробке больше места на диске. Я пытаюсь сделать это через vagrantfile следующим образом:
Vagrant::Config.run do |config|
# ..
config.vm.customize ["modifyvm", :id, "--memory", 1024]
config.vm.customize ["modifyhd", :id, "--resize", 4096]
end
это дает мне ошибку:
A customization command failed:
["modifyhd", "e87d8786-88be-4805-9c2a-45e88b8e0e56", "--resize", "4096"]
The following error was experienced:
VBoxManage: error: The given path 'e87d8786-88be-4805-9c2a-45e88b8e0e56' is not fully qualified
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component Medium, interface IMedium, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 178 of file VBoxManageDisk.cpp
Please fix this customization and try again.
Я пытаюсь собрать информацию вместе из http://docs.vagrantup.com/v1/docs/config/vm/customize.html http://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi
6 ответов
вы отправляете modifyhd UUID виртуальной машины (предоставленный vagrant), в то время как он ожидает UUID VDI.
Вам нужно будет использовать абсолютный путь к фактическому файлу VDI или его UUID. Вы можете использовать следующую команду, чтобы получить UUID VDI:VBoxManage showhdinfo <filename>
(см. virtualbox-как проверить, что такое uuid vdi?)
Я создал новый диск, добавил и расширил старый.
Мой Vagrantfile:
Vagrant.configure(2) do |config|
config.vm.box = "bseller/oracle-standard"
config.vm.define :oracle do |oracle|
oracle.vm.hostname = 'oraclebox'
oracle.vm.synced_folder ".", "/vagrant", owner: "oracle", group: "oinstall"
oracle.vm.network :private_network, ip: '192.168.33.13'
oracle.vm.network :forwarded_port, guest: 1521, host: 1521
oracle.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "4096"]
vb.customize ["modifyvm", :id, "--name", "oraclebox"]
if !File.exist?("disk/oracle.vdi")
vb.customize [
'createhd',
'--filename', 'disk/oracle',
'--format', 'VDI',
'--size', 60200
]
vb.customize [
'storageattach', :id,
'--storagectl', "SATA",
'--port', 1, '--device', 0,
'--type', 'hdd', '--medium', 'disk/oracle.vdi'
]
end
end
oracle.vm.provision "shell", path: "shell/add-oracle-disk.sh"
oracle.vm.provision "shell", path: "shell/provision.sh"
end
end
это создаст новый диск в
disk
|-- oracle.vdi
shell
|-- provision.sh
Vagrantfile
и добавьте в свою коробку. Новый диск имеет 60GB Моя раковина!--3-->
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
sudo pvcreate /dev/sdb1
sudo vgextend VolGroup /dev/sdb1
sudo lvextend -L50GB /dev/VolGroup/lv_root
sudo resize2fs /dev/VolGroup/lv_root
date > /etc/disk_added_date
этот скрипт был адаптирован из SHC в поле bseller / oracle-standard. Полный код см. В разделе Мой проект oraclebox в GitHub
Я смотрел на это, и я не нашел никакого способа сделать это напрямую. Тем не менее, вы можете достичь эффекта, используя Анзибль как поставщица. Прежде всего, с Vagrant определенно можно создать и добавить второй диск, который вы можете добавить и смонтировать любым способом с помощью Ansible.
однако Ansible также имеет возможность запускать локальные команды (на хосте). Это с Ансиблом local_action
характеристика. Я использовал его здесь в перезагрузите бродячую виртуальную машину после обновления ядра и скажите хосту подождать, пока он не перезапустится, но вы можете использовать это с действиями команды или оболочки, чтобы найти идентификатор HD, выключить виртуальную машину и настроить жесткий диск, а затем перезагрузиться. По крайней мере, теоретически.
хотя вопрос старый, но я не видел ответа, принятого.
The given path 'e87d8786-88be-4805-9c2a-45e88b8e0e56' is not fully qualified
появляется, потому что UUID e87d8...
является VirtualBox vm UUID, а не UUID устройства хранения данных SATA. Вы найдете UUID устройства хранения данных по VBoxManage showvminfo e87d8786-88be-4805-9c2a-45e88b8e0e56|grep vdi
. Замена :id
С UUID хранения SATA в линии Vagrantfile modifyhd.
это решило мою проблему.
OK... Разрешенный...
VBoxManage.exe wan'T на моем пути, поэтому я сделал это (вы должны пойти по этому пути):
C:\Program Файлы\Oracle\VirtualBox
используется команды:VBoxManage.exe modifyhd "C:\Users\MyUser\VirtualBox VMs\MachineName\HDName.vdi " --изменить размер 20480
для 20 ГБ размер HD
Это не работает: "C:\Program Файлы\Oracle\VirtualBox\VBoxManage.exe " modifyhd "C:\Users\MyUser\VirtualBox VMs\MachineName\HDName.vdi " --изменить размер 20480
вы должны быть на пути: C:\Program файлы\Oracle\VirtualBox
вместо этого вы можете добавить новый диск. Сначала используйте Virtual box GUI для добавления другого виртуальный диск
затем используйте fdisk для создания первичного диска partion
root@linux-dev:/# fdisk -l
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 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 /dev/sda: 9.9 GiB, 10632560640 bytes, 20766720 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
Disklabel type: dos
Disk identifier: 0x83312a2b
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 19816447 19814400 9.5G 83 Linux
/dev/sda2 19818494 20764671 946178 462M 5 Extended
/dev/sda5 19818496 20764671 946176 462M 82 Linux swap / Solaris
root@linux-dev:/# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x5eb328b9.
Command (m for help): m
Help:
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag
Generic
d delete a partition
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0x5eb328b9
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-41943039, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039):
Created a new partition 1 of type 'Linux' and of size 20 GiB.
Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0x5eb328b9
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 41943039 41940992 20G 83 Linux
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
создать новый раздел диска с файловой системой ext4
root@linux-dev:/# mkfs.ext4 /dev/sdb1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 5242624 4k blocks and 1310720 inodes
Filesystem UUID: 0301b56a-1d80-42de-9334-cc49e4eaf7b2
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
установите раздел диска в каталог
root@linux-dev:/# mount -t ext4 /dev/sdb1 /home/chenchun
root@linux-dev:/# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9.2G 3.3G 5.5G 38% /
udev 10M 0 10M 0% /dev
tmpfs 74M 4.4M 70M 6% /run
tmpfs 185M 0 185M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 185M 0 185M 0% /sys/fs/cgroup
none 372G 240G 133G 65% /vagrant
/dev/sdb1 20G 44M 19G 1% /home/chenchun