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