Перенос папки /home на отдельный диск в Linux

Быстрые ссылки
- Почему отделять папку /home
- Как найти новый диск в Linux
- Создание раздела
- Создание файловой системы на разделе
- Монтирование нового диска
- Копирование содержимого /home
- Тестирование нового каталога /home
- Редактирование fstab для автоподключения
- Перезагрузка и финальные проверки
- Что делать после переноса
Краткое содержание
- Перенос папки /home на отдельный диск позволяет переустанавливать систему без потери личных данных.
- Сделайте резервную копию важных данных перед началом работ.
- Последовательность действий: обнаружить диск, создать раздел, отформатировать его, смонтировать, скопировать данные, обновить fstab — затем перезагрузить и проверить.
Почему отделять папку /home
Отдельный раздел для /home снижает риск потери пользовательских данных при переустановке системы или при обновлениях, которые требуют переформатирования корневого раздела. Распространённый сценарий: небольшой SSD для системы и большой HDD для пользовательских данных. Если /home на отдельном разделе, то вы можете переустановить систему на SSD, не затрагивая файлы на HDD.
Важно: если вы устанавливаете систему с нуля, большинство установщиков предлагают опцию отдельного раздела для /home. Если система уже установлена — используйте эту инструкцию для переноса без переустановки.
Что нужно знать заранее
- Термины: раздел — логическая область на диске, файловая система — структура для хранения файлов (ext4, xfs, btrfs), точка монтирования — путь в дереве файловой системы, куда «прикрепляется» раздел.
- Резервная копия. Создайте резервную копию /home (архив tar, внешний диск, облако).
- Права доступа и владельцы должны быть сохранены при копировании. Копируйте с опциями, сохраняющими атрибуты.
- Используйте UUID в /etc/fstab вместо /dev/sdXY для устойчивости при смене нумерации дисков.
Как найти новый диск в системе
Подключили новый диск и загрузили систему? Список дисков и разделов покажет команда fdisk:
sudo fdisk -lПросмотрите вывод и найдите устройство, которого раньше не было. Примеры имён: /dev/sda, /dev/sdb, /dev/nvme0n1. В примере статьи новый диск — /dev/sdb.

Если диск новый — у него не будет разделов. Следующий шаг — создать раздел с помощью fdisk (для MBR) или gdisk/parted (рекомендуется для GPT).
Создание раздела на диске
Мы создадим один раздел, занимающий весь диск. В примерах используется fdisk:
sudo fdisk /dev/sdbДалее в интерактивном режиме:
- Нажмите
nчтобы создать новый раздел. - Выберите
pдля первичного раздела. - Номер раздела:
1. - Для первого и последнего сектора нажимайте Enter, чтобы занять весь диск.
- Нажмите
wчтобы записать изменения на диск.

После записи раздел появится как /dev/sdb1.
sudo fdisk /dev/sdb
# в интерактивном режиме нажмите p чтобы проверитьПримечание: для дисков с GPT используйте parted или gdisk. Пример создания единого раздела через parted:
sudo parted /dev/sdb --script mklabel gpt mkpart primary ext4 0% 100%Создание файловой системы
После создания раздела отформатируйте его в нужную файловую систему. Чаще всего это ext4 для простоты и совместимости, но можно использовать xfs, btrfs и другие.
sudo mkfs.ext4 /dev/sdb1Если ваш раздел получил другой идентификатор (например /dev/nvme0n1p1), подставьте актуальный путь.

