Переміщення /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/