Mover arquivos e redimensionar partições automaticamente?

Mover arquivos e redimensionar partições automaticamente?

Estou em uma situação um pouco estranha. Recentemente, tenho trabalhado na mudança do debian para o arch e tenho minha partição inicial para ambos apontando para a mesma partição (nomes de usuário diferentes, então isso não é um problema).

O que eu quero fazer é uma de duas coisas:

  1. Configure o usuário no arch com o mesmo nome de usuário e grupo do debian e faça com que tudo funcione! OU
  2. Mova os arquivos que gostaria de compartilhar entre pastas pessoais para suas próprias partições e monte-os com fstab.

Para o segundo, tenho cerca de 150 GB de arquivos que precisariam ser movidos para sua própria partição e cerca de 15 GB de espaço livre na minha partição inicial. Então, o que eu gostaria de fazer é, de alguma forma, criar uma partição ext4 de 10 GB, mover 10 GB de arquivos, expandir a partição novamente, mover arquivos novamente, etc., até que todos os arquivos sejam movidos para sua própria partição.

Posso fazer isso manualmente, mas seria mais fácil se eu pudesse dizer "Mova 10 GB de arquivos daqui para lá, redimensione-o e repita até ficar sem arquivos".

É mesmo possível?

Responder1

Os arquivos de dados e configuração nos diretórios /home/deveser independente da distribuição, pois está relacionado aos aplicativos e não ao sistema operacional. Algumas distribuições podem ajustar suas versões de aplicativos para usar nomes de pasta diferentes, /home/robpor exemplo, mas você não deve precisar fazer muito mais do que renomear a pasta ou um link simbólico para que corresponda ao que o aplicativo espera.

Portanto, criar um usuário no arch que tenha acesso imediato aos arquivos e diretórios já presentes nos diretórios iniciais do debian não deve ser um grande problema.

A primeira coisa que você precisa fazer é descobrir o UID do usuário debian e certificar-se de que é o mesmo no arch. O UID é o ID do usuário "real", aquele com o qual você faz login é apenas uma representação humana do uid. Digamos que seu usuário principal seja 'rob' e o diretor inicial de rob seja /home/rob:

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

O uid e o gid (id do grupo) são a terceira e a quarta colunas. Portanto, esta pasta pertence a uid 1000 e gid 1000. No lado debian, isso corresponderia ao nome de usuário e nome do grupo com os quais você está familiarizado na senha:

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

Então você pode ver que o nome do grupo também é 'rob' neste caso. Esta é uma opção de distribuição - alguns criarão, por padrão, usuários com um grupo primário com o mesmo nome, e alguns criarão um usersgrupo (geralmente gid 100) e o tornarão o principal. Em termos de resolver isso, não importa muito, principalmente se você for o único usuário.

Não me lembro o que o arch faz, mas presumo que ele cria um usersgrupo com gid 100.

Então só precisamos criar um novo usuário rob, apontá-lo para a pasta e certificar-se de que esteja configurado com o uid correto:

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

Ou se você quiser criar um grupo para rob primeiro, faça o seguinte:

$ adduser --group --gid 1000 rob

Então

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

Agora defina a senha da conta rob

$ passwd rob

E faça o login, e ele deverá ter acesso exatamente como no arch.

Responder2

A opção nº 1 tem boas chances de funcionar. Você só precisa fazer com que o uid e o gid correspondam. Use groupadd -ge useradd -upara adicioná-los ao banco de dados do usuário com uid e gid selecionados manualmente, correspondentes aos que você encontra no Debian comid -a

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

Esperamos que a lista contenha apenas os uids e gids para suas contas de usuário não privilegiadas, e as do outro sistema sejam relatadas com os nomes corretos ou como números sem nome. Se o mesmo uid ou gid aparecer duas vezes na lista com dois nomes diferentes, as coisas ficam mais complicadas.

Para aqueles que são relatados sem nomes, use groupadd -g gid groupe useradd -u uid -g gid usernamepara criar entradas no banco de dados de usuários fornecendo seus nomes. Em seguida, execute passwd usernamepara definir uma senha para o usuário que você criou.

informação relacionada