From 2c5e044b59c5f37381a22d9a3e8414314802c225 Mon Sep 17 00:00:00 2001 From: Mary Anthony Date: Sat, 4 Jul 2015 18:12:52 -0700 Subject: [PATCH] Carries and closes 13361 Signed-off-by: Mary Anthony --- docs/articles/b2d_volume_resize.md | 233 ++++++++++++++++++----------- 1 file changed, 145 insertions(+), 88 deletions(-) diff --git a/docs/articles/b2d_volume_resize.md b/docs/articles/b2d_volume_resize.md index 34884613ff..23bd6a6e2b 100644 --- a/docs/articles/b2d_volume_resize.md +++ b/docs/articles/b2d_volume_resize.md @@ -11,97 +11,154 @@ parent = "smn_win_osx" # Getting “no space left on device” errors with Boot2Docker? If you're using Boot2Docker with a large number of images, or the images you're -working with are very large, your pulls might start failing with "no space left -on device" errors when the Boot2Docker volume fills up. The solution is to -increase the volume size by first cloning it, then resizing it using a disk -partitioning tool. +working with are very large, your pulls might start failing with "no space left +on device" errors when the Boot2Docker volume fills up. There are two solutions +you can try. -We recommend [GParted](http://gparted.sourceforge.net/download.php/index.php). -The tool comes as a bootable ISO, is a free download, and works well with +## Solution 1: Add the `DiskImage` property in boot2docker profile + +The `boot2docker` command reads its configuration from the `$BOOT2DOCKER_PROFILE` if set, or `$BOOT2DOCKER_DIR/profile` or `$HOME/.boot2docker/profile` (on Windows this is `%USERPROFILE%/.boot2docker/profile`). + +1. View the existing configuration, use the `boot2docker config` command. + + $ boot2docker config + # boot2docker profile filename: /Users/mary/.boot2docker/profile + Init = false + Verbose = false + Driver = "virtualbox" + Clobber = true + ForceUpgradeDownload = false + SSH = "ssh" + SSHGen = "ssh-keygen" + SSHKey = "/Users/mary/.ssh/id_boot2docker" + VM = "boot2docker-vm" + Dir = "/Users/mary/.boot2docker" + ISOURL = "https://api.github.com/repos/boot2docker/boot2docker/releases" + ISO = "/Users/mary/.boot2docker/boot2docker.iso" + DiskSize = 20000 + Memory = 2048 + CPUs = 8 + SSHPort = 2022 + DockerPort = 0 + HostIP = "192.168.59.3" + DHCPIP = "192.168.59.99" + NetMask = [255, 255, 255, 0] + LowerIP = "192.168.59.103" + UpperIP = "192.168.59.254" + DHCPEnabled = true + Serial = false + SerialFile = "/Users/mary/.boot2docker/boot2docker-vm.sock" + Waittime = 300 + Retries = 75 + + The configuration shows you where `boot2docker` is looking for the `profile` file. It also output the settings that are in use. + + +2. Initialise a default file to customize using `boot2docker config > ~/.boot2docker/profile` command. + +3. Add the following lines to `$HOME/.boot2docker/profile`: + + # Disk image size in MB + DiskSize = 50000 + +4. Run the following sequence of commands to restart Boot2Docker with the new settings. + + $ boot2docker poweroff + $ boot2docker destroy + $ boot2docker init + $ boot2docker up + +## Solution 2: Increase the size of boot2docker volume + +This solution increases the volume size by first cloning it, then resizing it +using a disk partitioning tool. We recommend +[GParted](http://gparted.sourceforge.net/download.php/index.php). The tool comes +as a bootable ISO, is a free download, and works well with VirtualBox. + +1. Stop Boot2Docker + + Issue the command to stop the Boot2Docker VM on the command line: + + $ boot2docker stop + +2. Clone the VMDK image to a VDI image + + Boot2Docker ships with a VMDK image, which can't be resized by VirtualBox's + native tools. We will instead create a VDI volume and clone the VMDK volume to + it. + +3. Using the command line VirtualBox tools, clone the VMDK image to a VDI image: + + $ vboxmanage clonehd /full/path/to/boot2docker-hd.vmdk /full/path/to/.vdi --format VDI --variant Standard + +4. Resize the VDI volume + + Choose a size that will be appropriate for your needs. If you're spinning up a + lot of containers, or your containers are particularly large, larger will be + better: + + $ vboxmanage modifyhd /full/path/to/.vdi --resize + +5. Download a disk partitioning tool ISO + + To resize the volume, we'll use [GParted](http://gparted.sourceforge.net/download.php/). + Once you've downloaded the tool, add the ISO to the Boot2Docker VM IDE bus. + You might need to create the bus before you can add the ISO. + + > **Note:** + > It's important that you choose a partitioning tool that is available as an ISO so + > that the Boot2Docker VM can be booted with it. + + + + + + + + +


