Как переместить домашний каталог Linux на другой диск

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

Зачем хранить домашнюю папку отдельно?

Если вы настраиваете новую машину или добавляете жесткий диск к существующему, вы можете захотеть, чтобы ваш домашний каталог находился на другом диске, а не в местоположении по умолчанию.

Все более популярной конфигурацией для современных персональных компьютеров является твердотельный накопитель (SSD) среднего размера, на котором установлена ​​операционная система, и более крупный гибридный твердотельный накопитель (SSHD) или традиционный жесткий диск (HD) в качестве основного хранилища данных. Или у вас может быть один традиционный жесткий диск в вашей системе, и вы добавили новый жесткий диск для увеличения объема памяти. Какими бы ни были ваши причины, вот простой и понятный способ перемещения вашего домашнего каталога.

Кстати, если вы устанавливаете систему Linux с нуля, вы, вероятно, увидите возможность создать отдельный домашний каталог в установщике вашего дистрибутива Linux. Как правило, вам просто нужно войти в параметры разбиения, создать отдельный раздел и смонтировать его в «/ home». Но если вы уже установили дистрибутив Linux, вы можете использовать эти инструкции, чтобы переместить текущий домашний каталог в новое место, ничего не теряя и не переустанавливая операционную систему.

Теперь, прежде чем мы начнем, сделайте резервную копию.

Определить диск

Если вы только что подключили диск к компьютеру с Linux или установили Linux на один из дисков в новом многодисковом компьютере и перезагрузились, мало свидетельств того, что новый диск вообще присутствует.

Команда fdisk будет перечислить диски и их разделы для нас.

sudo fdisk -l

sudo fdisk -l в окне терминала

Прокрутите вывод, пока не определите новый диск. Первый диск называется / dev / sda, второй — / dev / sdb и так далее, причем последняя буква увеличивается каждый раз. Итак, / dev / sde будет пятым жестким диском в системе.

в этом примере новый привод является вторым приводом, устанавливаемым в систему. Итак, нам нужно найти запись для / dev / sdb.

Вывод из fdisk в окне терминала с выделенным / dev / sdb

/ dev / sdb выделен выше. Вы заметите, что на нем нет строки с описанием раздела. Это совершенно новый привод, так что его еще не будет. Нам нужно создать раздел. Мы можем сделать это с помощью fdisk. Если ваш жесткий диск не / dev / sdb, убедитесь, что вы заменили / dev / sdb на фактический идентификатор вашего нового жесткого диска в команде.

sudo fdisk /dev/sdb

sudo fdisk / dev / sdb в окне терминала

Когда fdisk запросит у вас команду, нажмите букву p. Это распечатает таблицу разделов жесткого диска. Мы знаем, что у него его не будет, но мы получили полезную информацию о накопителе. Это дает нам хороший шанс убедиться, что диск, для которого мы собираемся создать раздел, — это тот диск, с которым мы собирались работать.

  Как установить тему Ambiance Crunchy GTK в Linux

Он говорит нам, что это диск емкостью 1 ТБ, что соответствует тому, что мы ожидаем от этой тестовой машины, поэтому мы продолжим.

Создать раздел

Нажмите букву n для нового раздела, а затем нажмите p для основного раздела. Когда вас спросят номер раздела, нажмите цифру 1.

Мы собираемся создать один раздел для всего диска, поэтому при запросе первого сектора мы можем нажать Enter, чтобы принять значение по умолчанию. Затем вам будет предложено ввести последний сектор, и Enter примет значение по умолчанию.

создание раздела с помощью fdisk в окне терминала

Хотя fdisk подтверждает, что он создал раздел Linux размером 1 ТБ, который является разделом номер 1, на жестком диске еще ничего не изменилось. Пока вы не дадите fdisk команду записать изменения на диск, диск останется нетронутым. Убедившись, что вы довольны нашим выбором, нажмите букву w, чтобы записать изменения на диск.

запись изменений fdisk на диск в окне терминала

Раздел записан в / dev / sdb. Давайте проверим, что только что произошло. Мы еще раз воспользуемся fdisk на / dev / sdb.

sudo fdisk /dev/sdb

sudo fdisk / dev / sdb в окне терминала

Нажмите букву p, чтобы распечатать эту таблицу разделов, и вы увидите, что теперь для диска указан раздел. Поскольку это был первый раздел на этом диске, он называется / dev / sdb1. Второй раздел будет называться / dev / sdb2 и так далее.

Мы не хотим вносить какие-либо изменения в раздел, поэтому нажмите букву q, чтобы выйти.

Создайте файловую систему на разделе

Нам нужно создать файловую систему на разделе. Это легко сделать с помощью команды mkfs. Обратите внимание, что вы должны указать номер раздела в команде. Будьте осторожны при вводе / dev / sdb1 (раздел), а не / dev / sdb (диск).

sudo mkfs -t ext4 /dev/sdb1

sudo mkfs -t ext4 / dev / sdb1 в окне терминала

Файловая система будет создана для вас, и вы вернетесь в командную строку.

Вывод команды mkfs в окне терминала

Установка нового диска

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

Точка / mnt — самое подходящее место. Это всего лишь временная точка монтирования, позволяющая копировать данные на новый диск. Мы собираемся использовать команду mount для монтирования файловой системы на первом разделе на / dev / sdb, в / mnt.

sudo mount /dev/sdb1 /mnt

