20080123

Как я перемещал /home

Вчера наводил порядок на своём ноутбуке, разгребал место. В начале, с помощью gparted ужал раздел с Windows и удалил скрытый заводской раздел (3 с гаком гигабайта, куда Acer, видимо, положил образ для восстановления)... Так что, если Windows у меня теперь слетит — то навсегда :) Сделал новый раздел, чтобы переместить туда /home. И переместил. Потому что на одном разделе с системой моему /home стало тесно.

Как пользоваться gparted и форматировать разделы — рассказывать не буду (запускается из меню «Система / Администрирование / Partition Editor»), а вот как перемещал /home на отдельный раздел диска — расскажу. Следовал инструкциям из статьи «Partitioning in action: Moving /home» на IBM developerWorks.

0. Выхожу из сессии иксов, переключаюсь в текстовую консоль (Ctrl+Alt+F1), вхожу как root.

1. Монтирую вручную новый раздел:
# mkdir /mnt/newhome
# mount /dev/новыйраздел /mnt/newhome

(понятно, что вместо /dev/новыйраздел надо подставить название нужного раздела, например, /dev/hda1, как в моём случае)

2. Перехожу в однопользовательский режим, чтобы быть уверенным, что никакие программы в /home не пишут:
# init 1

3. Перехожу к домашним каталогам и копирую их все с сохранением всех свойств и ссылок (ключ -a):
# cd /home
# cp -ax * /mnt/newhome

синкаюсь и размонтирую:
# sync
# umount /mnt/newhome


4. Убираю в сторонку старый /home и подключаю новый (он должен быть точно такой же). На всякий случай, старое содержимое сохранится в /oldhome:
# cd /
# mv /home /oldhome
# mkdir /home
# mount /dev/новыйраздел /home


5. Выхожу из однопользовательского режима (CTRL-D или # init 2 в Debian). После запуска системы редактирую /etc/fstab, добавляя строчку, чтобы монтировать /dev/новыйраздел в /home при загрузке.

Спустя 24 часа полёт нормальный, доставать резервную копию не надо :) Если всё в порядке, то копию домашнего каталога в /oldhome можно удалить.