Mover arquivos e redimensionar a partição automaticamente?

1

Estou em uma situação estranha. Eu estive recentemente trabalhando na mudança do debian para o arch, e eu tenho minha partição home para apontar para a mesma partição (diferentes nomes de usuários, então isso não é um problema).

O que eu quero fazer é uma das duas coisas:

  1. Configure usuário em arco com o mesmo nome de usuário e grupo como debian, e faça tudo funcionar! OU
  2. Mova os arquivos que gostaria de compartilhar entre as pastas base para sua própria partição e monte-os com fstab.

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

Eu posso fazer isso manualmente, mas seria mais fácil se eu dissesse "Mova 10 GB de arquivos daqui para lá, redimensione-os e repita até que eu esteja fora dos arquivos".

Isso é possível?

    
por Rob 04.07.2012 / 04:32

2 respostas

3

Os arquivos de dados e configuração nos diretórios / home / devem ser independentes da distribuição, já que estão relacionados aos aplicativos, e não ao sistema operacional. Algumas distribuições podem ajustar sua versão de aplicativos para usar nomes de pastas diferentes em /home/rob , por exemplo, mas você não precisa fazer muito mais do que renomear a pasta ou um link simbólico para fazer com que ela corresponda ao esperado pelo aplicativo. / p>

Portanto, criar um usuário em arco que tenha acesso pronto 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 é calcular o UID do usuário debian e certificar-se de que seja o mesmo no arco. O UID é o ID do usuário "real", aquele com o qual você faz login é apenas uma representação humana do uid. Vamos dizer que o seu usuário do arco é 'rob', e o diretor home do rob é /home/rob :

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

O uid e gid (group id) são as terceira e quarta colunas. Portanto, essa pasta pertence ao uid 1000 e ao gid 1000. No lado do Debian, isso corresponderia ao nome de usuário e nome de 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:

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

Não me lembro o que o Arch faz, mas vou assumir que ele cria um users group com gid 100.

Portanto, só precisamos criar um novo usuário rob e apontá-lo para a pasta e verificar se ele está 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 o 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 para a conta rob

$ passwd rob

E faça o login, e ele deve ter acesso exatamente como no arco.

    
por 04.07.2012 / 06:40
1

A opção nº 1 tem uma boa chance de funcionar. Você só precisa fazer o jogo uid e gid. Use groupadd -g e useradd -u para adicioná-los ao banco de dados do usuário com o uid e o gid manualmente selecionados que correspondem ao que você encontra no Debian com id -a

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

Espero que a lista apenas contenha os uids e gids para suas contas de usuário sem privilégios, e os do outro sistema sejam informados 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 são mais complicadas.

Para os que são reportados sem nomes, use groupadd -g gid group e useradd -u uid -g gid username para criar entradas do banco de dados do usuário, fornecendo seus nomes. Em seguida, execute passwd username para definir uma senha para o usuário que você criou.

    
por 04.07.2012 / 06:37