Como relocar / home para um novo disco rígido?

4

Eu construí minha caixa de Linux (usando o Ubuntu 8.04 LTS, no ano passado) para experimentar o Linux. Como era apenas uma tentativa, optei por usar um antigo disco rígido de 80GB e agora, como sempre foi inevitável, está ficando sem espaço. Eu comprei uma nova unidade (1 TB, apesar de não ter certeza se isso é relevante) pronto para instalar, para o espaço e, com sorte, para facilitar futuras atualizações de distro.

Existe um meio fácil pelo qual minha partição /home pode ser realocada para a nova unidade, deixando o sistema operacional no antigo?

Eu percebo que ' fácil ' pode ser apenas para um determinado valor ... mas qualquer ajuda é apreciada. Além disso, é provável que haja algum problema ao usar um drive de 1TB, minha mobo parece feliz em apoiá-lo a partir do manual, mas existem problemas esotéricos no Ubuntu com tamanhos grandes de drives?

    
por David Thomas 07.08.2009 / 22:14

2 respostas

11

sem problemas com unidades de 1 TB (isso não é grande; -))

Crie uma partição e formate a nova unidade (eu a chamo de / dev / sdb1 agora). Com tamanhos de partições superiores a 300GB prefiro o XFS.

Agora saia do X, faça o login em tty1 como root. Monte a nova partição em / mnt / temp-home e copie seus dados:

mkdir -p /mnt/temp-home && mount /dev/sdb2 /mnt/temp-home
rsync -WaP /home/ /mnt/temp-home/

Agora marque duas vezes, se / mnt / temp-home contiver seus dados com as permissões e propriedade corretas. Você pode mover o nome da pasta, se quiser e excluir sua antiga casa depois:

mv /home /home_old

Como root, crie o novo ponto de montagem e uma entrada fstab:

umount /mnt/temp-home
mkdir /home
chmod 0755 /home
cat >> /etc/fstab <<EOF
/dev/sdb1 /home           xfs     defaults        0       2
EOF
mount /home

você terminou! Agora faça o login no X (gnome / kde / xfce ..). e aproveite sua nova campanha.

Não se esqueça de excluir / home_old para liberar espaço!

    
por 07.08.2009 / 22:30
2

Sou um pouco mais conservador, porque tive que fazer isso em sistemas maiores, com dados isso. Meu método:

Crie o novo sistema de arquivos e monte-o em algum lugar (digamos / mnt / new-home)

Como root, use o rsync para copiar os dados do local atual para o novo local:

# rsync -avW --progress --delete /home/* /mnt/new-home

Você pode fazer essa parte com o sistema ativo e os usuários conectados. Na verdade, você pode fazer isso mais de uma vez - as execuções subseqüentes devem ser mais rápidas, pois a maioria dos dados já está lá e a sinalização --delete será limpa arquivos que foram removidos. ( man rsync irá ajudá-lo com as outras bandeiras que eu selecionei.)

Agora você precisa de uma janela de manutenção onde você pode expulsar todos do servidor. Inicialize no modo de usuário único, monte novamente / home e / mnt / new-home e execute o comando rsync novamente. Esta execução de rsync deve ser rápida, já que 99% do trabalho já foi feito. (Ou pelo menos mais rápido do que executá-lo pela primeira vez, de qualquer forma - eu tive rsyncs "single-user, last-pass" executados por até quatro horas para fazer quase nada ...)

Quando isso for feito, altere / etc / fstab para que a partição que você está usando como new-home seja montada como / home. Você também pode montar a partição home antiga como /home.old ou, se fosse apenas um diretório em uma partição maior, renomeá-la como /home.old.

Reinicie de volta para multiusuário e você deve terminar.

A razão pela qual eu não uso o mv como recomendado pelo ThorstenS é porque eu tive experiências ruins em que o mv iria se apressar na metade do caminho. Ao usar o rsync, se você fizer o café da manhã de um cachorro em casa nova , poderá sempre desmontá-lo, enviá-lo para o newf e voltar aos negócios - sem perda de dados. E também gosto de manter a fonte antiga por um tempo, para o caso do meu novo drive de 1TB se lançar na primeira semana. Depois de um tempo, você ficará feliz com o novo drive (ou precisará desesperadamente do espaço ocupado pelo antigo) e poderá limpá-lo.

Seus backups são bons, certo? :)

    
por 08.08.2009 / 03:57