Я хотел бы хранить /var
в отдельном разделе от /
. Как правильно это настроить?
Сначала подготовьте новый раздел (например, с разбитым
и mkfs
).
Скажем, что раздел /dev/sda5
Размонтируйте новый раздел:
mkdir /var2
mount /dev/sda5 /var2
Синхронизируйте текущий var:
rsync -a /var/ /var2
Добавьте запись в /etc/fstab
/dev/sda5 /var ext4 defaults 2 2
Перезагрузите.
Если вам случайно понадобится вернуться назад, ваш старый /var просто прокомментируйте запись в fstab.
Когда я принял на себя управление новым виртуальным сервером, предоставленным хостинговой компанией моего работодателя, на нем не хватило свободного места корневая файловая система. К счастью, они использовали Logical Volume Manager (LVM) для разделения виртуального диска, и было достаточно свободного места для создания новых томов. Я создал дополнительные логические тома для var
и home
, которые были обычными каталогами в корневой файловой системе. Поскольку провайдер виртуального сервера не предоставил KVM-подобный интерфейс, с помощью которого я мог бы получить доступ к серверу в однопользовательском режиме, я использовал метод, очень похожий на тот, что описал Александр (этот ответ включает дополнительные сведения для восстановления дискового пространства в в дополнение к командам, относящимся к LVM).
Создайте логический том для новой файловой системы var
, смонтируйте его (используя временный каталог) и скопируйте файлы из текущий / var
в новую файловую систему:
# Create a new 60GB logical volume in the `VolGroup00` group called `var`.
sudo lvcreate -L 60GB -n var VolGroup00
# Create an ext4 filesystem on this new `var` volume.
sudo mkfs.ext4 /dev/VolGroup00/var
# Mount this filesystem at a temporary mount-point.
sudo mkdir /var.new
sudo mount /dev/VolGroup00/var /var.new
Поскольку запущенные процессы будут иметь файлы в / var
, открытые и используемые, дерево каталогов нельзя просто переместить в новая файловая система. Рекурсивно ( -r
) копировать файлы из текущего раздела / var
в новую файловую систему с сохранением атрибутов файлов и расширенных атрибутов ( -a, --archive
option ). Осторожный пользователь может сначала создать снимок LVM текущего тома перед копированием, но это слишком много деталей не по теме для этого вопроса.
sudo cp -ra /var/ /var.new/
В качестве альтернативы файлы можно скопировать с помощью rsync
] с его опцией -a, --archive
для сохранения отметок времени, прав собственности, режимов и т. д. и опцией -X, --xattrs
для сохранения расширенных атрибутов, таких как в качестве меток безопасности, используемых AppArmor и SELinux:
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
(они «замаскированы» новой файловой системой с использованием каталога / 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/