sudo mount / dev / sdb1 / mnt в окне терминала

Если все пойдет хорошо, вы вернетесь в командную строку без сообщений об ошибках. Посмотрим, сможем ли мы сменить каталог на нашу недавно смонтированную файловую систему.

cd /mnt

cd / mnt в окне терминала

Да мы можем. посмотрим, что здесь.

ls -ahl

ls -ahl в окне терминала

Мы в нашей новой файловой системе. Каталог по умолчанию «lost + found» не требуется, поэтому мы можем его удалить.

sudo rm -rf lost+found

sudo rm -rf lost + найдено в окне терминала

Копирование вашей домашней папки

Нам нужно скопировать все из старого домашнего каталога во вновь смонтированную файловую систему. Использование параметров r (рекурсивный) и p (сохранить) гарантирует, что все подкаталоги копируются и что права собственности на файлы, разрешения и другие атрибуты сохраняются.

sudo cp -rp /home/* /mnt

sudo cp -rp / home / * / mnt в окне терминала

Когда копирование будет завершено, используйте ls, чтобы осмотреться и убедиться, что ваши данные находятся там, где вы ожидаете, что они будут в новой файловой системе. Другими словами, если / mnt был вашим домашним каталогом, все ли там правильно?

ls
ls dave

ls в окне терминала

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

sudo mv /home /home.orig

sudo mv / home /home.orig в окне терминала

И мы создадим новый пустой домашний каталог.

sudo mkdir /home

sudo mkdir / home в окне терминала

Мы будем использовать этот новый пустой домашний каталог в качестве точки монтирования нашей файловой системы на новом жестком диске. Нам нужно размонтировать его из / mnt и перемонтировать в / home. Обратите внимание, что в команде umount нет буквы «n» после «u».

sudo umount /dev/sdb1
sudo mount /dev/sdb1 /home/

sudo umount / dev / sdb1 в окне терминала

Тестирование вашего нового домашнего каталога

Посмотрим, какие сейчас атрибуты раздела / dev / sdb1:

df /dev/sdb1

df / dev / sdb1 в окне терминала

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

  Как настроить Cozy Cloud Sync в Linux

Если мы переместимся в произвольную точку файловой системы, мы должны иметь возможность вернуться в / home с помощью ярлыка ~ тильда.

cd /
cd ~
pwd
ls

cd / и другие команды в окне терминала для проверки домашнего каталога

cd /home
ls
cd dave
ls
ls -a

cd / home и другие команды для проверки / home firectory в окне терминала

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

Если чего-то не хватало, мы могли скопировать его из каталога /home.orig, к которому у нас все еще есть доступ в корне файловой системы. Но все выглядит нормально.

Теперь нам нужно, чтобы / dev / sdb1 автоматически монтировался при каждом запуске вашего компьютера.

  Как настроить пересылку X11 в Linux

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

Файл «fstab» содержит описания файловых систем, которые будут монтироваться при загрузке системы. Прежде чем вносить в него какие-либо изменения, мы сделаем резервную копию, к которой мы сможем вернуться в случае возникновения проблем.

sudo cp /etc/fstab /etc/fstab.orig

sudo cp / etc / fstab /etc/fstab.orig в окне терминала

Теперь мы можем редактировать файл fstab.

sudo gedit /etc/fstab

sudo gedit .etc.fstab в окне терминала

Вы должны добавить строку внизу файла для монтирования нашего нового каталога / home. Если идентификаторы вашего диска и раздела отличаются от используемых в этом примере, замените их на / dev / sdb1, показанный здесь.

Введите имя раздела в начале строки и нажмите клавишу Tab.
Введите точку монтирования / home и нажмите Tab.
Введите описание файловой системы ext4 и нажмите Tab.
Введите значения по умолчанию для параметров монтирования и нажмите Tab.
Введите цифру 0 для параметра дампа файловой системы и нажмите Tab.
Введите цифру 0 для параметра проверки файловой системы.

Использование gedit для редактирования файла fstab

Сохраните файл fstab.

Перезагрузите вашу систему

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

Если этого не произойдет, у вас все еще есть подстраховка исходного каталога / home и файла fstab, который можно восстановить при необходимости. Благодаря предпринятым нами мерам предосторожности — копированию каталога / home и файлов fstab — вы можете легко вернуть свою систему в то состояние, в котором она была до запуска.

sudo reboot now

sudo reboot now в окне терминала

Заключительные проверки

Когда ваша система перезагружается, давайте просто проверим, что ваш каталог / home действительно находится на вашем новом жестком диске, и ваша система каким-то образом (чудесным образом) не вернулась к использованию старого каталога / home.

df /dev/sdb1

df / dev / sdb1 в окне терминала

Отлично, он установлен в / home. Миссия выполнена.

Как только вы будете полностью уверены, что вам больше не нужна безопасная копия вашего старого / домашнего каталога, вы можете удалить ее:

cd /
sudo rm -rf home.orig/

sudo rm -rf home.orig / в окне терминала

И, конечно же, если вы поймете, что что-то не скопировалось из старого / дома в ваш новый / дом, вы сможете получить это из резервной копии, которую вы сделали до того, как мы начали.

Дом, милый дом

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

А поскольку все ваши точечные файлы находятся в вашем каталоге / home, при запуске различных приложений они найдут все ваши настройки, предпочтения и данные.

Это упрощает переустановку и снижает риск обновлений.