Sua abordagem está correta. Crie um diretório na partição raiz, copie seus dados, desmonte a partição usr
e mova o novo diretório para usr
. Não esqueça de editar seu /etc/fstab
depois.
Atualmente, estou preso a um esquema de particionamento restritivo que faz com que minhas partições sejam preenchidas. Parece assim:
/dev/sda7 870G 315G 511G 39% /
/dev/sda6 2.0G 271M 1.6G 15% /tmp
/dev/sda3 15G 13G 1.5G 90% /usr
/dev/sda2 15G 8.6G 5.0G 64% /var
/dev/sda1 99M 36M 58M 39% /boot
tmpfs 7.9G 0 7.9G 0% /dev/shm
Eu quero mover os dados em /usr
(e /var
também, provavelmente) para a partição raiz. Eu realmente não me importo com as partições, então uma fusão não é necessária.
Qual seria a melhor abordagem para fazer isso? Atualmente, meu plano é este:
cp -R /usr /newusr
umount /usr
mv /newusr /usr
Poderia ser realmente simples assim, ou estou negligenciando alguma coisa?
Sua abordagem está correta. Crie um diretório na partição raiz, copie seus dados, desmonte a partição usr
e mova o novo diretório para usr
. Não esqueça de editar seu /etc/fstab
depois.
Primeiro, você deve verificar sempre se tiver espaço livre suficiente. Desta vez, você tem.
Sobre a cópia:
Não é tão simples. Existem arquivos especiais, cujos atributos especiais não são copiados sempre corretamente. Em vez de cp -R
, use
cp -vfa /usr /newusr
Se você gosta de ver o que está sendo feito no momento, isso pode ser alcançado com o sinalizador "-v".
/etc/fstab
nas alterações. /proc/partitions
, e a tabela de partição no disco pode ser lida com fdisk -l /dev/sda
. Se houver uma incompatibilidade na partição que você deseja alterar atualmente, é melhor reiniciar. Para conseguir isso, seria necessário fazê-lo no modo de usuário único ou usando um LiveCD, que é o que você encontrará na Internet.
Além disso, é possível executar isso em tempo de execução (um pouco arriscado, é claro), mas acho que dessa forma só funcionará para / var e não para / usr , algumas libs de tempo de execução dependem esta pasta. Você pode experimentar uma máquina de teste anteriormente se ela funcionar.
Em primeiro lugar, você deve verificar se algum processo / serviço está usando / gravando no diretório que deseja mover.
lsof | grep -E '/usr|/var'
Geralmente / var ainda está em uso para arquivos pid e sock, / usr , assim como qualquer lib necessitará dele.
Então, interrompa / destrua serviços e processos que aparecem.
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
cupsd 723 root 5u REG 8,1 0 8651393 /var/log/cups/error_log
cupsd 723 root 6u REG 8,1 0 8651908 /var/log/cups/page_log
cupsd 723 root 12u unix 0xffff88020d97d780 0t0 9958 /var/run/cups/cups.sock
Neste pequeno exemplo, o daemon cups está sendo executado e usando esses diretórios. Se pará-los, eles não aparecerão na saída lsof.
Depois disso, você precisa de uma cópia dos seus dados atuais, eu sugiro usar rsync em vez de cp (para preservar tudo, permissões, links simbólicos, etc.)
mkdir /mnt/var
mkdir /mnt/usr
Faça seu backup
rsync -avz /var/* /mnt/var
rsync -avz /usr/* /mnt/usr
Desmontar pastas
umount /var
umount /usr
Restaurar dados
rsync -avz /mnt/var/* /var
rsync -avz /mnt/usr/* /usr
Edite seu arquivo / etc / fstab e comente / exclua as entradas onde / var e / usr devem ser montados.
Então você pode iniciar todos os serviços que você parou ou reiniciou sua máquina. Se para / usr não funcionar, você não pode parar um daemon (talvez você não possa matá-lo, porque depende do init pid) a única maneira de usar um LiveCD.
Embora você não tenha mencionado qual é o tipo de máquina (seu PC, máquina de escritório, servidor, etc.), isso dependerá da realização da maneira formal possível.
Tags hard-drive linux partition