Перенести домашний каталог на другой ноутбук
Перенос домашнего каталога на новый ноутбук — задача, которую лучше не решать «на живую». Ниже — рабочий порядок, два способа (по сети и через Samba) и список того, что переносить не нужно.
Сначала три решения
Канал. 200 ГБ по Wi-Fi — это часы и обрывы. Кабель Ethernet напрямую между ноутбуками (современные сетевые карты сами разворачивают пару) или через гигабитный коммутатор даёт около 110 МБ/с в идеале, то есть 30–40 минут на 200 ГБ; реально — час-полтора. USB-C/Thunderbolt быстрее.
Чем. Для двух Linux-машин — rsync по SSH: он возобновляемый и повторяемый. Samba нужна, если второй ноутбук на Windows или хочется копировать файловым менеджером.
Сколько. Полезно посмотреть объём домашнего каталога и сколько из него мусора:
$ du -sh /home/user
$ du -sh /home/user/.cache /home/user/.local/share/Trash /home/user/snap 2>/dev/null
Способ 1: rsync по SSH (для Linux → Linux)
Общее описание программы, все ключи и разбор ошибок — на отдельной странице: «rsync: синхронизация файлов». Здесь — только то, что нужно для переноса.
На новом ноутбуке — сервер SSH, на старом — команда переноса.
# на НОВОМ ноутбуке
$ sudo apt install openssh-server
$ ip -4 addr show | grep inet # узнать адрес
Сначала прогон без записи: покажет, что поедет и сколько это займёт.
# на СТАРОМ ноутбуке
$ rsync -aHAX --numeric-ids --dry-run --stats \
--exclude='.cache/' --exclude='.local/share/Trash/' --exclude='snap/' \
--exclude='.mozilla/*/cache2/' --exclude='.config/*/Cache*' \
/home/user/ user@192.168.1.50:/home/user/
Затем настоящий перенос. Ключи: -a — сохранить права и время, -H — жёсткие ссылки, -A/-X — ACL и расширенные атрибуты, --numeric-ids — не пересчитывать владельцев по именам.
$ rsync -aHAX --numeric-ids --info=progress2 \
--exclude='.cache/' --exclude='.local/share/Trash/' --exclude='snap/' \
--exclude='.mozilla/*/cache2/' --exclude='.config/*/Cache*' \
/home/user/ user@192.168.1.50:/home/user/
Прервалось — просто запустить снова ту же команду: уже перенесённое пропускается. Первый проход можно делать, пока работаешь.
Второй проход — перед тем как отдавать ноутбук: донесёт изменения и удалённые файлы. Только здесь уместен --delete: он удалит на новом то, что удалено на старом (лишнее там появиться не должно).
$ rsync -aHAX --numeric-ids --delete --info=progress2 \
--exclude='.cache/' --exclude='.local/share/Trash/' --exclude='snap/' \
/home/user/ user@192.168.1.50:/home/user/
Чего в командах намеренно нет:
-z(сжатие) — на гигабитном канале экономия на сети меньше, чем потери на процессор, а фото и видео вообще не сжимаются;--deleteв первом проходе — опечатка в пути на этом шаге стирает данные;- переноса
~/.sshвслепую: ключи стоит перенести осознанно и проверить права (chmod 600 ~/.ssh/id_*), а не «как получится».
Прямой кабель: две машины без роутера
Кабель между двумя ноутбуками — рабочий путь и самый предсказуемый по скорости. Но у него есть две особенности: адреса придётся задать руками (DHCP-сервера в такой сети нет) и проверить брандмауэр на принимающей машине.
Какой кабель нужен
Обычный патч-корд. Отдельный «кроссовер» для соединения двух компьютеров не нужен уже больше десяти лет: сетевые карты сами определяют, как разведены пары (Auto-MDIX), и это обязательно для гигабитных карт.
Что стоит проверить до всего остального:
- есть ли вообще порт Ethernet. В тонких ноутбуках его часто нет — тогда нужны два USB-Ethernet адаптера (или один, если у второй машины порт есть);
- поднялся ли линк. Индикаторы на разъёме и вывод команды:
$ ip -br link
enp3s0 UP aa:bb:cc:dd:ee:ff
UP — линк есть. DOWN — кабель не вставлен, адаптер выключен или порт не тот. Wi-Fi напрямую кабелем не соединяется: либо провод, либо обе машины в одной сети через роутер или точку доступа.
Адреса: задать вручную
В сети из двух машин адреса должны быть в одной подсети, а шлюз не нужен вовсе. Договоримся так: 192.168.77.1 — старый ноутбук, 192.168.77.2 — новый.
Через NetworkManager (nmcli) на каждой машине — со своим адресом:
# на СТАРОМ ноутбуке
$ nmcli con add type ethernet ifname enp3s0 con-name direct ip4 192.168.77.1/24
$ nmcli con up direct
# на НОВОМ ноутбуке
$ nmcli con add type ethernet ifname enp3s0 con-name direct ip4 192.168.77.2/24
$ nmcli con up direct
То же самое мышью: Настройки → Сеть → Проводное соединение → IPv4 → «Вручную» — адрес, маска 24, остальное пусто. Адрес выдаётся на время и не мешает обычной работе: когда кабель вынут, используется Wi-Fi.
Проверка связи — с обеих сторон:
$ ping -c 3 192.168.77.2
Что нужно на принимающей машине
# 1. Сервер SSH установлен и запущен
$ systemctl status sshd --no-pager | head -3
$ sudo systemctl enable --now sshd
# 2. Он действительно слушает
$ ss -tlnp | grep ':22'
# 3. Брандмауэр пропускает (имя службы зависит от дистрибутива)
$ sudo firewall-cmd --add-service=ssh --permanent && sudo firewall-cmd --reload
Брандмауэр — тот пункт, из-за которого «кабель подключён, пинг идёт, а SSH не отвечает». Проверить, что установлено, помогает такой набор:
$ command -v firewall-cmd ufw urpmi dnf apt
$ systemctl is-active firewalld ufw
Дальше — тот же перенос по SSH, что и через роутер: разница только в адресе.
Про дистрибутивы семейства ROSA (и его форки)
РОСА и её производные — RPM-дистрибутивы, но детали стоит проверить на месте, а не угадывать:
| Что | Как проверить |
|---|---|
| Менеджер пакетов | command -v dnf urpmi — в новых выпусках dnf, в старых urpmi |
| Имя службы SSH | `systemctl list-unit-files |
| Брандмауэр | systemctl is-active firewalld или ufw (у ROSA исторически свой инструмент настройки) |
Установка нужного на принимающей машине:
$ sudo dnf install openssh-server rsync # или: sudo urpmi openssh-server rsync
Про пользователей и владельцев файлов
Пользователь на обеих машинах называется одинаково — но UID может различаться. В дистрибутивах семейства Mandriva (откуда родом ROSA) первый пользователь традиционно получает UID 500, в Ubuntu-подобных — 1000. Проверить:
$ id tumanov
uid=500(tumanov) ...
Отсюда правило: копируйте от имени своего пользователя, а не от root. Тогда владельцем файлов на приёмнике станет тот, кто копирует, и числовые UID вообще не важны. Копирование от root с --numeric-ids — это вариант для переноса системных каталогов, где владельцы должны сохраниться точно; для домашнего каталога он не нужен и только запутывает.
Способ 2: Samba (Windows на той стороне или файловый менеджер)
Samba показывает каталог по сети как сетевую папку. Быстрый путь — три шага.
# на СТАРОМ ноутбуке
$ sudo apt install samba
$ sudo smbpasswd -a user # отдельный пароль Samba для пользователя
Минимальная общая папка — общий доступ к своему домашнему каталогу (файл /etc/samba/smb.conf, секция в конце):
[home]
path = /home/user
browseable = yes
read only = no
valid users = user
create mask = 0644
directory mask = 0755
$ sudo testparm # проверить конфиг перед запуском
$ sudo systemctl restart smbd
$ sudo ufw allow samba # если включён брандмауэр
Проверка со второго ноутбука — до того, как копировать:
$ smbclient -L //192.168.1.50 -U user
Подключение с Linux
$ sudo apt install cifs-utils
$ sudo mkdir -p /mnt/old
$ sudo mount -t cifs //192.168.1.50/home /mnt/old -o username=user,uid=$(id -u),gid=$(id -g)
Дальше — обычное копирование, а лучше тот же rsync по смонтированному каталогу: он покажет прогресс и переживёт обрыв.
$ rsync -aHAX --info=progress2 /mnt/old/ /home/user/
Подключение с Windows
В проводнике: \\192.168.1.50\home, затем имя и пароль Samba. Если Windows не пускает, а Linux пускает — виноваты не файлы, а учётные данные: в Samba своя база паролей (sudo pdbedit -L показывает, кто заведён).
Способ 3: внешний диск
Если диск на 300+ ГБ есть — он часто быстрее сети и не зависит от неё. Копирование с проверкой:
$ rsync -aHAX --info=progress2 --exclude='.cache/' --exclude='snap/' /home/user/ /media/user/backup/home/
Приятный побочный эффект: до того, как данные лягут на новый ноутбук, у вас уже есть копия на отдельном носителе. После переноса эту копию стоит обновить и держать как резервную.
Что переносить не нужно
| Что | Почему |
|---|---|
~/.cache |
Кэши: браузеры, редакторы, шрифты. Пересоздаются сами, часто десятки гигабайт |
~/.local/share/Trash |
Корзина. Если файл был не нужен там, не нужен и здесь |
snap/ |
Смонтированные образы snap-пакетов, не данные |
~/.mozilla/*/cache2, ~/.config/*/Cache* |
Кэши браузеров и приложений |
~/.local/share/containers |
Образы контейнеров: переносятся повторной загрузкой |
Проверить, что исключения не съели лишнего, помогает тот самый --dry-run --stats: он покажет и объём, и число файлов до и после исключений.
Проверка после переноса
Не «выглядит похоже», а посчитать:
# на старом
$ find /home/user -type f -not -path '*/.cache/*' | wc -l
$ du -sh --exclude=.cache --exclude=snap /home/user
# на новом — то же самое, числа должны совпасть
Затем выборочно открыть: одно фото, один документ, один архив; проверить почту, браузер (профиль перенесён — пароли на месте), GPG/SSH-ключи и их права.
Источники
man 1 rsync— ключи-aHAX,--numeric-ids,--info=progress2,--dry-run,--delete.man 8 smbd,man 5 smb.conf— служба и файл настройки Samba;man 8 smbpasswd,man 8 pdbedit— учётные записи Samba;man 1 smbclient— проверка доступа.man 8 mount.cifs,man 5 nsswitch.conf— монтирование общих ресурсов из Linux.man 5 hosts_access— правилаhosts allow/hosts deny, см. «Настройка доступа с определённых хостов».
Что ещё не проверено
- Скорость и время переноса зависят от канала: цифры в статье — порядок величины, а не замер на вашем оборудовании.
- Проверка на Windows приведена по документации Samba и не проверялась: доступ описывается стандартным клиентом Windows.
Комментарии
Пока комментариев нет.