Для btrfs или xfs команды будут другие:
sudo mkfs.xfs /dev/sdb1
sudo mkfs.btrfs /dev/sdb1Замечание по шифрованию: если нужен зашифрованный раздел, настройте LUKS перед созданием файловой системы и открывайте через cryptsetup.
Монтирование нового раздела во временную точку и подготовка
Смонтируйте новый раздел в /mnt чтобы скопировать данные:
sudo mount /dev/sdb1 /mnt
cd /mnt
ls -alhЕсли на разделе присутствует каталог lost+found (появляется при mkfs.ext4), его можно удалить или оставить.
sudo rm -rf /mnt/lost+found
Копирование содержимого /home с сохранением прав и атрибутов
Рекомендуемая команда — rsync, она надёжнее и даёт индикаторы прогресса. Используйте опции, сохраняющие владельцев, права, ссылки и временные метки.
sudo rsync -aHAXv --progress /home/ /mnt/Пояснение опций:
- -a архивный режим (рекурсивно, сохраняет права и владельцев)
- -H сохраняет жесткие ссылки
- -A сохраняет ACL
- -X сохраняет xattr (расширенные атрибуты)
- -v подробный режим
- –progress показывает прогресс
Если вы предпочитаете cp, используйте:
sudo cp -a /home/. /mnt/Важно: внимательно проверьте, что слэши в командах стоят корректно (/home/ и /mnt/), чтобы избежать вложенных директорий.
После копирования проверьте:
ls -la /mnt
ls -la /mnt/usernameЕсли вы обнаружите недостающие файлы — скопируйте вручную из /home.orig (см. дальше) или повторите копирование.
Резервная копия старой папки /home и подготовка точки монтирования
Для безопасности переименуем старую папку /home в /home.orig и создадим пустую /home как точку монтирования:
sudo mv /home /home.orig
sudo mkdir /home
sudo chmod 755 /homeПеред размонтированием удостоверьтесь, что вы не находитесь в /mnt или /home:
cd /
sudo umount /dev/sdb1Затем смонтируйте на постоянную точку:
sudo mount /dev/sdb1 /homeПримечание: если во время монтирования появится ошибка “target is busy”, убедитесь, что в /mnt нет процессов или терминалов, находящихся в этой точке (используйте lsof или fuser).
sudo lsof +f -- /mnt
sudo fuser -vm /mntПроверка новой домашней директории
Проверьте точку монтирования и содержимое:
df -h /dev/sdb1
mount | grep /home
cd ~
pwd
ls -laПроверьте, что dotfiles (файлы, начинающиеся с точки) и права доступа сохранены. Если всё в порядке, можно переходить к автоматическому монтированию через fstab.

