Sua descrição é um pouco confusa - mas parece que você tem uma partição / var e uma partição / home.
Você quer preservar as permissões quando copia - isso é crítico !
Se você quiser, é simplesmente montar / home como / var, então eu faria isso no ambiente original:
# rsync -Wav /var/ /home
Isso irá recriar diretórios como / var / lib, / var / tmp e outros em / home. Depois disso, / home será parecido com isto (exemplo de saída falso):
# ls -m /home
agentx, backups, cache, charlie, crash, lib, local, lock, log, louie, mail, opt,
run, spool, tina, tmp, www
Observe os três diretórios home (falsificados) presentes: / home / charlie / home / louie / home / tina.
Você deve poder excluir todos os diretórios home sem problemas sérios, a menos que haja um daemon que espere um diretório pessoal real. Em qualquer caso, para preservá-los (apenas no caso), eu faria isso antes de copiar / var:
# cd /home
# mkdir .sav
# mv charlie tina louie .sav
Isso moverá os diretórios iniciais selecionados para fora do caminho, mas os preservará para mais tarde.
Além disso, quando você move / home para / var, isso significa que / home agora terá que ser criado em / (root). Depois de inicializar com a nova configuração (com / home movido para / var), faça o seguinte:
# mkdir /home
# chmod 755 /home
Certifique-se de criar qualquer diretório / home que você precisa - ou copie-os do diretório /var/.sav. Para fazer o último, faça isso no seu novo ambiente:
# rsync -Wav /var/.sav/ /home
Observe também que o / var original ainda estará lá. Se estiver em um sistema de arquivos montado, ele ficará oculto, mas ainda ocupará espaço.
UPDATE: Em resposta às perguntas abaixo, veja algumas reflexões sobre como recuperar espaço de /var
:
Você provavelmente não deve excluir os arquivos até que tenha executado com o ambiente alterado por algum tempo e nada tenha sido exigido do ambiente antigo. Isso é só por segurança.
Também por segurança, você provavelmente deveria fazer duas coisas. No ambiente antigo, faça isso:
# touch /var/var.old
# touch /home/var.new
Isso permitirá que você veja duas montagens quase idênticas, mas perceba qual é o que, de relance.
Para excluir os dados, você precisa acessar os dados no antigo /var
. Esses dados não estarão diretamente acessíveis em /var
depois de montar sua nova partição.
Existem duas maneiras de fazer isso:
-
No ambiente original, crie um link físico para / var (
ln /var /var.old
) e, em seguida, no novo ambiente, façarm -rf /var.old/*
. Eu não tentei isso, mas com um link físico você ainda deve acessar o antigo/var
e não o novo. Verifique procurando porvar.old
(se você vervar.new
, então não funcionou). -
Em um shell de recuperação, faça
mkdir /var.old ; mv /var/* /var.old
. Uma vez Depois de inicializar no novo ambiente, acesse os dados em/var.old
.
Note que ambos preservam o diretório /var
que é necessário para a montagem.