Remova a partição / var e substitua-a por / var na partição / (root)

4

Eu acidentalmente criei uma partição /var e gostaria de me livrar dela. É possível remover essa partição e usar a partição / para conter /var sem reinstalar o SO ou eu preciso reparticionar meu disco rígido e reinstalar tudo?

No último caso, há algo que eu possa fazer para reinstalar as atualizações / programas já instalados automaticamente no novo sistema ou tenho que listar tudo que eu adiciono ao sistema e reinstalá-lo manualmente? Meu /home está em uma partição separada, então provavelmente ele pode ser reutilizado pela nova instalação, embora eu me importe muito mais com o que instalei em / .

O sistema operacional é o Kubuntu 12.10.

    
por Bakuriu 14.11.2012 / 14:58

3 respostas

8

Você pode inicializar a máquina com um sistema operacional de CD ao vivo. Isso permitirá que você mova /var sem corromper o sistema operacional.
Eu fiz isso na outra direção com /tmp , /var , /opt e /usr em uma instalação do SLES. Eu acho que funcionaria em outras distros.

  1. Inicialize o CD ao vivo
  2. Monte a antiga partição /var em /mnt/var
  3. Monte o diretório raiz real em /mnt/root
  4. Corrigir /mnt/root/etc/fstab
  5. Remova o antigo ponto de montagem com rmdir /mnt/root/var
  6. Executar um cp -a /mnt/var /mnt/root/var
  7. Inicialize o SO real
por 14.11.2012 / 15:29
2

A resposta do Yuugian é definitivamente o caminho certo e seguro. Mas para algumas pessoas, pode ser bom saber que você pode realmente fazer isso sem desligar seu sistema em execução. Você pode tratar essa resposta como um treinamento ou último recurso em situações em que a inicialização de um liveCD não é uma opção.

Disclaimer: Este procedimento não é recomendado para usuários iniciantes. Se você não prestar atenção suficiente à etapa 1, seu sistema poderá travar enquanto você executa as próximas etapas e pode experimentar um comportamento inesperado de vários aplicativos após a reinicialização. Antes de tentar isso, verifique se você está familiarizado com /var description no tldp e seus desvios específicos da distribuição.

  1. Feche os programas que tenham arquivos abertos em /var . Comece alternando para o console (um dos ttys "reais") e desligando o servidor X, assim como o Desktop Manager (kdm / gdm / lightdm / ...), se você usar um. Se você não sabe como fazer isso ou o que isso significa, NÃO continue - as chances de você quebrar seu sistema são muito altas, e há muitas possibilidades para abordar em um procedimento passo-a-passo. aqui - desculpe!

    Use lsof ou fuser para localizar os programas restantes que possuem arquivos abertos em /var . Observe que, se um programa foi iniciado como / por um serviço do sistema, é sempre melhor parar o serviço, em vez de eliminar a tarefa. Se houver alguns programas / serviços muito teimosos para lidar com isso, você também pode tentar mudar para o modo de usuário único (init nível 1) - se isso for aceitável para você. Na maioria dos casos, seria correto ter alguns arquivos (!) Ainda abertos em /var - por exemplo, os arquivos pid em /var/run , caso seu sistema use esse local.

  2. Monte sua partição raiz (pela segunda vez). Simplesmente escolha qualquer diretório vazio como um ponto de montagem temporário para isso - usarei /mnt/tmp como exemplo. Normalmente, o comando mount (sem parâmetros) não exibirá o nome do dispositivo real por trás da partição raiz, você precisará verificar qual deles é (a menos que você tenha certeza). Geralmente, você pode obter as informações de lsblk (se tiver em seu sistema), ou configuração de carregador de inicialização, ou por cat /proc/cmdline , ou identificando a partição por tamanho relatada por fdisk .

  3. Copie /var contents. Depois de encontrar a partição e montá-la, copie o conteúdo de /var para o seu rootfs (montado no novo local), usando cp -ad , como: cp -ad /var /mnt/tmp/ . Nota: se sua distro ainda gerencia os diretórios /var/run e /var/lock em vez de /run/ introduzido recentemente, você deve ignorar o conteúdo desses dois diretórios. Se o extglob estiver ativado no seu shell, você pode fazer isso usando cp -ad /var/!(run|lock) /mnt/tmp/var/ - ou use cpio . Apenas para criar os dois diretórios em /mnt/tmp/var/ e definir suas permissões corretamente após a cópia.

  4. Remova a antiga /var entrada em fstab . A maneira mais segura é comentá-la, é claro.

  5. Reinicializar

por 14.11.2012 / 19:33
-1

Sob a raiz:

cp -rf /var /var-new && umount /var && mv /var /var-old && mv /var-new /var

depois remova ou comente / var mountpoint de / etc / fstab e reinicie

    
por 14.11.2012 / 20:18