Перемещение каталога / usr в другой раздел [duplicate]

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

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

21
задан 19 February 2012 в 09: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. Но мы можем использовать некоторые mount bind trickery , чтобы перейти к старым файлам, а затем удалить их.

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

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

24
ответ дан 6 August 2018 в 03:13

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

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

  1. Скопируйте все файлы только что созданного раздела (замените его местоположением, оно должно выглядеть похоже на мое):
    rsync -avz /usr /media/aleksandar/750b84e2-e65f-4309-ade5-5af0033a937c 
    
  2. На этом этапе я понял что он скопировал все в папку /usr в разделе, который не будет работать, поэтому я скопировал все (с файловым менеджером) из этой папки в корень раздела и удалил эту пустую папку впоследствии.
  3. Редактировать /etc/fstab (то же, что и в ответе Хэмиша, конечно, заменить на ваш UUID)
    UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr           ext4    defaults        0       2
    
  4. Шаг, который оказался не очень мудрым: я изменил имя от текущего монтируемого раздела /usr до /usrBACKUP, так что я знаю, что при перезагрузке системы он фактически перезагружается во вновь созданный раздел, а не старый. После этого все захлопнулось на экране, и я должен был отключить его, долгое нажатие клавиши включения (гений, как и я). Пропустите этот шаг, если вы не хотите сбивать систему.
  5. Перезагрузите систему
  6. После перезагрузки откройте системный монитор или подобное приложение, чтобы узнать, установлен ли ваш новый раздел /usr и проверить безопасность, все ли пошло так, как планировалось.
  7. После проверки того, что все в порядке, вы можете удалить старый раздел /usr. Я буду держать меня на всякий случай, если что-то пойдет не так.
1
ответ дан 25 July 2018 в 21:20

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

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

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

6
ответ дан 10 August 2018 в 09:16

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

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