Problema ao redimensionar a partição raiz ext4 no Centos6x64

0

Minha VM Centos6x64 veio com um xvda de disco ~ 500G. Inicialmente, 8G foi alocado para xvda1 e montado em /. O restante do espaço em disco 500G no xvda ainda não foi alocado. Então eu decidi fazer este espaço em disco restante utilizável e criei uma partição xvda2 com volumes lógicos usando fdisk, pvcreate, vgcreate, lvcreate, formatando e finalmente atualizando o fstab para montá-los automaticamente.

Os relacionamentos com as pastas correspondentes (ponto de montagem) são:

  • / dev / centos / home .... / home [200G]
  • / dev / centos / root .... / [100g]

O problema é:

  • O / home parece ter montado corretamente, já que o tamanho mostrado na df -h é de 197G.
  • Mas a montagem na raiz não está correta. Nos resultados de df -h abaixo, o tamanho de /dev/xvda1 montado em /boot é 7.8G, o que está correto. Mas o tamanho de /dev/mapper/centos-root montado em / mostra incorretamente 7.8G. Deve mostrar aproximadamente 100G. Está mostrando incorretamente o mesmo espaço em disco como o de /dev/xvda1 .

Perguntas:

  • Tentei agrupar alguns resultados abaixo para sua referência. Gentilmente ajudar a resolver este problema. O que posso fazer para corrigir o problema?
  • Além disso, se eu quisesse aumentar o espaço em disco alocado para xvda1 de 8G para dizer 200G, existe uma maneira mais simples e direta? no googling, eu encontrei este postar isso combinava muito com o objetivo. Mas eu não consegui fazê-lo para reiniciar com sucesso, pois estava preso na tela do grub. Eu não tenho muita informação sobre esses detalhes de falha. Eu poderia ter perdido alguns pré-requisitos de configuração ao usar o fdisk para alocar espaço em disco adicional, por exemplo: formatação?

Eu sou muito novo nisso e preso. Por favor, amável ajuda.

Estado inicial do sistema:

# fdisk -l
Disk /dev/xvda: 536.9 GB, 536870912000 bytes 255 heads, 63 sectors/track, 65270 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000611ee
    Device      Boot    Start   End      Blocks   Id  System
    /dev/xvda1   *      1       1045     8387584   83  Linux
Disk /dev/xvdb: 32.2 GB, 32204390400 bytes 255 heads, 63 sectors/track, 3915 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000

# lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  500G  0 disk
└─xvda1 202:1    0    8G  0 part /
xvdb    202:16   0   30G  0 disk /mnt

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  897M  6.5G  12% /
tmpfs           3.6G     0  3.6G   0% /dev/shm
/dev/xvdb        30G  173M   28G   1% /mnt

# cat /etc/fstab
UUID=2d0f2d55-672b-4c05-8eba-9421dd808ad7 / ext4    defaults 1 1
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/xvdb       /mnt    auto    defaults,nofail,comment=cloudconfig     0 2

Etapas que realizei:

  • fdisk /dev/xvda ...(n > p = 2 > t = 8e)
  • reboot
  • pvcreate /dev/xvda2
  • vgcreate centos /dev/xvda2
  • lvcreate -n home -L 200G centos
  • lvcreate -n root -L 100G centos
  • lvcreate -n swap -L 4G cent
  • mkfs.ext4 /dev/centos/root
  • mkfs.ext4 /dev/centos/home
  • mkswap /dev/centos/swap
  • mount /dev/xvda1 /boot
    • ...This is what i want to do but was not permitted.
    • So instead, i updated /etc/fstab and changed mount point for /dev/xvda1 from / to /boot. But this also does not work.
      • In the results provided below, df -h shows the correct mount points for both /dev/xvda1 i.e. /boot and /dev/mapper/centos-root i.e. / but the disk space shown for /dev/mapper/centos-root = 7.8G is incorrect. I was expecting ~100G.
      • Also, the results for lsblk shows empty mount point for centos-root (dm-1). For centos-root, i expected mount point / and for /dev/xvda1 expected mount point /boot.
  • mount /dev/centos/root /
  • mount /dev/centos/home /home
  • make corresponding entries into /etc/fstab (refer cat /etc/fstab below)
  • shutdown -r now
  • mkhomedir_helper centos
    • On reboot, home dir for centos became inaccessible and so i got error "Could not chdir to home directory /home/centos: No such file or directory". To resolve, I had to run the above command to recreate home directory for user centos

cat / etc / fstab

UUID=3a75c67b-5053-4863-963e-c6a572f13972       /       ext4    defaults        1 1
UUID=2d0f2d55-672b-4c05-8eba-9421dd808ad7       /boot   ext4    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/xvdb       /mnt    auto    defaults,nofail,comment=cloudconfig     0 2
/dev/mapper/centos-home         /home              ext4    defaults     0 0

fdisk -l

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1        1045     8387584   83  Linux
/dev/xvda2            1045       65270   515892667   8e  Linux LVM

df -h

Filesystem              Size  Used Avail Use%  Mounted on
/dev/mapper/centos-root 7.8G  898M  6.5G  12%  /
tmpfs                   3.6G     0  3.6G   0%  /dev/shm
/dev/xvda1              7.8G  898M  6.5G  12%  /boot
/dev/xvdb               30G   173M   28G   1%  /mnt
/dev/mapper/centos-home 197G   60M  187G   1%  /home

lsblk

NAME                   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda                   202:0    0  500G  0 disk
├─xvda1                202:1    0    8G  0 part /
└─xvda2                202:2    0  492G  0 part
  ├─centos-home (dm-0) 253:0    0  200G  0 lvm  /home
  ├─centos-root (dm-1) 253:1    0  100G  0 lvm
  └─centos-swap (dm-2) 253:2    0    4G  0 lvm
