"mount: / is busy" ao tentar montar como somente leitura para que eu possa executar o zerofree

"mount: / is busy" ao tentar montar como somente leitura para que eu possa executar o zerofree

Estou tentando rodar zerofreeno Ubuntu 11.04 para poder compactar a imagem vdi do VirtualBox usando:

VBoxManage modifyhd Ubuntu.vdi --compact

Para funcionar, zerofreea imagem do disco deve ser montada como somente leitura. estou seguindoestas instruçõesque diz para usar isso para remontar como somente leitura no modo de recuperação (soltar para o prompt do shell root):

mount -n -o remount,ro -t ext2 /dev/sda1 /

Mas quando faço isso recebo o erro:

mount: / is busy

Algumas ideias em como fazer isso?

Seguir: Seguindo a resposta de Jari eesta postagemexecutar esses comandos resolve o problema.

service rsyslog stop
service network-manager stop
killall dhclient

Responder1

Alguns processos mantêm arquivos abertos para gravação. Podem ser, por exemplo, programas que gravam logs, como rsyslogdferramentas de rede, como dhclientou qualquer outra coisa. Desligá-los um por um e tentar remontar pode funcionar.

Você pode encontrar processos que usam determinados arquivos usando o programa fuser. Por exemplo, fuser -v -m /retornará uma lista de processos. No entanto, não tenho certeza se é um deles que mantém o sistema de arquivos ocupado.

Responder2

Melhorando a resposta de Peter:

Não consegui encerrar processos que usam meu ponto de montagem. Então, eu fiz isso:

  • Editar /etc/fstabpara iniciar em somente leitura na próxima inicialização. Ex:/dev/sda1 / ext2 ro 0 1
  • Reinicie e abra um shell (Host Key + F2, por exemplo)
  • Execute zero grátis

Para "recuperar" seu sistema:

  • Monte com opção de leitura e gravação:$ mount -o remount,rw /dev/sda1
  • Edite /etc/fstabnovamente, restaurando seu valor original

Extra: se necessário abramodo de recuperaçãoem qualquer etapa:

  • Reinício
  • Segure shift enquanto a VM está carregando
  • Opções avançadas > Opção de kernel com modo de recuperação > Drop to Root Shell Prompt

Responder3

Você só pode remontar o sistema de arquivos somente leitura se não houver nenhum processo que tenha um arquivo aberto para gravação. Execute lsof /para ver quais processos possuem arquivos abertos no sistema de arquivos raiz. Os arquivos abertos para escrita serão indicados na FDcoluna. Você pode filtrá-los com

lsof / | awk '$4 ~ /[0-9].*w/'

Para filtrar os IDs do processo automaticamente, analise a saída de lsof -F pa:

lsof -F pa /home | awk '/^p/ {pid = substr($0, 2)} /^a.*w/ {print pid}'

Responder4

Às vezes, há tantos processos que mantêm a montagem ocupada que pode ser mais fácil simplesmente reinicializar com a montagem somente leitura.

Altere a entrada do sistema de arquivos raiz em /etc/fstab, por exemplo:

/dev/sda1 / ext2 relatime,rw,errors=remount-ro 0 1

torna-se:

/dev/sda1 / ext2 noatime,ro 0 1

Na reinicialização, o sistema de arquivos será montado somente leitura, para que você possa executá zerofree-lo.

Quando terminar, remonte a leitura/gravação do sistema de arquivos novamente ( mount -o remount,rw /) e desfaça as alterações em /etc/fstab.

Inspirado porhttps://wiki.debian.org/ReadonlyRoot#Enable_readonly_root

informação relacionada