Бродяги нет места на устройстве

Сегодня я начал получать ошибки от простых операций, таких как создание небольших файлов в vimЗавершение bash тоже начало жаловаться.

Вот результат df -h:

vagrant@machine:/vagrant$ df -h
Filesystem                           Size  Used Avail Use% Mounted on
/dev/sda1                             40G   38G  249M 100% /
none                                 4.0K     0  4.0K   0% /sys/fs/cgroup
udev                                 2.0G   12K  2.0G   1% /dev
tmpfs                                396M  396K  395M   1% /run
none                                 5.0M     0  5.0M   0% /run/lock
none                                 2.0G     0  2.0G   0% /run/shm
none                                 100M     0  100M   0% /run/user
overflow                             1.0M  148K  876K  15% /tmp
192.168.50.1:/Users/nha/repo/assets  233G  141G   93G  61% /var/www/assets
vagrant                              233G  141G   93G  61% /vagrant

Так видимо / больше нет места? Разве это не странно, так как у меня есть место в других файловых системах (или я что-то неправильно читаю)?

Как мне получить больше места на моем виртуальном компьютере?

5 ответов

Решение

Несмотря на то, что у вас есть место на вашей гостевой ОС, виртуальная машина ограничена. Чтобы увеличить размер диска, необходимо выполнить несколько шагов:

первый, vagrant haltзакрыть вашу ВМ

изменить размер диска

VBoxManage clonehd box-disk1.vmdk box-disk1.vdi --format vdi
VBoxManage modifyhd box-disk1.vdi --resize 50000

запустите Virtual box и измените конфигурацию виртуальной машины, чтобы связать новый диск

используйте fdisk для изменения размера диска

вам нужно создать новый раздел с новым пространством и выделить его, поэтому сначала запустите виртуальную машину и войдите в систему как суперпользователь

vagrant up && vagrant ssh
su -

команда (как показано в моем примере)

[root@oracle ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sda: 52.4 GB, 52428800000 bytes
255 heads, 63 sectors/track, 6374 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00041a53

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          39      307200   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              39        2611    20663296   8e  Linux LVM

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (2611-6374, default 2611):
Using default value 2611
Last cylinder, +cylinders or +size{K,M,G} (2611-6374, default 6374):
Using default value 6374

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@oracle ~]#

обратите внимание, что вам может потребоваться изменить /dev/sda по сравнению с вашей конфигурацией

создать новый раздел (снова вошел в систему как суперпользователь su -)

su -
[root@oracle ~]# pvs
  PV         VG    Fmt  Attr PSize  PFree
  /dev/sda2  linux lvm2 a--  19.70g    0
[root@oracle ~]# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created
[root@oracle ~]# pvs
  PV         VG    Fmt  Attr PSize  PFree
  /dev/sda2  linux lvm2 a--  19.70g     0
  /dev/sda3        lvm2 a--  28.83g 28.83g

[root@oracle ~]# vgextend linux /dev/sda3
  Volume group "linux" successfully extended
[root@oracle ~]# lvextend -l +100%FREE /dev/linux/root
[root@oracle ~]# resize2fs /dev/linux/home
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/linux/home is mounted on /home; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/linux/home to 7347200 (4k) blocks.
The filesystem on /dev/linux/home is now 7347200 blocks long.

Вы можете увеличить пространство в своем ящике, не теряя данные и не создавая новые разделы.

  1. Остановите вашу виртуальную машину;

  2. Идти к /home_dir/VirtualBox VMs

  3. Изменить формат файла с .vmdk в .vdi, Затем используйте команду из ответа выше, чтобы увеличить пространство.

  4. Измените расширение файла обратно и измените имя файла.

  5. Подключите расширенный диск к вашей виртуальной машине.

    VBoxManage storageattach <your_box_name> --storagectl "IDE Controller" --
    port 0 --device 0 --type hdd --medium new_extended_file.vmdk
    
  6. В вашем приложении VirtualBox перейдите в Your_VM -> Настройки -> Хранилище. Нажмите на контроллер и выберите "Добавить новый диск" ниже. Выберите из существующих дисков тот, который вы только что расширили.

Вот пошаговая инструкция, как расширить пространство в вашем бродячем ящике или виртуальной машине.

Самый простой способ увеличить размер vagrant box - использовать плагин vagrant-disksize .

В вашей бродячей корневой папке запустите vagrant plugin install vagrant-disksize

Затем добавьте новый размер в Vagrantfile:

      Vagrant.configure('2') do |config|
  ...
  config.disksize.size = '60GB'
end

потом vagrant halt и vagrant up.
vagrant reload не будет работать.

Я читал, что у плагина есть проблемы с уменьшением размера диска, если вы перерегулировали.

В моем случае ничего не давало никакого ответа:

   vagrant halt 

или же

   vagrant destroy

наконец, возможность удалить диск с помощью интерфейса virtualbox, просто добавив дополнительную информацию, может помочь, если все остальное не поможет.

Иногда мне приходится разрушать машину и создавать ее заново, что в моем случае освобождает довольно много места, вы можете сделать это, запустив

      vagrant destroy

vagrant up
Другие вопросы по тегам