Использование UUID вместо /dev/sdXY в fstab
Нумерация /dev/sdXY может измениться при подключении новых дисков. Лучше использовать UUID раздела — он уникален и постоянен.
Найдите UUID раздела:
blkid /dev/sdb1Вы увидите строку вида:
/dev/sdb1: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" TYPE="ext4"Скопируйте UUID и отредактируйте /etc/fstab.
Перед редактированием сделайте резервную копию fstab:
sudo cp /etc/fstab /etc/fstab.origОткройте /etc/fstab в редакторе:
sudo nano /etc/fstabДобавьте строку в конце (пример с UUID):
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /home ext4 defaults 0 2Пояснение полей fstab (по порядку):
- UUID или устройство
- точка монтирования
- тип файловой системы
- опции монтирования (defaults, noatime, nodiratime и т.д.)
- dump (обычно 0)
- fsck порядок проверки (0 — не проверять, 1 — корневой раздел, 2 — остальные)
Пример с опцией noatime (уменьшает количество записей на диск):
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /home ext4 defaults,noatime 0 2Если вы используете xfs, fsck не умеет проверять XFS, поэтому ставьте 0 в шестом поле.
Проверка, не полон ли fstab ошибок
Прежде чем перезагружать систему, проверьте, что запись корректна, выполнив пробное монтирование всех записей из fstab:
sudo mount -aЕсли команда возвращает без ошибок — всё ок. Ошибки покажут, что нужно исправить перед перезагрузкой.
Перезагрузка и финальные проверки
После успешного mount -a перезагрузите систему:
sudo reboot nowПосле перезагрузки проверьте, что /home смонтирован:
df -h | grep "/home"
mount | grep "/home"
ls -la /homeЕсли всё работает, и вы уверены, что вам не нужна резервная копия /home.orig, удалите её:
cd /
sudo rm -rf /home.origНе удаляйте /home.orig, пока не убедились, что все данные и настройки работают корректно.
Варианты и альтернативные подходы
- Использование rsync вместо cp для надёжного копирования и повторных синхронизаций.
- Использование LVM: размещение /home в логическом томе LVM даёт гибкость (удлинение тома, снимки).
- Использование btrfs или ZFS с моментальными снимками и дедупликацией.
- Настройка шифрования всего диска или только /home через LUKS.
- Создание systemd mount unit вместо прописывания в fstab — полезно для сложных сценариев.
Когда этот метод может не подойти
- Если у вас шифрованная домашняя директория, потребуется дополнительная настройка (раскрытие LUKS до монтирования).
- Если отдельные пользователи используют network home (NFS) — перенос на локальный диск меняет поведение.
- Если у вас профиль с установленными ACL и xattr, убедитесь, что файловая система поддерживает их (ext4 поддерживает, но требуется опциональная монтировка для некоторых хранилищ).
Проверочные сценарии и критерии приёмки
Критерии приёмки перед удалением /home.orig:
- Все пользователи могут войти в систему и получить свои домашние каталоги.
- Все dotfiles (конфигурации программ) присутствуют и имеют корректные права.
- Программы, читающие/пишущие данные в домашние папки, работают как ожидается.
- df показывает правильную точку монтирования для /home.
Тестовые шаги:
- Войти под несколькими пользователями.
- Открыть приложения, которые используют конфигурации из домашней папки (браузер, редактор, почтовый клиент).
- Создать/удалить файл, проверить права и владельца.
- Проверить наличие и содержимое скрытых конфигурационных файлов (.bashrc, .config).
Быстрое руководство по откату при проблемах
Если система не загружается из-за некорректного fstab:
- При загрузке выберите режим recovery или добавьте
init=/bin/bashв параметры ядра через меню GRUB. - Временное восстановление fstab: смонтируйте корень в режиме чтения/записи и восстановите /etc/fstab.orig.
mount -o remount,rw /
cp /etc/fstab.orig /etc/fstab
rebootЕсли не можете зайти в систему через GUI, используйте live USB, смонтируйте корневой раздел и исправьте /etc/fstab.
Полезные подсказки и best practices
- Используйте UUID в fstab вместо /dev/sdXY.
- Не удаляйте старую /home сразу. Держите /home.orig как минимум до первой успешной недели работы.
- Для больших объёмов данных или слабых дисков используйте rsync с –partial и –progress.
- Для минимизации нагрузки установите опцию noatime.
- Если в системе используется SELinux, перенесите контексты: после монтирования выполните restorecon -R /home или установите правильный контекст.
sudo restorecon -R /homeЧек-листы
Чек-лист перед началом работ:
- Создана резервная копия /home (внешний диск или облако).
- Проверено имя устройства нового диска (fdisk -l).
- Имеется план восстановления при ошибке (fstab.orig, /home.orig).
Чек-лист после переноса перед удалением резервной копии:
- Все пользователи входят и работают стандартно.
- Приложения читают dotfiles.
- Проверены права и владельцы файлов.
- fstab корректно прописан и mount -a проходит без ошибок.
Роль-based список обязанностей (администратор):
- Выполнить резервное копирование и проверить его целостность.
- Создать раздел и файловую систему.
- Настроить fstab и проверить автоподключение.
- Провести тесты совместно с пользователями.
Роль-based список обязанностей (пользователь):
- Проверить доступ к своим файлам и настройкам.
- Сообщить об ошибках в конфигурациях приложений.
Полезные команды-образцы
Просмотр UUID:
blkid /dev/sdb1Пробное монтирование всех записей из fstab:
sudo mount -aПроверка занятых файлов / точек монтирования:
sudo lsof +f -- /mnt
sudo fuser -vm /mntКопирование с помощью rsync:
sudo rsync -aHAXv --progress /home/ /mnt/Откат fstab с live-системы:
# смонтируйте корень из live-USB в /mntroot
cp /mntroot/etc/fstab.orig /mntroot/etc/fstabЧастые ошибки и пути их устранения
- Ошибка после reboot: система падает на этапе монтирования — вероятно, неправильная запись в /etc/fstab. Загрузитесь в recovery/live и восстановите fstab из резервной копии.
- Некоторые файлы отсутствуют — возможно, вы пропустили скрытые файлы. Проверьте rsync с опциями -aHAX.
- Не получается смонтировать — проверьте правильность UUID и тип файловой системы (
blkid,file -sL /dev/sdb1). - Проблемы с SELinux — выполните restorecon.
Примеры альтернативных конфигураций fstab
Mount с noatime для повышения производительности:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /home ext4 defaults,noatime 0 2Если используете xfs и не хотите проверки fsck:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /home xfs defaults 0 0Примечания по безопасности и приватности
- Если на диске будут храниться конфиденциальные данные, включите шифрование LUKS.
- После переноса не оставляйте открытые резервные копии в доступных местах без шифрования.
Советы по миграции пользователей большого парка машин
- Автоматизируйте процесс с Ansible/SSH-скриптами: создать раздел, форматировать, монтировать и запускать rsync удалённо.
- Тестируйте на контрольной машине перед массовыми изменениями.
- Подумайте о централизованном хранении профилей (NFS, LDAP) если требуется единообразие.
Короткая памятка после завершения
- Проверьте, что /home монтируется автоматически при старте.
- Удалите /home.orig только через некоторое время и после подтверждения, что всё работает.
- Обновите документацию сервера/рабочей станции с новым расположением /home и UUID.
Дом — там, где /home
Отделив /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 · tr | | | 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 | |
Похожие материалы
Animated.loop в React Native: непрерывные анимации
Как проверить и обновить ОЗУ в Windows
Как установить RPM в Fedora и RHEL
Ограничение учётных записей в Windows 10
Острова вкладок в Opera One — руководство