Як я можу зберігати / var на окремому розділі?


13

Я хотів би зберігати /varна окремій перегородці /. Який правильний спосіб налаштувати це?

Відповіді:


17

Спочатку підготуйте новий розділ (наприклад, з partedі 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.


1
Я додав би деяку інформацію, щоб відновити простір на старому /var: починати з livecd, монтувати розділ на встановлену систему /та rm -rf /var/*.
enzotib

1
Гарна думка. Або ви можете підключитись /до якогось іншого місця в поточній системі під час роботи (але після перезавантаження). Тоді ви можете перейти на старий /varі видалити його, якщо хочете
Олександр Левчук

1
Я раніше теж цікавився цим. Перший 1 - це щось справді архаїчне та без ефектів, другий - контролює порядок fsck, коли настає час сканувати ваш ext під час завантаження. Я більше не звертаю на них уваги. Просто поставте 1 1, тому що цього вимагає синтаксис.
Олександр Левчук

2
Ви повинні поставити 2 2, щоб дозволити такі речі, як / отримати сканування fsck до / var, коли ви перезавантажуєтесь 30-й раз. Інакше якщо / var не вдасться і попросить вас виправити речі вручну в одній оболонці користувача - тоді у вас не буде жодної файлової системи. Веселі речі.
Олександр Левчук

2
Чи не рекомендується використовувати UUID в fstab? Я отримав відповідний, використовуючи blkid -o list -s UUID, але я думаю, вам потрібно бігти з
судо

2

Налаштування нового / var-розділу на віртуальному сервері

Коли я взяв на озброєння новий віртуальний сервер, який розмістив хостинг-компанія мого роботодавця, у кореневій файловій системі не було достатньо вільного місця. На щастя, вони використовували Logical Volume Manager (LVM), щоб розділити віртуальний диск, і було достатньо вільного місця для створення нових томів. Я створив додаткові логічні томи для varі homeякі були звичайні каталоги в кореневій файловій системі. Оскільки постачальник віртуальних серверів не надав KVM-інтерфейс, за допомогою якого я міг отримати доступ до сервера в режимі однокористування, я застосував дуже подібний метод до описаного в Aleksander (ця відповідь включає додаткові деталі для відновлення дискового простору в додаток до специфічних команд 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опція). Обережний користувач може спершу створити знімок 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/

Приємне пояснення залучених варіантів. Однак ви користуєтесь lvcreateі mkfs.ext4не пояснюючи, що використовуються або для чого. Можливо, ви можете просто сказати, що це для створення нового розділу, оскільки вони не є основною темою відповіді.
PhoneixS

Дякуємо за відгук @PhoneixS Я відредагував відповідь, щоб зробити її зрозумілішою та надати додаткову контекстну інформацію.
Ентоні
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.