Как я могу хранить / var на отдельном разделе?

Я хотел бы хранить /var в отдельном разделе от /. Как правильно это настроить?

17
задан 3 May 2011 в 08:39

2 ответа

Сначала подготовьте новый раздел (например, с разбитым и 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.

18
ответ дан 3 May 2011 в 08:39

Настройка нового раздела / var на виртуальном сервере

Когда я принял на себя управление новым виртуальным сервером, предоставленным хостинговой компанией моего работодателя, на нем не хватило свободного места корневая файловая система. К счастью, они использовали Logical Volume Manager (LVM) для разделения виртуального диска, и было достаточно свободного места для создания новых томов. Я создал дополнительные логические тома для var и home , которые были обычными каталогами в корневой файловой системе. Поскольку провайдер виртуального сервера не предоставил KVM-подобный интерфейс, с помощью которого я мог бы получить доступ к серверу в однопользовательском режиме, я использовал метод, очень похожий на тот, что описал Александр (этот ответ включает дополнительные сведения для восстановления дискового пространства в в дополнение к командам, относящимся к LVM).

Создайте новую файловую систему / var с 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/
4
ответ дан 3 May 2011 в 08:39

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

Похожие вопросы: