Думаю, Решение некоторых общих проблем из это может вам помочь.
И это важная часть
Увеличение дискового пространства
Обычно (к сожалению) облачный базовый ящик поставляется с дисками в формате VMDK. Если вам повезло и ваш диск имеет формат VDI, вы можете решить эту проблему следующим образом. Но VMDK не может быть расширен, поэтому вам нужно добавить еще один диск к вашей виртуальной машине. Если сделать это вручную сложно, можете ли вы сделать это с помощью Vagrant? Что ж, теперь, когда я решил, это не так сложно:
Создайте сценарий под названием "bootstrap.sh" в вашем рабочем каталоге и добавьте следующие строки:
pvcreate /dev/sdb
vgextend VolGroup /dev/sdb
lvextend /dev/VolGroup/lv_root /dev/sdb
resize2fs /dev/VolGroup/lv_root
VolGroup и lv_root могут изменяться в разных дистрибутивах. Но он у меня работает и на Ubuntu.
А затем добавьте этот код в свой Vagrantfile:
...
config.vm.provider :virtualbox do |vb|
...
# Validate this should be run it once
if ARGV[0] == "up" && ! File.exist?("./disk1.vdi")
vb.customize [
'createhd',
'--filename', "./disk1.vdi",
'--format', 'VDI',
# 100GB
'--size', 100 * 1024
]
vb.customize [
'storageattach', :id,
'--storagectl', 'SATA Controller',
'--port', 1, '--device', 0,
'--type', 'hdd', '--medium',
file_to_disk
]
end
if ARGV[0] == "up" && ! File.exist?("./disk1.vdi")
# Run script to map new disk
config.vm.provision "bash", path: "bootstrap.sh"
# Run script to increase swap memory
config.vm.provision "bash", path: "increase_swap.sh"
end
...
Это создает файл диска VDI емкостью 100 ГБ. И привязан к вашей ОС.
Эта проблема решается при создании облачных Vagrant-боксов, таких как экземпляры AWS EC2 с Vagrant: D
Увеличение памяти подкачки
Когда я устанавливаю продукты Oracle Fusion Middleware, им требуется некоторый объем памяти подкачки, но базовый блок поставляется с небольшим объемом свопа.
Чтобы решить эту проблему, добавьте этот сценарий под названием «Увеличить_swap.sh» в свой рабочий каталог:
#!/bin/sh
# size of swapfile in megabytes
swapsize=8000
# does the swap file already exist?
grep -q "swapfile" /etc/fstab
# if not then create it
if [ $? -ne 0 ]; then
echo 'swapfile not found. Adding swapfile.'
fallocate -l ${swapsize}M /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap defaults 0 0' >> /etc/fstab
else
echo 'swapfile found. No changes made.'
fi
# output results to terminal
df -h
cat /proc/swaps
cat /proc/meminfo | grep Swap
Если вы уничтожите и поднимите свой ящик сейчас, у вас будет новый ящик с 8 ГБ добавленной памяти подкачки и 100 ГБ дополнительного диска космос.
$ ps -ef | grep tmux
username 13965 12977 0 13:03 pts/2 00:00:00 grep --color=auto tmux
$ cd /tmp
/tmp $ tmux
(within tmux) /tmp $ ps -ef | grep tmux
username 14244 12977 0 13:04 pts/2 00:00:00 tmux
username 14246 1 0 13:04 ? 00:00:00 tmux
username 14269 14247 0 13:04 pts/3 00:00:00 grep --color=auto tmux
(within tmux) /tmp $ ls -l /proc/14244/cwd /proc/14246/cwd
lrwxrwxrwx 1 username username 0 Sep 25 13:07 /proc/14244/cwd -> /tmp/
lrwxrwxrwx 1 username username 0 Sep 25 13:07 /proc/14246/cwd -> /tmp/
Похоже, что рабочим каталогом как клиентского, так и серверного процессов tmux является каталог, в котором был запущен tmux, , но любые процессы, запущенные из строки состояния tmux, например #(pwd)
в вашей строке status-right
запускаются с $HOME
в качестве рабочего каталога.
Изменение этого поведения потребует изменения tmux
исходного кода и компиляции собственной версии.