Разделяй и властвуй

22:34
Мой корневой раздел почти заполнен. Мне нужно больше места, и у меня есть свободный раздел, куда я могу положить, скажем, /usr/lib. Но как это сделать?

Linux позволяет монтировать отдельные разделы где угодно под /, упрощая использование отдельных разделов для каждой части Вашей системы. Самая хитрая часть процесса – перенос данных из оригинальной файловой системы на новую. Если Вы не используете отдельный раздел под /home, я очень рекомендую сделать это, поскольку отделение /home от остальной файловой системы имеет несколько преимуществ. Что бы Вы ни делали, сделайте резервные копии. Если Вы удалите что-то нужное, то будете рады, что послушались меня.


Копирование данных, особенно системных файлов, на живой системе – рискованное занятие, поэтому загрузитесь с LiveCD, например, с KNOPPIX. Я подразумеваю, что Ваш текущий системный раздел – /dev/hda1, а /home Вы будете перемещать на /dev/hda2. Внесите соответствующие изменения, в соответствии с Вашей системой.

Первый шаг – запуск QtParted, разметка и форматирование раздела. Теперь откройте терминал и выполните следующие команды:

su
mount /dev/hda1 /mnt/hda1
mount /dev/hda2 /mnt/hda2
rsync -avx /mnt/hda1/home/ /mnt/hda2/


Первая строка дает привилегии суперпользователя, следующие две монтируют старый и новый разделы, последняя – копирует все из старой директории home в новый раздел. Можно было бы использовать cp или tar для копирования файлов, но по-моему, самый надежный метод создания копии – rsync, если нужно сохранить временные отметки и права доступа.

Теперь добавьте строку, относящуюся к новому разделу, в /etc/fstab. Knoppix поставляется с редактором Nano:

nano /mnt/hda1/etc/fstab

Добавьте что-то вроде

/dev/hda2 /home ext3 defaults 0 0

Это если Вы отформатировали раздел в файловой системе ext3, как это делает по умолчанию QtParted. Если Вы используете ReiserFS, замените ext3 на reiserfs.

Если Вы загрузитесь в систему и выполните df -h в терминале, то увидите, что /home (или любая другая директория, которую Вы переносили на другой раздел), теперь находится на отдельном разделе. «Но», вскрикнете Вы в монитор, «мой корневой раздел все еще заполнен!»

Это потому, что Вы скопировали данные на другой раздел, и они теперь в находятся в обоих местах. Так и задумано в случае неверных действий Вы сможете все откатить. Данные все еще здесь, но они невидимы, поскольку новый раздел смонтирован в /home, и старые данные скрыты. Можете загрузиться в Knoppix и удалить данные оттуда, как только убедитесь, что все в порядке, но вот небольшой трюк для избежания перезагрузки:

mkdir /mnt/tmp
mount --bind / /mnt/tmp
rm -fr /mnt/tmp/home/*


Он позволит Вам увидеть и удалить файлы в старой домашней директории. Убедитесь, что Вы удалили только содержимое, а не саму директорию. Она нужна, чтобы смонтировать новый раздел. Можете сделать то же самое с /usr/lib, если захотите, однако /home – лучший вариант, если он еще не на отдельном разделе (в противном случае обдумайте перемещение /usr/local). Все зависит от того, сколько места Вы хотите освободить; поможет информация о том, сколько места занимает каждая директория, от утилиты FileLight, доступной на www.methylblue.com/filelight и включенной в репозитории многих дистрибутивов.

Можете также использовать LVM для комбинирования дисков, как описано в LXF83. НБ

(с) скомунижжено, ссылка утеряна