Как переместить / usr в новый раздел?

Моя папка /usr должна быть перемещена в новый раздел. Как я могу сделать это, не стирая содержимое?

Можно ли это сделать во время работы Ubuntu, или мне нужно использовать LiveCD для этого?

28
задан 19 February 2012 в 07:17

3 ответа

Было бы безопаснее всего использовать Live CD, но можно сделать:

  • скопировать все файлы на новый раздел, убедившись, что содержимое /usr не изменится во время этого процесса.
  • отредактируйте /etc/fstab так, чтобы /usr был смонтирован при следующей перезагрузке
  • reboot
  • удалите старые файлы

См. ниже подробную информацию о каждом шаге. Обратите внимание, что вы не можете смонтировать новый раздел на /usr во время выполнения, так как в /usr будет открыто много файлов.

Копирование файлов

Я бы использовал cp -a. -a является опцией архива. Со страницы man:

-a, --archive
          same as -dR --preserve=all
...
-d     same as --no-dereference --preserve=links
...
-P, --no-dereference
          never follow symbolic links in SOURCE
...
--preserve[=ATTR_LIST]
          preserve      the      specified      attributes       (default:
          mode,ownership,timestamps),  if  possible additional attributes:
          context, links, xattr, all
...
-R, -r, --recursive
          copy directories recursively

Редактирование /etc/fstab

Вам необходимо знать UUID вашего нового раздела. Вы можете увидеть отображение, сделав:

$ ls -l /dev/disk/by-uuid/

И затем добавить эту строку в /etc/fstab:

UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr           ext4    defaults        0       2

Измените UUID на UUID, и измените ext4 на тип файловой системы, которую вы используете - вы должны знать это, если вы установили раздел.

Удаление старых файлов

После перезагрузки старые файлы в /usr на корневом разделе будут скрыты новым разделом, смонтированным на /usr. Но мы можем использовать некоторую хитрость монтирования , чтобы добраться до старых файлов и затем удалить их.

$ sudo mount --bind / /mnt
$ sudo rm -rf /mnt/usr/*
$ sudo umount /mnt

Но небольшая опечатка (скажем, Нажатие Enter, когда вы вводите только sudo rm -rf /mnt ) может привести к катастрофе, поэтому я бы использовал этот метод, только если бы вы были очень уверены в том, что делаете, действительно не могли справиться с простоями, или не имели физического доступа к машине и, следовательно, не могли загрузиться с живого CD или живой USB-карты.

28
ответ дан 19 February 2012 в 07:17

Внимание: я понятия не имею, что делаю, я просто копирую команды и делаю так, как предлагают другие. Это может быть неправильный способ сделать это, но он работает для меня (по крайней мере, на данный момент).

Вот как я это сделал (следуя ответу Хэмиша и комментариям):

  1. Скопируйте все файлы вновь созданного раздела (замените на местоположение вашего раздела, он должен быть похож на мой):

     rsync -avz / usr / media / aleksandar / 750b84e2-e65f-4309-ade5-5af0033a937c
     
  2. На этом этапе я понял, что он скопировал все в папку / usr на разделе, , что не будет работать , поэтому я скопировал все (с файлом manager) из этой папки в корень раздела, а затем удалил эту пустую папку.

  3. Отредактируйте / etc / fstab (то же, что и в ответе Хэмиша, конечно, замените своим UUID)

     UUID = 634c31a5-e27c-4e33-ac67-2e22491a30c2 / usr ext4 по умолчанию 0 2
     
  4. Шаг, который оказался не очень разумным: я изменил имя смонтированного в настоящий момент раздела / usr на / usrBACKUP , чтобы я знал это, когда я перезагрузите систему, она фактически перезагружается во вновь созданный раздел, а не в старый. После этого все глючило на экране, и мне пришлось выключить его долгим нажатием клавиши включения (как и я гений) . Пропустите этот шаг, если вы не хотите давать сбой в системе.

  5. Перезагрузите систему

  6. После перезагрузки откройте Системный монитор или подобное приложение, чтобы увидеть, смонтирован ли ваш новый раздел / usr , и для проверки безопасности, все ли идет по плану.

  7. Убедившись, что все в порядке, вы можете удалить свой старый раздел / usr . Я оставлю свой на всякий случай, если что-то пойдет не так.

3
ответ дан 19 February 2012 в 07:17

Так как большинство используемых библиотек находятся в /usr, я бы не рекомендовал перемещать этот каталог при запуске Ubuntu. На самом деле, возможно, при попытке сделать это Вы получите сообщения об ошибках. Поэтому лучше всего использовать LiveCD.

Вы можете использовать несколько возможностей для перемещения/копирования файлов cp, rsync и т.д. Вы хотите убедиться, что все симлинки созданы, а не просто скопированы. cp и rsync оба имеют для этого опции.

После перемещения файлов на другой раздел вам нужно добавить еще одно монтирование в /etc/fstab, чтобы смонтировать новый раздел в /usr.

8
ответ дан 19 February 2012 в 07:17

Другие вопросы по тегам:

Похожие вопросы: