Автоматически перемещать файлы и изменять размер раздела?

Автоматически перемещать файлы и изменять размер раздела?

Я в немного странной ситуации. Недавно я работал над переходом с Debian на Arch, и мой домашний раздел для обоих указывает на один и тот же раздел (разные имена пользователей, так что это не проблема).

Я хочу сделать одно из двух:

  1. Настройте пользователя в Arch с тем же именем пользователя и группой, что и в Debian, и все заработает! ИЛИ
  2. Переместить файлы, которые я хочу использовать совместно с домашними папками, в их собственный раздел и смонтировать его с помощью fstab.

Для второго у меня около 150 ГБ файлов, которые нужно переместить в отдельный раздел, и у меня около 15 ГБ свободного места на домашнем разделе. Поэтому я бы хотел как-то создать раздел ext4 на 10 ГБ, переместить около 10 ГБ файлов, снова расширить раздел, снова переместить файлы и т. д., пока все файлы не будут перемещены в отдельный раздел.

Я могу сделать это вручную, но было бы проще, если бы я мог сказать: «Переместить файлы размером около 10 ГБ отсюда туда, а затем изменить их размер и повторять, пока не закончатся файлы».

Возможно ли это вообще?

решение1

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

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

Первое, что вам нужно сделать, это узнать UID пользователя Debian и убедиться, что он такой же, как и в Arch. UID — это «реальный» идентификатор пользователя, тот, с которым вы входите в систему, — это просто человеческое представление uid. Допустим, ваш пользователь Arch — 'rob', а домашний директор rob — /home/rob:

 $ ls -alnd /home/rob
 drwxr-xr-x 94 1000 1000 12288 Jul  3 21:36 /home/rob

UID и GID (идентификатор группы) — это третий и четвертый столбцы. Таким образом, эта папка принадлежит uid 1000 и gid 1000. На стороне Debian это будет соответствовать имени пользователя и имени группы, которые вам знакомы в passwd:

$ grep 1000 /etc/passwd
rob:x:1000:1000:,,,,:/home/rob:/bin/bash
$ grep 1000 /etc/group
rob:x:1000:

Итак, вы можете видеть, что в этом случае имя группы также 'rob'. Это выбор распределения — некоторые по умолчанию создают пользователей с основной группой с тем же именем, а некоторые создают группу users(часто gid 100) и делают ее основной. С точки зрения сортировки это не имеет большого значения, особенно если вы единственный пользователь.

Я не помню, что делает Arch, но предполагаю, что он создает usersгруппу с gid 100.

Поэтому нам просто нужно создать нового пользователя rob, указать ему папку и убедиться, что он настроен с правильным uid:

$ adduser --home /home/rob --uid 1000 --no-create-home --gid 100 rob

Или, если вы хотите сначала создать группу для Роба, сделайте следующее:

$ adduser --group --gid 1000 rob

Затем

$ adduser --home /home/rob --uid 1000 --no-create-home --gid 1000 rob

Теперь установите пароль для учетной записи rob.

$ passwd rob

И войдите в систему, и у него должен быть доступ, как и в Arch.

решение2

Вариант №1 имеет хорошие шансы сработать. Вам просто нужно сделать так, чтобы uid и gid совпадали. Используйте groupadd -gи , useradd -uчтобы добавить их в базу данных пользователей с вручную выбранными uid и gid, совпадающими с теми, которые вы найдете в Debian с помощьюid -a

find /home -printf 'user %u %U\ngroup %g %G\n' | sort -u

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

Для тех, которые сообщаются без имен, используйте groupadd -g gid groupи useradd -u uid -g gid usernameдля создания записей в базе данных пользователей, указав им их имена. Затем запустите, passwd usernameчтобы установить пароль для созданного вами пользователя.

Связанный контент