Eu tive um problema parecido, mas decidi mover meu /usr para /home/usr ( /home é montado a partir do sistema de arquivos 14G, o que me dá muito espaço para pacotes adicionais).
Esta é uma maneira um pouco hackeada de fazer isso, mas parece funcionar para mim. Os exemplos de código a seguir estão usando $ para indicar que o comando deve ser executado como usuário normal e # para indicar a função do usuário raiz (que pode ser obtida por sudo ou loggig como root).
-
Defina a senha para o usuário root, você precisará da capacidade de registrar como root, caso estrague qualquer coisa com o
/usr/bin/sudo. Para fazer isso:$ sudo su # passwd -
Copie o conteúdo de
/usrpreservando propriedade e permissões:$ cd /usr $ sudo find . -depth -print0 | sudo cpio --null --sparse -pvd /home/usr/ -
A próxima etapa lógica seria usar
fstabpara montar/home/usras/usrna inicialização, no entanto todas as alterações que eu tentei fazer nofstabestavam desaparecendo após a reinicialização do Ubuntu. Então, criei um script simples para fazer a montagem e salvei-o como/etc/init.d/bind.sh:#!/bin/sh if [ "X" = "Xstart" ]; then echo "Binding /home/usr to /usr..." chmod 4755 /home/usr/bin/passwd /home/usr/bin/chsh /home/usr/bin/pkexec /home/usr/bin/sudo /home/usr/bin/newgrp /home/usr/bin/gpasswd /home/usr/bin/chfn /home/usr/lib/pt_chown /home/usr/lib/eject/dmcrypt-get-device /home/usr/lib/openssh/ssh-keysign /home/usr/lib/dbus-1.0/dbus-daemon-launch-helper /home/usr/lib/policykit-1/polkit-agent-helper-1 /home/usr/lib/arm-linux-gnueabihf/oxide-qt/chrome-sandbox /home/usr/lib/arm-linux-gnueabihf/lxc/lxc-user-nic mount -o bind,suid /home/usr /usr echo "...done" fiA linha chmod é necessária, pois notei que
suid bitestá algumas vezes ausente após a montagem. A lista dos arquivos que tinham osuid bitdefinido pode ser encontrada executando# find /usr -user root -perm -4000no diretório/usroriginal. Por favor, note que se você instalar qualquer coisa mais tarde que esteja usando osuid bit, ele poderá ser quebrado a menos que você o adicione à lista.Você precisará criar um link simbólico em
/etc/rcS.dparabind.sh:# ln -s /etc/init.d/bind.sh /etc/rcS.d/S36bind.shNota: você pode escolher um número diferente de 36, dependendo do estado do seu
/etc/rcS.d. -
Após a reinicialização, o sistema deve estar usando
/home/usras/usr, portanto, esperamos que você tenha mais espaço para pacotes adicionais. Observe que o antigo/usrainda existe, mas é inacessível, desde que o novo diretório seja montado.Caso algo dê errado, você poderá retornar ao estado anterior renomeando o link simbólico em
/etc/rcS.de reinicializando:# mv /etc/rcS.d/S36bind.sh /etc/rcS.d/K36bind.sh