Рассмотрим перенос папки /home на другой диск, что обычно обусловлено нехваткой места на существующем диске. Кто ещё не понял, речь идет об операционных системах Linux, а конкретно Ubuntu и её вариациях.
Исходные данные — система установлена «из коробки» с единым корневым разделом, на котором находится директория /home, будем производить перенос её содержимого на отдельный lvm-раздел. Подключив новый диск, убеждаемся, что в системе установлен менеджер разделов. При необходимости устанавливаем его, а также lvm-утилиты, которые потребуются нам в дальнейшем.
1 2 |
sudo apt-get install gparted sudo apt-get install lvm2 |
Запустив Gparted, создаем на новом диске таблицу разделов, раздел без файловой системы с произвольной меткой и установим для него флаг lvm
Менеджер дисков нам больше не понадобится, вместо него открываем терминал, а так как следующий ряд команд требует рутовых прав, повышаем их, чтобы не делать это перед каждой командой. С помощью lvm-утилит создаем таблицу разделов, затем группу томов (назовем её, например, lvm), а на ней требуемый нам раздел под директорию /home. В примере я рассматриваю создание раздела размером 1 Gb, в вашем случае цифра может быть другой, но помните, что увеличить этот раздел можно будет в любое время без перезагрузки, а вот для уменьшения он должен быть отмонтирован, для этого потребуется загрузиться либо с LiveCD, либо в другую систему.
1 2 3 4 |
sudo su pvcreate /dev/sdb1 vgcreate lvm /dev/sdb1 lvcreate -L 1G -n home lvm |
Форматируем созданный раздел в ext4 и отключаем резервирование места под системные данные, которое неактуально в случае с /home, затем присваиваем метку диска «Номе»
1 2 3 |
mkfs.ext4 /dev/lvm/home tune2fs -r 0 /dev/lvm/home tune2fs -L Home /dev/lvm/home |
Подготовительный этап закончен, теперь у нас есть существующая директория /home и новый чистый раздел, предназначенный для неё. Для переноса данных создаем директорию /homenew, подмонтируем к ней созданный выше раздел и выполним копирование файлов из /home в /homenew с соблюдением прав.
1 2 3 |
mkdir /homenew mount /dev/lvm/home /homenew cp -a /home/* /homenew/ |
Теперь необходимо узнать идентификатор нового диска и прописать постоянную точку его монтирования в файл fstab. Запускаем утилиту blkid, находим значение UUID для нового диска и добавляем в конец файла fstab строку монтирования нового раздела:
1 |
blkid |
1 |
nano /etc/fstab |
1 |
UUID=edd51c30-458d-46bc-a929-f86b82ec8053 /home ext4 defaults 0 2 |
Сохраняем изменения Ctrl+O и выходим из редактора Ctrl+X
Далее необходимо перезапустить консоль, иначе при выполнении следующей команды получим сообщение, что файлы и директории заняты другим процессом.
Отмонтируем новый раздел от директории /homenew, переименуем существующую папку /home в /homeold и перезагрузимся.
1 2 3 |
sudo umount /homenew sudo mv /home /homeold sudo reboot |
После перезагрузки папка /home перенесена и находится на новом диске, а следовательно можно освободить место от ненужных более директорий.
1 2 |
sudo rm -rf /homeold sudo rm -rf /homenew |
Вынос директорий на lvm-раздел позволит в дальнейшем достаточно гибко манипулировать их размерами, как в рамках одного диска, так и подключая новые диски к группе томов.