- Как перенести домашний каталог Linux на другой диск
- Зачем хранить домашнюю папку отдельно?
- Определите диск
- Создать раздел
- Создайте файловую систему на разделе
- Установка нового диска
- Копирование вашей домашней папки
- Тестирование вашего нового домашнего каталога
- Редактирование fstab
- Перезагрузите вашу систему
- Окончательные проверки
- Дом, милый дом
- Перенос папки home на другой диск
Как перенести домашний каталог Linux на другой диск
Хотите переместить домашнюю папку Linux на другой диск? Вот простой и пошаговый способ сделать это, который должен работать в любом дистрибутиве. Перемещение вашей домашней папки означает, что вы можете переустановить Linux и не беспокоиться о своих личных файлах.
Зачем хранить домашнюю папку отдельно?
Если вы настраиваете новую машину или добавляете жесткий диск к существующей, вы можете захотеть, чтобы ваш домашний каталог находился на другом диске, а не в папке по умолчанию.
Все более популярной конфигурацией современных персональных компьютеров является наличие твердотельного накопителя (SSD) среднего размера, на котором хранится ваша операционная система, и более крупного гибридного твердотельного накопителя (SSHD) или традиционного жесткого диска (HD) в качестве основного хранилища данных. Или у вас может быть один традиционный жесткий диск в вашей системе, и вы добавили новый жесткий диск для увеличения объема памяти. Какими бы ни были ваши причины, вот простое и подробное описание перемещения вашего домашнего каталога.
Кстати, если вы устанавливаете систему Linux с нуля, вы, вероятно, увидите возможность создать отдельный домашний каталог в программе установки вашего дистрибутива Linux. Как правило, вам просто нужно перейти к параметрам разбиения, создать отдельный раздел и смонтировать его в «/ home». Но если вы уже установили дистрибутив Linux, вы можете использовать эти инструкции, чтобы переместить текущий домашний каталог в новое место, ничего не теряя и не переустанавливая операционную систему.
Теперь, прежде чем мы начнем, идите и сделайте резервную копию.
Определите диск
Если вы только что установили диск на компьютер с Linux или установили Linux на один из дисков в новом компьютере с несколькими дисками и перезагрузились, мало доказательств того, что новый диск вообще присутствует.
Команда fdisk покажет нам диски и их разделы.
Прокрутите вывод, пока не найдете новый диск. Первый диск называется /dev/sda , второй — /dev/sdb и так далее, причем последняя буква каждый раз увеличивается. Таким образом, /dev/sde будет пятым жестким диском в системе.
в этом примере новый диск является вторым диском, устанавливаемым в систему. Поэтому нам нужно найти запись для /dev/sdb .
/dev/sdb выделен выше. Вы заметите, что на нем нет строки, описывающей раздел. Это совершенно новый диск, поэтому его еще не будет. Нам нужно создать раздел. Мы можем сделать это с помощью fdisk . Если ваш жесткий диск не /dev/sdb , убедитесь, что вы заменили /dev/sdb фактическим идентификатором вашего нового жесткого диска в команде.
Когда fdisk запросит команду, нажмите букву p . Это печатает таблицу разделов для жесткого диска. Мы знаем, что его не будет, но мы получаем некоторую полезную информацию о диске. Это дает нам хороший шанс убедиться, что диск, для которого мы собираемся создать раздел, является тем диском, с которым мы собирались работать.
Он говорит нам, что это диск емкостью 1 ТБ, что соответствует тому, что мы ожидаем от этой тестовой машины, поэтому мы продолжим.
Создать раздел
Нажмите букву n для нового раздела, а затем нажмите p для основного раздела. Когда вас попросят ввести номер раздела, нажмите цифру 1 .
Мы собираемся создать один раздел для всего диска, поэтому при появлении запроса на первый сектор мы можем нажать Enter, чтобы принять значение по умолчанию. Затем вам будет предложено ввести последний сектор, и Enter примет значение по умолчанию.
Хотя fdisk подтверждает, что он создал раздел Linux размером 1 ТБ, то есть раздел номер 1, на жестком диске пока ничего не изменилось. Пока вы не дадите fdisk команду записать изменения на диск, диск останется нетронутым. Если вы уверены, что вас устраивает наш выбор, нажмите букву w , чтобы записать изменения на диск.
Раздел был записан в /dev/sdb . Давайте проверим, что только что произошло. Мы снова воспользуемся fdisk в /dev/sdb .
Нажмите букву p , чтобы распечатать эту таблицу разделов, и вы увидите, что теперь для диска указан раздел. Поскольку это был первый раздел на этом диске, он называется /dev/sdb1 . Второй раздел будет называться /dev/sdb2 и т. д.
Мы не хотим вносить какие-либо изменения в раздел, поэтому нажмите букву q , чтобы выйти.
Создайте файловую систему на разделе
Нам нужно создать файловую систему на разделе. Этого легко добиться с помощью команды mkfs . Обратите внимание, что вы должны указать номер раздела в команде. Будьте внимательны при вводе /dev/sdb1 (раздел), а не /dev/sdb (диск).
Файловая система будет создана для вас, и вы вернетесь в командную строку.
Установка нового диска
Чтобы использовать новый диск, мы должны смонтировать раздел на нем в точку монтирования в файловой системе. На самом деле, если быть точным, мы не монтируем ни диск, ни раздел, мы монтируем файловую систему на разделе, прививая ее к дереву файловой системы вашей системы. .
Точка /mnt — самое подходящее место. Это всего лишь временная точка монтирования, позволяющая нам копировать данные на новый диск. Мы собираемся использовать команду mount для монтирования файловой системы на первом разделе в /dev/sdb , в /mnt .
Если все пойдет хорошо, вы вернетесь в командную строку без сообщений об ошибках. Давайте посмотрим, сможем ли мы изменить каталог на нашу недавно смонтированную файловую систему.
Да мы можем. давайте посмотрим, что здесь.
Мы находимся в нашей новой файловой системе. Каталог «потерянные + найденные» по умолчанию не требуется, поэтому мы можем удалить его.
Копирование вашей домашней папки
Нам нужно скопировать все из старого домашнего каталога во вновь смонтированную файловую систему. Использование параметров r (рекурсивный) и p (сохранить) обеспечит копирование всех подкаталогов и сохранение владельцев файлов, разрешений и других атрибутов.
Когда копирование завершится, используйте ls , чтобы осмотреться и убедиться, что ваши данные находятся там, где вы ожидаете, в новой файловой системе. Другими словами, если /mnt был вашим домашним каталогом, все ли присутствует и правильно?
Вы, вероятно, захотите быть немного более тщательным, чем мы были на тестовой машине, на которой исследовалась эта статья. В качестве подстраховки мы собираемся переименовать и сохранить ваш старый каталог /home до тех пор, пока вы не убедитесь, что его можно безопасно удалить.
И мы создадим новый пустой домашний каталог.
Мы будем использовать этот новый пустой домашний каталог в качестве точки монтирования нашей файловой системы на новом жестком диске. Нам нужно размонтировать его из /mnt и перемонтировать в /home . Обратите внимание, что в команде umount нет буквы «n» после «u».
Но сначала мы перейдем в корневой каталог (с помощью cd / ), чтобы убедиться, что мы не находимся в каталоге, который будет включен в места монтирования или размонтирования.
Тестирование вашего нового домашнего каталога
Давайте посмотрим, какие теперь атрибуты у раздела /dev/sdb1 :
Нам показывают имя файловой системы, размер раздела, а также используемое и доступное на нем место и, что немаловажно, куда он смонтирован. Теперь это наш каталог /home . Это означает, что мы должны иметь возможность ссылаться на него точно так же, как на старый каталог /home .
Если мы переместимся в какую-то произвольную точку в файловой системе, мы должны иметь возможность вернуться к /home с помощью сочетания клавиш ~ с тильдой.
Мы можем перемещаться по файловой системе туда и обратно к /home , используя явные команды и ярлык ~ . Папки, файлы и точечные файлы, которые мы ожидаем, присутствуют. Все выглядит хорошо.
Если чего-то не хватало, мы могли скопировать это из каталога /home.orig , к которому у нас все еще есть доступ в корне файловой системы. Но все выглядит нормально.
Теперь нам нужно, чтобы /dev/sdb1 монтировался автоматически при каждом запуске компьютера.
Редактирование fstab
Файл «fstab» содержит описания файловых систем, которые будут монтироваться при загрузке системы. Прежде чем вносить в него какие-либо изменения, мы сделаем его резервную копию, к которой сможем вернуться в случае возникновения проблем.
sudo cp /etc/fstab /etc/fstab.orig
Теперь мы можем редактировать файл fstab. Используйте свой любимый редактор, мы используем gedit . Подойдет любой текстовый редактор.
Вы должны добавить строку внизу файла, чтобы смонтировать наш новый каталог /home . Если идентификаторы вашего диска и раздела отличаются от используемых в этом примере, замените их на показанный здесь /dev/sdb1 .
- Введите имя раздела в начале строки и нажмите клавишу Tab.
- Введите точку подключения /home и нажмите клавишу Tab.
- Введите описание файловой системы ext4 и нажмите клавишу Tab.
- Введите defaults для параметров монтирования и нажмите клавишу Tab.
- Введите цифру 0 для параметра дампа файловой системы и нажмите клавишу Tab.
- Введите цифру 0 для параметра проверки файловой системы.
Перезагрузите вашу систему
Нам нужно перезагрузиться, чтобы убедиться, что все прошло по плану и что у вас есть беспрепятственное подключение к вашему новому каталогу /home .
Если это не так, у вас все еще есть подстраховка исходного каталога /home и файла fstab, который при необходимости можно восстановить. Благодаря принятым нами мерам предосторожности — копированию каталога /home и файлов fstab — вы можете легко вернуть свою систему в состояние, в котором она была до начала работы.
Окончательные проверки
Когда ваша система перезагрузится, давайте просто проверим, что ваш каталог /home действительно находится на вашем новом жестком диске, и ваша система каким-то образом (чудесным образом) не вернулась к использованию старого /home каталог.
Отлично, он смонтирован на /home . Миссия выполнена.
Как только вы будете полностью уверены, что вам больше не нужна безопасная копия вашего старого каталога /home , вы можете удалить ее:
И, конечно же, если вы поймете, что что-то не скопировалось из старого /home в новый /home , вы будете в состоянии получить его из резервной копии, которую вы сделали до того, как мы начали.
Дом, милый дом
Теперь, когда вы отделили свой каталог /home от остальной части раздела операционной системы, вы можете переустановить операционную систему, и ваши данные останутся нетронутыми. Все, что вам нужно сделать, это отредактировать файл fstab, чтобы смонтировать второй диск в /home .
А поскольку все ваши dotfiles находятся в вашем каталоге /home , когда вы запускаете различные приложения, они найдут все ваши настройки, предпочтения и данные.
Это избавляет от боли при переустановке и снижает риск обновлений.
Linux Commands | |
Files | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc |
Processes | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap |
Networking | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
RELATED: Best Linux Laptops for Developers and Enthusiasts
Перенос папки home на другой диск
n-новый раздел
p-primary
три раза жмем ENTER. И в конце сохраняем запись в таблицу w.
Видим наш диск как блочное устройство /dev/xvdb1
Тип файловой системы можете выбрать ext3, ext4, или xfs
Копируем файлы пользователей в папку /tmp. Если данных много, то сохраняем их на внешний носитель, как подключить внешний диск в Linux читайте в статье про mount.
Монтируем наш новый диск в каталог /home
Возвращаем папки пользователей в /home
При желании можно было добавить диск в LVM группу и увеличить всю файловую систему как это сделать можно прочитать здесь. Неудобство этого подхода заключается в том, что при использовании скажем виртуальных машин, при переносе виртуалки на другой сервер, придется переносить и данные пользователей. Которые часто занимают достаточно большой объем. Если же каталог пользователей будет на отдельном виртуальном диске, то достаточно перенести систему, а потом примонтировать диск пользователей.
Так же можно создать отдельный LVM том для каталога /home, как это сделать читайте здесь. Это позволит в будущем использовать все преимущества LVM.
Не забудьте добавить в файл /etc/fstab, следующую строку
/dev/xvdb1 /home xfs defaults 0 0
Иначе после перезагрузке диск будет отмонитрован.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.