+ +6. Add the new VDI image + + In the settings for the Boot2Docker image in VirtualBox, remove the VMDK image + from the SATA controller and add the VDI image. + + + +7. Verify the boot order + + In the **System** settings for the Boot2Docker VM, make sure that **CD/DVD** is + at the top of the **Boot Order** list. + + + +8. Boot to the disk partitioning ISO + + Manually start the Boot2Docker VM in VirtualBox, and the disk partitioning ISO + should start up. Using GParted, choose the **GParted Live (default settings)** + option. Choose the default keyboard, language, and XWindows settings, and the + GParted tool will start up and display the VDI volume you created. Right click + on the VDI and choose **Resize/Move**. + + + +9. Drag the slider representing the volume to the maximum available size. + +10. Click **Resize/Move** followed by **Apply**. + + + +11. Quit GParted and shut down the VM. + +12. Remove the GParted ISO from the IDE controller for the Boot2Docker VM in VirtualBox. -## 1. Stop Boot2Docker +13. Start the Boot2Docker VM -Issue the command to stop the Boot2Docker VM on the command line: + Fire up the Boot2Docker VM manually in VirtualBox. The VM should log in + automatically, but if it doesn't, the credentials are `docker/tcuser`. Using + the `df -h` command, verify that your changes took effect. - $ boot2docker stop - -## 2. Clone the VMDK image to a VDI image - -Boot2Docker ships with a VMDK image, which can’t be resized by VirtualBox’s -native tools. We will instead create a VDI volume and clone the VMDK volume to -it. - -Using the command line VirtualBox tools, clone the VMDK image to a VDI image: - - $ vboxmanage clonehd /full/path/to/boot2docker-hd.vmdk /full/path/to/.vdi --format VDI --variant Standard - -## 3. Resize the VDI volume - -Choose a size that will be appropriate for your needs. If you’re spinning up a -lot of containers, or your containers are particularly large, larger will be -better: - - $ vboxmanage modifyhd /full/path/to/.vdi --resize - -## 4. Download a disk partitioning tool ISO - -To resize the volume, we'll use [GParted](http://gparted.sourceforge.net/download.php/). -Once you've downloaded the tool, add the ISO to the Boot2Docker VM IDE bus. -You might need to create the bus before you can add the ISO. - -> **Note:** -> It's important that you choose a partitioning tool that is available as an ISO so -> that the Boot2Docker VM can be booted with it. - - - - - - - - -


- -## 5. Add the new VDI image - -In the settings for the Boot2Docker image in VirtualBox, remove the VMDK image -from the SATA controller and add the VDI image. - - - -## 6. Verify the boot order - -In the **System** settings for the Boot2Docker VM, make sure that **CD/DVD** is -at the top of the **Boot Order** list. - - - -## 7. Boot to the disk partitioning ISO - -Manually start the Boot2Docker VM in VirtualBox, and the disk partitioning ISO -should start up. Using GParted, choose the **GParted Live (default settings)** -option. Choose the default keyboard, language, and XWindows settings, and the -GParted tool will start up and display the VDI volume you created. Right click -on the VDI and choose **Resize/Move**. - - - -Drag the slider representing the volume to the maximum available size, click -**Resize/Move**, and then **Apply**. - - - -Quit GParted and shut down the VM. Remove the GParted ISO from the IDE controller -for the Boot2Docker VM in VirtualBox. - -## 8. Start the Boot2Docker VM - -Fire up the Boot2Docker VM manually in VirtualBox. The VM should log in -automatically, but if it doesn't, the credentials are `docker/tcuser`. Using -the `df -h` command, verify that your changes took effect. - - - -You’re done! + +You're done!