xvdb                   202:16   0   30G  0 disk /mnt

blkid

/dev/xvda1: UUID="2d0f2d55-672b-4c05-8eba-9421dd808ad7" TYPE="ext4"
/dev/xvdb: UUID="3656cb72-7e94-4e63-81ea-66397ad45d13" SEC_TYPE="ext2" TYPE="ext3"
/dev/xvda2: UUID="ASXeKh-x8xL-nDVF-afzq-zU8a-sCbd-qGM6pS" TYPE="LVM2_member"
/dev/mapper/centos-home: UUID="4510891a-354d-4486-bd47-95d474f197bb" TYPE="ext4"
/dev/mapper/centos-root: UUID="3a75c67b-5053-4863-963e-c6a572f13972" TYPE="ext4"
/dev/mapper/centos-swap: UUID="5dff9552-3d36-4cfa-936c-28e02c1ae108" TYPE="swap"

lvdisplay

  --- Logical volume ---
  LV Path                /dev/centos/home
  LV Name                home
  VG Name                centos
  LV UUID                lFWQxa-mqgc-Ur8t-npDc-O2NU-r6J4-UhC2j2
  LV Write Access        read/write
  LV Creation host, time ip-xx-xx-xx-xx.ec2.internal, 2018-06-16 07:18:22 +0000
  LV Status              available
  # open                 1
  LV Size                200.00 GiB
  Current LE             51200
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                UQ6oAD-JyRa-cb8l-VmgW-aZh9-qbof-Z1Z9af
  LV Write Access        read/write
  LV Creation host, time ip-xx-xx-xx-xx.ec2.internal, 2018-06-16 07:18:22 +0000
  LV Status              available
  # open                 0
  LV Size                100.00 GiB
  Current LE             25600
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                QyY2z9-5EpX-D8dY-DORZ-9BbY-TqgA-07fc3X
  LV Write Access        read/write
  LV Creation host, time ip-xx-xx-xx-xx.ec2.internal, 2018-06-16 07:18:24 +0000
  LV Status              available
  # open                 0
  LV Size                4.00 GiB
  Current LE             1024
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
    
por Bipo K 16.06.2018 / 16:46

1 resposta

0

O sistema de arquivos que você está tentando montar em /boot ( /dev/xvda1 ) é realmente seu / . Portanto, mesmo que você consiga montá-lo no ponto de montagem desejado, ele não funcionará porque o que você realmente quer montar é o diretório /boot dentro de /dev/xvda1 , e você não pode montar diretórios dentro de um sistema de arquivos. p>

Você criou os volumes lógicos e os sistemas de arquivos do LVM para / e /home , mas não colocou nenhum dado neles; Você não migrou seus sistemas de arquivos existentes para os novos dispositivos de bloco.

Além disso, o GRUB não sabe sobre o novo sistema de arquivos / , portanto ele tentará inicializar a partir do / original. Aqui está uma visão geral do que você pode fazer para usar esses volumes lógicos:

AVISO

Antes de seguir qualquer uma dessas etapas, faça backups. As coisas podem dar errado, e o único bom "botão de desfazer" é ter backups.

As etapas seguras

  1. Reinicie no modo de usuário único. Você estará copiando um sistema de arquivos ao vivo, então você quer o mínimo possível de coisas funcionando.
  2. Ligue o seu / atual a um novo local, como um diretório em seu diretório pessoal.
  3. Monte também os novos volumes lógicos / e /home no seu diretório pessoal.
  4. Copie seu / existente usando a montagem de ligação e excluindo /home para o novo volume / lógico. É importante que você use o bind mount como sua fonte de cópia porque evita copiar outros sistemas de arquivos montados; Tudo está montado em algum lugar abaixo de / .
  5. Copie seu /home existente (novamente usando a montagem de ligação) para o novo volume /home lógico.
  6. Reinicialize e quando o menu GRUB aparecer, selecione uma entrada de kernel apropriada e pressione "e". Isto irá colocá-lo no modo de edição. Adicione / edite a variável realroot para que seu valor seja /dev/mapper/centos-root . Eu estou supondo que o seu initrd tem suporte para o LVM. Em seguida, pressione ENTER.
  7. Se tudo correr bem, seu sistema será inicializado a partir do seu volume lógico raiz.

As etapas inseguras

Agora começa as etapas que dificultam a desfazer esse processo. É aqui que as coisas podem dar errado. Traga a Vodka (para comemorar esta última, claro) e prossiga:

  1. Monte seu antigo / em algum lugar.
  2. Umount /boot
  3. Copie /boot do seu antigo / para um diretório em um dos seus volumes lógicos. Você pode até mesmo copiá-lo em um tmpfs, se você ousar. Isso servirá apenas como backup temporário para as próximas duas etapas.
  4. Aí vem o ponto sem retorno: mkfs.ext4 /dev/xvda1 . Seu sistema operacional não será mais inicializado como está.
  5. mount /dev/xvda1 /boot
  6. Preencha /boot usando o backup que você fez na etapa 3.
  7. Verifique novamente o UUID do sistema de arquivos /boot e atualize /etc/fstab , se necessário.
  8. Agora é hora de atualizar o GRUB2. Execute grub-mkconfig | less e veja se ele pegou os dispositivos de bloco corretos. Você deve ver a mesma entrada realroot adicionada manualmente para chegar até aqui. Se tudo for feito, execute grub-mkconfig -o /boot/grub/grub.cfg para gravar a nova configuração do GRUB.
  9. Reinicie. Uma de duas coisas acontecerá: o sistema inicializará com sucesso ou ... não. De qualquer forma, é quando a Vodka entra.
por 17.06.2018 / 17:52