LINUX.ORG.RU

Как безопасно перенести /home на другой диск?

 , , ,


1

1

Прошлый раз от этого грохнулся гном, но мне было пох, т.к. система была свежая и всё равно поставил kde.

Вроде должно хватить загрузиться в режиме восстановления и там из-под рута смувить файлы на соседний диск, а потом сменить точку монтирования /home. Но хватит ли этого, например, стиму (он фс не запоминает)?

★★★★★

Просто скопировать на новый диск с помощью cp должно быть достаточно. Главное делать это от правильно пользователя, чтобы он был владельцем (можно использовать ключи для cp для сохранения владельца и прав доступа, но более «в лоб», особенно если установка новая, и юзер другой/новый — просто скопировать от него). Конкретно для ~/ssh может ещё понадобиться правильные права доступа выставить с помощью chmod, если они по умолчанию не такие. Всему остальному пофиг, и так подхватится.

Если скопировал неправильно, и владелец не тот, сделай рекурсивно chown на весь /home/username.

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

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)

man cp

       -a, --archive
              same as -dR --preserve=all
       -x, --one-file-system
              stay on this file system
       -d     same as --no-dereference --preserve=links

      --preserve[=ATTR_LIST]
              preserve the specified attributes

       -R, -r, --recursive
              copy directories recursively


       ATTR_LIST is a comma-separated list of attributes. Attributes are ’mode’  for  permissions
       (including  any  ACL  and xattr permissions), ’ownership’ for user and group, ’timestamps’
       for file timestamps, ’links’ for hard links, ’context’ for security context,  ’xattr’  for
       extended attributes, and ’all’ for all attributes.
anonymous
()
Ответ на: комментарий от CrX

Помню, чем разбираться какие ключи для cp нужны, проще оказалось перенести rsync'ом, он и без указания доп ключей переносит всё что нужно.

Loki13 ★★★★★
()

Я бэкапы так делаю cd /var/media/XXX; sudo rsync -a --info=progress2 --exclude="lost+found" --exclude=".cache" --exclude=".rustup" --exclude=".cargo" --exclude="target" --exclude="pkg" /home/user/ latest_backup

dnb ★★★★
()

Самый простой вариант, который делал неоднократно и всегда он срабатывал ок.

  1. Пусть твой норм. пользователь «user».
  2. Создаешь нового пользователя пустышку «user2».
  3. Делаешь перезагрузку. Заходишь в этого «user2».
    1. Примонтируешь новый диск.
    2. Запускаешь терминал. Там входишь в «su -». И запускаешь mc. Создаешь от рута «home».
    3. Копируешь через mc «/home/user» из старого места в новое.(mc с правами root, потому что в пользовательской дире могут оказаться файлы с правами root и какие-нибудь странные файлы, на которых копирование будет спотыкаться и тебе придётся всё начинать заново и разбираться с ними по ходу дела. А зачем это всё, когда можно от рута скопировать как есть?)
    4. Исправить «/etc/fstab» для нового места «/home».
  4. Перезагрузиться и войти в старого пользователя «user».
justAmoment ★★★★★
()
Ответ на: комментарий от dnb

чтобы не писать 10 раз exclude, лучше --exclude-from=file.lst

arrecck ★★★
()
Ответ на: комментарий от Loki13

Разве rsync что-то сохраняет по умолчанию? Более того, «-a» у cp эквивалентно «-aAHX» у rsync, так что получается даже проще.

anonymous
()

В запущенной системе. Разлогиниваешься из под пользователя в графической оболочке и в консоли.

Заходишь в консоли под root.

Создаёшь файловую систему и монтируешь в любое место.

Переносишь файлы из /home в точку монтирования.

Отмонтируешь файловую систему.

Добавляешь запись в /etc/fstab для монтирования /home

systemctl daemon-reload
mount -a

Логинишься.

Владельцем директорий пользователей в /home/<> и файлов в них должен быть соответствующий пользователь.

kostik87 ★★★★★
()

Фактически, /home вполне безопасно можно перенести на другой диск, так как все основные конфигурационные файлы находятся в нем, в LXDE ./config(можно перенести только его).

nicholas_ru
()
Последнее исправление: nicholas_ru (всего исправлений: 1)

Прошлый раз от этого грохнулся гном

Ты не на другой диск перенёс наверное, а в другую систему? А там рраз, и gid/uid другие. Всего лишь man chown.

AS ★★★★★
()

Скопировать с сохранением всех аттрибутов??? Отдай пять звезд, клоун.

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от AS

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

next_time ★★★★★
() автор топика

Если home это ext4 заполненный до отказа, то dd + resize2fs. Последовательное чтение/запись могут быть быстрее.

Если lvm, то просто расширь.

Если что-то другое, то сам виноват (или читай man).

AlexVR ★★★★★
()
Ответ на: комментарий от next_time

Вот поэтому надо не mv, а cp (ну или rsync), потом umount && mount, а потом rm (ну или mkfs).

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)

В 2025 году логично использовать systemd-homed

Polugnom ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.