Eu tenho dois volumes lógicos, um é montado como /, o outro é montado como / home.
Quero combiná-los, porque o /
volume está constantemente ficando sem espaço. (Sim, eu sei o que está usando todo esse espaço; não, não consigo removê-lo.)
Estou disposto a desligar a máquina por um dia ou dois para fazê-lo.
SO: Linux xxxxx 2.6.32-279.22.1.el6.x86_64 #1 SMP Wed Feb 6 03:10:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
(CentOS)
/
volume, não é esse o ponto de usar o LVM?Respostas:
Eu terminei e a repartição funcionou. No entanto, como faltam áreas nos dois guias, vou resumir o que fiz. Observe que substituí meu nome de usuário
zzzz
e o nome do meu computador porxxxxxxx
. Além disso, todos os comandos devem ser executados como root, a menos que indicado de outra forma.Primeiro, fiz o backup:
Isso cria um backup compactado do diretório / home e o coloca na minha unidade externa. (Observe que sua unidade externa terá um caminho diferente.)
Agora, você precisa reiniciar no modo de usuário único.
Quando o computador liga novamente, você precisa procurar uma tela como esta:
Pressione qualquer tecla para interromper isso. Você deve ver uma tela como esta:
Pressione a, depois espaço e digite
single
. Pressione Enter.Você deve ver um prompt como este:
Digite os seguintes comandos:
Deve mostrar-lhe
Size
,Used
eAvail
. Estamos interessadosUsed
.Anote quanto espaço está em uso pelo seu volume doméstico. Nós precisaremos disso mais tarde.
Lembre-se de quanto espaço seu volume doméstico usou? Dobre isso e dê a este comando. Por exemplo, eu tinha 15 gigabytes usados pelo meu diretório pessoal, então o dimensionei para 30 gigabytes.
Aviso : Este próximo passo é o que pode perder dados. Certifique- se de colocar um tamanho maior que o comando anterior. Adicione 5 Gigabytes para ter certeza.
Diga à partição raiz para usar todo o espaço que acabamos de liberar.
Copie seus dados para a partição raiz
(A propósito, isso
-a
é importante, porque, caso contrário, tudo será de propriedade do root e você não deseja isso.)Verifique rapidamente se os dados foram copiados corretamente:
Agora nós removemos a partição inicial e dizemos ao root para recuperar o novo espaço.
Neste ponto, cometi um grande erro, que você pode aprender. Reiniciei e, quando o sistema voltou, ele recusou-se a montar minha partição raiz como leitura-gravação, porque não conseguia montar minha partição / home. Então, antes de reiniciar, digitamos
Uma dessas linhas dirá ao sistema para montar a partição / home. Coloque um
#
antes dele. Pressione Ctrl-O, Enter, Ctrl-X. Agora você pode reiniciar.(Hipoteticamente, se você esquecer de editar o fstab como eu fiz, o comando para montar sua partição raiz é
mount -n -o remount -t ext2 /dev/vg_xxxxxxxx/lv_root /
)fonte
/home
. Então, desde que você possa desmontar/home
, você pode removê-lo. No entanto, não estou realmente qualificado para conversar com você durante o processo. Isso é algo sobre o qual você deve fazer uma nova pergunta.AVISO: Faça backup de todos os dados críticos antes de fazer qualquer coisa!
Você precisaria mover todos os dados da partição / home para outra partição, partição local ou unidade externa ou para qualquer outro lugar em que tenha espaço suficiente.
Remova o / home lv e expanda o / (root) lv
Copie os dados de volta para o diretório / home
Editar 1
A resposta acima está assumindo que você não tem espaço suficiente na partição raiz para colocar os dados na partição inicial.
Se não for esse o caso, basta montar a partição inicial em outro lugar e copiar os dados, por exemplo:
Em seguida, remova a partição inicial e expanda a partição raiz
fonte
Você pode fazer isso sem nenhum armazenamento externo em execução
/
, mas precisará desmontar/home
.Este não é um procedimento particularmente arriscado se você for cuidadoso, mas, mesmo assim, o conselho padrão se aplica: faça backups primeiro e teste-os.
Usarei
foo
o nome do grupo de volumesroot
ehome
como nomes de volume lógico. Isso cria os caminhos do volume lógicofoo/root
efoo/home
, e os caminhos do dispositivo/dev/mapper/foo-root
e/dev/mapper/foo-home
. Suponho que eles estejam no mesmo grupo de volumes, caso contrário, isso fica mais complicado e depende do layout do volume físico dos dois grupos de volumes.Primeiro, desmonte
/home
e corrae2fsck -f /dev/mapper/foo-home
. Depois, reduza primeiro o sistema de arquivos e o volume lógico de acordo. Executarresize2fs /dev/mapper/foo-home NNNN
em que nnnn é o número de blocos que deseja manter dentro do volume (você pode usar kB ou MB ou GB vez com o sufixoK
,M
ouG
). Depois de encolher o sistema de arquivos, encolher o volume lógico comlvresize -L MMMM foo/home
onde MMMM é um número de megabytes (note que a unidade padrão é diferenteresize2fs
, mas você pode usar os mesmos sufixosK
,M
,G
). Tenha muito cuidado para não encolher o volume lógico além do sistema de arquivos - esta é a etapa perigosa deste procedimento.Agora há espaço não utilizado no grupo de volumes. Execute
lvresize -l +100%FREE foo/root
para fazer com que o volume raiz obtenha todo o espaço livre no grupo de volumes. Em seguida, executeresize2fs /dev/mapper/foo-root
(sem parâmetro de tamanho) para ampliar o sistema de arquivos para abranger todo o volume lógico; a ampliação pode ser feita enquanto o volume está montado.Agora você tem espaço para copiar alguns arquivos. Se você não tiver espaço suficiente para tudo, mova o máximo que puder e repita o procedimento.
Depois de copiar todos os arquivos
/home
, você estará pronto para destruí-lo. Verifique se/home
está vazio (se você moveu os arquivos) ou se todos os arquivos/home
foram copiados para/root
(se você copiou os arquivos). Para destruir o volume lógico agora desnecessário, executelvremove foo/home
. Por fim, aumente o volume raiz comlvresize -l 0%FREE foo/root
e seu sistema de arquivos comresize2fs /dev/mapper/foo-home
.fonte
OK, eu me encontrei exatamente na mesma posição. Parece que o CentOS cria um pequeno volume raiz por padrão e preenche o restante do seu espaço
/home
. Até testei minha instalação primeiro em uma VM, mas com o disco menor, o CentOS não criou o volume doméstico. Eu peguei esse problema antes de ficar com espaço limitado e também imaginei como não precisar entrar no modo de usuário único. Do seguinte modo:Obtenha acesso à máquina, ssh é bom (assumindo usuário não root).
cd /
então você não está no diretório inicialsudo -s
nós estaremos na raiz de tudo issolsof /home
verifique se ninguém está usando o volume doméstico, não devemv
,tar
Ou similar o conteúdo do lar para outro lugarlvremove centos/home
/etc/fstab
e comente ou remova a linha de/home
/home
- você está agora em uma posição segura; uma reinicialização aqui deve estar OKlvresize -l +100%FREE centos/root
xfs_growfs /dev/centos/root
no CentOS 7, outros podem usarresize2fs
df -h
você conseguiu?Espero que isso facilite para alguém. É realmente incrível o que você pode fazer ao vivo em sistemas de arquivos hoje em dia.
fonte