Переместить домашнюю папку на второй диск


65

У меня 2 жестких диска в моем компьютере. На данный момент второй диск смонтирован как /media/storage.

Как я могу переместить мои пользовательские данные из /homeв /media/storage/home?

Могу ли я просто переместить данные туда, а затем просто вставить ссылку назад?


Ответ, использующий usermod, является самым простым: создать временного администратора, переключиться на эту учетную запись, usermod -m -d /path/to/non_existent_home_dir usernameвернуться к своей учетной записи (имя пользователя), удалить временного администратора. Хотя это все еще 5 шагов, намного меньше, чем другие ответы, гораздо менее рискованно и намного проще.
Оливер

Ответы:


31

Если вы хотите просто переместить свой домашний каталог, т.е. / home / your-username, просто скопируйте свой домашний каталог в другой раздел и затем используйте System-> Administration-> Users & Groups, чтобы открыть диалоговое окно настроек пользователя. Нажмите на значок ключа, чтобы подтвердить свою личность

альтернативный текст

После этого выберите пользователя, которого хотите изменить, и нажмите «Свойства», перейдите на вкладку «Дополнительно».

альтернативный текст

измените домашний каталог на новый, то есть каталог, который вы скопировали в другой раздел.


3
На самом деле. Это отличный способ легко изменить местоположение домашнего каталога определенного пользователя. Читая вопрос, я понял, что это было бы для каталога / home во всем мире. В этом случае вы можете создать раздел на другом устройстве, вручную переместить туда все файлы и затем изменить устройство для точки монтирования в самом файле / etc / fstab.
jfmessier

3
@jfmessier: вы должны сделать это ответ, а не комментарий!
Skizz

1
Если вы копируете свой домашний каталог с помощью 'cp' в командной строке, вам лучше использовать 'cp -rPa *': r для рекурсии, P для не следования по ссылкам, a для сохранения флагов владения и разрешений.
drevicko

1
Unity в 13.04 не имеет «Пользователи и группы», просто параметр «Пользователи», который не включает эти параметры. Можете ли вы упомянуть соответствующие термины для Unity в 13.04?
Торбен Гундтофте-Брюн,

Если вы используете Ubuntu 12.04 или выше, опция использования метода GUI может быть недоступна, по крайней мере, для меня это не так. Я должен был использовать этот метод, найденный здесь: help.ubuntu.com/community/Partitioning/Home/Moving
Кайл Кутс

84

Перемещение HOME из командной строки

Чтобы избежать побочных эффектов при работе в графическом окружении, мы должны выполнить все действия, чтобы переместить HOME из терминала с помощью Ctrl+ Alt+ F1.

Временно смонтируйте новый раздел:

sudo mkdir /mnt/tmp
sudo mount /dev/sdb1 /mnt/tmp

при условии, что / sdb1 - новый раздел для HOME

Скопируйте ДОМОЙ на новое место:

sudo rsync -avx /home/ /mnt/tmp

Затем мы можем смонтировать новый раздел как HOME с

sudo mount /dev/sdb1 /home

чтобы убедиться, что все данные присутствуют. На данный момент проще всего удалить старое /home(вы можете сделать это позже, но тогда вам придется загрузить работающую систему, чтобы увидеть старый дом):

sudo umount /home  #unmount the new home first!
rm -rf /home/*  #deletes the old home

Сделайте HOME постоянным

Нам нужно знать UUID нового раздела для fstabзаписи, видимой из:

sudo blkid

Отметьте или скопируйте / вставьте правильный UUID для редактирования fstabс помощью

sudo nano /etc/fstab   #or any other editor

и добавьте следующую строку в конце:

UUID=<noted number from above>    /home    ext4    defaults   0  2

Позаботьтесь о том, чтобы выбрать подходящую файловую систему здесь, например, в ext3формате ext3

перезагрузка

После перезагрузки ваш компьютер будет /homeнаходиться на новом диске, на котором достаточно места.


1
Не работал для меня.
Corev

2
Я рекомендую выйти из профиля, который вы хотите переместить, вы также можете использовать инструменты распространения, как usermodдля этой задачи.
LiveWireBT

Это сработало! Благодарю. Можно ли удалить /mnt/tmpпосле перезагрузки?
e9t

@ e9t: это только точка монтирования, которую мы создали, чтобы иметь возможность временно смонтировать наш ДОМ. Эту точку монтирования можно удалить, но она не причинит вреда (и может быть безопаснее), если ее просто сохранить. Если по какой-либо причине вы все еще хотите удалить его, пожалуйста, будьте особенно осторожны, чтобы ничего не было смонтировано там (в противном случае вы рискуете безвозвратно удалить все данные, которые вы смонтировали /mnt/tmp).
Таккат

1
Я следовал этим инструкциям для своего сервера и теперь не могу получить к нему доступ через SSH (В доступе отказано (publickey) :( :( :(
Khue

14

Официальная подробная процедура находится здесь, в википедии по Ubuntu.


Найдите UUID раздела

sudo blkid

Настроить Fstab

sudo -H gedit /etc/fstab 

и добавить эти строки в него

UUID=????????   /media/home    ext4    defaults    0  2 

и заменить ????????на номер UUID предполагаемого /homeраздела.

Сохраните и закройте fstabфайл, затем введите следующую команду:

sudo mkdir /media/home

Копировать /homeв новый раздел

sudo rsync -aXS --progress --exclude='/*/.gvfs' /home/. /media/home/.

Проверка копирования сработала

sudo diff -r /home /media/home -x ".gvfs/*"

