У меня есть / раздел, который содержит / var и слишком мал. У меня есть еще один существующий раздел, на котором достаточно места.
Вот мой df:
File system Size. Occ. Avai. %Ful. Monté sur
/dev/sda1 5,0G 4,5G 289M 95% /
tmpfs 242M 0 242M 0% /lib/init/rw
udev 10M 2,7M 7,4M 27% /dev
tmpfs 242M 0 242M 0% /dev/shm
/dev/sda2 15G 406M 14G 3% /home
Как я могу переместить папку / var с sda1 на sda2?
Перейдите в однопользовательский режим и убедитесь, что любой процесс, записывающий в /var
остановлен. (Проверить с lsof | grep /var
)
mkdir -p /home/var
rsync -va /var /home/var
mv /var /var.old
# вы можете удалить /var.old
когда вы закончите, чтобы освободить местоmkdir -p /var
mount -o bind /home/var /var
/etc/fstab
чтобы сделать крепление постоянным./etc/fstab
/home/var /var none bind
Вы также можете использовать:
mkdir /home/var
<move contents of /var to /home/var -- however you want; EX: mv /var/* /home/var>
mv /var /var.old
ln -s /home/var /var
Это кажется намного проще, чем возиться с fstab и mount.
/var
без перехода в однопользовательский режимКогда я взял на себя новый виртуальный сервер, который был предоставлен мне хостинг-компанией моего работодателя, я создал дополнительные логические тома для var
и home
которые раньше были обычными каталогами в корневом разделе. Поскольку провайдер виртуального сервера не предоставил KVM-подобный интерфейс, с помощью которого я мог бы получить доступ к серверу в однопользовательском режиме, приведенные выше ответы не были применимы к моей настройке. Я надеюсь, что этот ответ будет полезен другим в аналогичной ситуации (я сохранил детали LVM, но их можно пропустить, поскольку не имеет особого значения, создается ли новая файловая система на логическом томе или в разделе диска).
/var
файловая система с LVMСоздайте файловую систему для нового var
том, смонтируйте его (используя временный каталог) и скопируйте файлы из текущего /var
в новую файловую систему. При копировании файлов с rsync
, используйте его -a, --archive
возможность сохранения отметок времени, владения, режимов и т. д. и его -X, --xattrs
опция для сохранения расширенных атрибутов, таких как метки безопасности, используемые AppArmor и SELinux.
sudo lvcreate -L 60GB -n var VolGroup00
sudo mkfs.ext4 /dev/VolGroup00/var
sudo mkdir /var.new
sudo mount /dev/VolGroup00/var /var.new
sudo rsync -raX /var/ /var.new/
Настройте новую файловую систему для использования в качестве новой точки монтирования для /var
добавив следующую строку в /etc/fstab
. Обратите внимание, что 0
используется в качестве номера прохода (последнее поле), чтобы файловая система не проверялась автоматически (fsck
) после определенного количества перезагрузок (у меня нет доступа для входа на сервер в однопользовательском режиме).
/dev/mapper/VolGroup00-var /var ext4 defaults 0 0
Поскольку я не могу перейти в однопользовательский режим, перезагрузите компьютер, чтобы использовать этот новый том как /var
.
После перезапуска машины выполните следующие действия, чтобы очистить временный каталог и удалить старый /var
файлы из корневой файловой системы:
Удалите временную точку монтирования:
sudo rmdir /var.new
Создайте новую точку монтирования, чтобы создать альтернативный путь к файлам на старом /var
каталог в корневой файловой системе (в настоящее время он «замаскирован» новым /var
файловая система, смонтированная в каталоге):
sudo mkdir /old-root
sudo mount /dev/mapper/VolGroup00-root /old-root/
sudo rm -rf /old-root/var/*
sudo umount /old-root/
sudo rmdir /old-root/