Примечание. Можно также ожидать появления некоторых ошибок, связанных с не найденными файлами. Это связано с символическими ссылками, которые указывают на места, которые в настоящее время не существуют (но будут делать после перезагрузки). Вы можете игнорировать это - но проверить что-нибудь еще.

Подготовка fstab для коммутатора

sudo -H gedit /etc/fstab

и теперь отредактируйте строки, которые вы добавили ранее, изменив /media/homeдеталь /homeтак, чтобы она выглядела так:

UUID=????????   /home   ext4    defaults     0  2 

Переезд /homeв/old_home

cd / && sudo mv /home /old_home && sudo mkdir /home

Перезагрузите или переустановите все

Перезагрузите или переустановите все с этим:

sudo mount -a

10
Добро пожаловать в Спросите Ubuntu! Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
Элия ​​Каган

7

На самом деле. Это отличный способ легко изменить местоположение домашнего каталога конкретного пользователя. Читая вопрос, я понял, что это было бы для каталога / home во всем мире. В этом случае вы можете создать раздел на другом устройстве, вручную переместить туда все файлы и затем изменить устройство для точки монтирования в самом файле / etc / fstab.


2

Хорошо, единственный способ, с помощью которого я нашел это, - это создать другого пользователя, предоставить ему права администратора, выйти из основного идентификатора, войти в систему с новым идентификатором и затем использовать команду usermod.


0

Задача:

  • Проверьте наличие и отформатируйте два жестких диска: «WD Purple» и «WD Gold».
  • Подключите два жестких диска к файловой системе Ubuntu.
  • Переместите папку HOME на жесткий диск WD Gold.

Ссылки по теме:

Формат дисков

Подключите все необходимые SATA и силовые кабели к жестким дискам. Загрузите Ubuntu. Нажмите клавиатуру и введите «Диски». Будет открыта утилита «Диски»: введите описание изображения здесь

В этой утилите вы можете отформатировать ваши жесткие диски в файловую систему Ext4. В противном случае для форматирования дисков используйте команды:

  1. fdisk (man fdisk);
  2. расстались (мужчина расстался);
  3. mkfs (man mkfs)

Например, но я не уверен с параметрами, потому что используется графический интерфейс «Диски»:

sudo mkfs.ext4 -L purple /dev/sdb  # not sure with parameters
sudo mkfs.ext4 -L gold   /dev/sdc  # not sure with parameters

Имейте в виду, что форматирование удалит все на целевом жестком диске . Вы можете пропустить этот шаг, если на жестком диске есть какие-либо данные и вы хотите их не потерять.

Медленное форматирование должно занимать много времени: от 16 до 20 часов для диска объемом 4 ТБ.

Постоянно монтировать диски

# Press CTRL+ALT+T and open a console.
# Check your /dev/sdb and /dev/sdc discs are visible:
lsblk
# Create directories for the new HDD WD Purple and WD Gold
sudo mkdir /hdd_purple
sudo mkdir /hdd_gold  # temporary directory
# Temporary mount to the new mount point
sudo mount /dev/sdb1 /hdd_purple
sudo mount /dev/sdc1 /hdd_gold
# Unmount drives
sudo umount /dev/sdb1
sudo umount /dev/sdc1

# Configuration file /etc/fstab has list of all partitions that will be mounted at boot.
# 1. Show and copy UUID of the HDD with this command:
sudo blkid
# My data is:
#     /dev/sdb1: LABEL="purple" UUID="6ce9ec1f-3bf5-420f-8502-1b4f55f2fc60" TYPE="ext4" PARTUUID="a14c8357-a8ce-42e4-9772-64ccfad3e226"
#     /dev/sdc1: LABEL="gold" UUID="1d049c7c-4565-480b-a181-2459e8ff8c1b" TYPE="ext4" PARTUUID="4c691b21-b4e3-4dab-ab91-d7bf7272b2b5"
# Make a backup of that file to be able to revert changes.
sudo cp /etc/fstab /etc/fstab.2018.11.29.bak
# 2. Add a new partitions by editing /etc/fstab file as root:
sudo nano /etc/fstab
# 3. At the bottom of fstab file add 2 lines similar to this:
UUID=6ce9ec1f-3bf5-420f-8502-1b4f55f2fc60   /hdd_purple   ext4   defaults           0  2
UUID=1d049c7c-4565-480b-a181-2459e8ff8c1b   /hdd_gold     ext4   defaults           0  2
# Your UUID have to be different!
# Write the file with keys <Ctrl+O> then <Return>. Quit the editor with <Ctrl+X>.
# If you have Midnight Commander running, then save before quitting with <Ctrl+X>,
# because <Ctrl+O> will switch from nano editor to your MC.

# To see if the drive is mounted correctly we can simulate the mount process at boot with:
sudo mount -a

Перемещение HOME из командной строки

# To avoid side effects while working in a graphical, environment
# we should perform all actions to move HOME from a terminal with Ctrl+Alt+F3.

# Press <Ctrl+Alt+F3> and swidth to console mode.
# Login in the console mode.

# Copy HOME to the new location:
sudo rsync -avx /home/ /hdd_gold

# Delete everything in the HOME directory.
# Be careful with this command, make sure you have a backup.
rm -rf /home/*

# Make HOME permanent -- edit /etc/fstab configuration file
sudo nano /etc/fstab
# Change string
UUID=1d049c7c-4565-480b-a181-2459e8ff8c1b  /hdd_gold  ext4  defaults  0  2
# to string
UUID=1d049c7c-4565-480b-a181-2459e8ff8c1b  /home      ext4  defaults  0  2
# /hdd_golds change to /home directory

# After a reboot, your /home resides on the new drive having plenty of space.
sudo reboot
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.