2007 01 18 Mudando o local da partição barra root com o servidor em produção
Post
Cancel

Mudando o local da partição barra root com o servidor em produção

Tudo caminha muito bem, até quando você começa a verificar os Log's do Servidor e descobre que existe um Disco Rígido (HD), ou melhor, uma partição com problema. Acabou o sussego, pode ter certeza!

Jan 16 12:00:04 mail kernel: scsi1: ERROR on channel 0, id 0, lun 0, CDB: 0x28 00 00 06 f1 a3 00 00 08 00
Jan 16 12:00:04 mail kernel: Info fld=0x6f1a5, Current sd08:06: sns = f0 3
Jan 16 12:00:04 mail kernel: ASC=11 ASCQ= 1
Jan 16 12:00:04 mail kernel: Raw sense data:0xf0 0x00 0x03 0x00 0x06 0xf1 0xa5 0x28 0x00 0x00 0x00 0x00 0x11 0x 01 0x00 0x80 0x00 0x3f 0x00 0x28 0x00 0x16 0x10 0x01 0x69 0x01 0x00 0x00 0x01 0x35 0x02 0x8b 0x00 0x00 0x00 0x0 0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Jan 16 12:00:04 mail kernel: I/O error: dev 08:06, sector 262232
Jan 16 12:00:04 mail kernel: EXT3-fs error (device sd(8,6)): ext3_get_inode_loc: unable to read inode block - i node=32396, block=32779
Jan 16 12:00:05 mail kernel: EXT3-fs error (device sd(8,6)) in ext3_reserve_inode_write: IO failure

Aí você começa a verificar as partições existentes

Filesystem Size Used Avail Use% Mounted on
/dev/sda6 4.6G 3.4G 911M 80% /
proc 0 0 0 - /proc
/dev/sda5 92M 7.3M 80M 9% /boot
/dev/sda7 2.8G 292M 2.3G 12% /usr/local
/dev/sda11 6.4G 3.3G 2.8G 54% /sobra
/dev/md0 184G 7.4G 167G 5% /home
/dev/sdb1 17G 7.7G 8.0G 50% /var
/dev/hda2 46G 27G 17G 62% /dados
devpts 0 0 0 - /dev/pts

E então, descobre que existe uma partição LIVRE. Mas como utilizar essa partição, no meu caso a partição é a sda11 denominada de sobra, sem PARAR o sistema. Bom sem parar o sistema é um pouco impossível, pois será necessário efetuar um boot, então, como parar o menor tempo possível o sistema de modo que não seja perdido nenhuma informação?

Essa pergunta, é o que fiz e consegui parar o sistema apenas para um simples boot. Vou descrever o problema para um melhor esclarecimento.

Em uma máquina de produção, há uma partição do HD com problemas. Nessa mesma máquina existe uma outra partição, chamada de sobra, que não é utilizada para nada, está 100% ociosa. Qual que é a idéia?!? Migrar as informações da partição com problema para a partição que não é utilizada.

Como fazer isso??

É o que descrevo a seguir...

Antes de mais nada é importante confirmar se a partição que será utilizada, no meu caso a /de/sda11, está 100%, ou seja, não está danificada e pode ser utilizada.

A primeira coisa a fazer é desmontar a partição /sobra (sda11), para isso executo o comando abaixo:

umount /sobra

Agora vamos executar um fsck *(cuidado o fsck pode danificar seus dados, caso não seja utilizado corretamente, para maiores informações veja: man fsck) na partição desmontada sda11.

fsck.ext3 -cyv /dev/sda11

Feito a checagem e observando o LOG, posso ver que nessa partição não existem badblocks.

e2fsck 1.38 (30-Jun-2005)
Checking for bad blocks (read-only test): done 995
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/dev/sda11: ***** FILE SYSTEM WAS MODIFIED *****

45415 inodes used (2%)
27 non-contiguous inodes (0.1%)
# of inodes with ind/dind/tind blocks: 2333/27/0
912342 blocks used (52%)
0 bad blocks
0 large files

31340 regular files
2744 directories
2032 character device files
7831 block device files
3 fifos
0 links
1448 symbolic links (1448 fast symbolic links)
8 sockets
--------
45406 files

Agora o próximo passo é copiar os arquivos da partição barra (/) para a nova partição /sobra. Para isso é necessário montar novamente e partição.

mount /dev/sda11 /sobra

Nesse caso vou copiar os seguintes diretórios:

  • cp -dpR /bin/ /sobra/
  • cp -dpR /etc/ /sobra/
  • cp -dpR /lib/ /sobra/
  • cp -dpR /mnt/ /sobra/
  • cp -dpR /sbin/ /sobra/
  • cp -dpR /sys/ /sobra/
  • cp -dpR /dev/ /sobra/
  • cp -dpR /opt/ /sobra/
  • cp -dpR /root/ /sobra/
  • cp -dpR /tmp/ /sobra/
  • cp -dpR /usr/ /sobra/ Após copiar os arquivos é necessário criar os diretórios que são pontos de montagem para outras partições, são eles:

    mkdir /sobra/proc
    mkdir /sobra/var
    mkdir /sobra/dados
    mkdir /sobra/home

    Ao fazer a cópia dos arquivos, os seguintes erros foram apresentados

    cp: cannot stat `/usr/lib/gconv/libGB.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/MAC-IS.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/ISO_2033.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/MAC-UK.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/CP737.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/CP775.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/CP932.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/DEC-MCS.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/NATS-DANO.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/T.61.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/SAMI-WS2.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/ISO8859-2.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/ISO8859-3.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/ISO8859-4.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/ISO8859-5.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/ISO8859-6.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/ISO8859-7.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/ISO8859-8.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/ISO8859-9.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/ECMA-CYRILLIC.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/ISO-2022-CN-EXT.so': Input/output error
    cp: cannot stat `/usr/lib/gconv/ISO_10367-BOX.so': Input/output error
    cp: cannot stat `/usr/share/locale/es/LC_MESSAGES/grep.mo': Input/output error
    cp: cannot stat `/usr/share/locale/es/LC_MESSAGES/kbd.mo': Input/output error
    cp: cannot stat `/usr/share/locale/es/LC_MESSAGES/minicom.mo': Input/output error
    cp: cannot stat `/usr/share/locale/es/LC_MESSAGES/dialog.mo': Input/output error
    cp: cannot stat `/usr/share/locale/es/LC_MESSAGES/sed.mo': Input/output error
    cp: cannot stat `/usr/share/locale/es/LC_MESSAGES/tar.mo': Input/output error

O erro acima pode ter sido ocasionado devido ao problema que existe na partição. Não necessáriamente os arquivos estão corrompidos por um erro de instalação.

Os arquivos,

cp: cannot stat `/usr/lib/gconv/libGB.so': Input/output error
cp: cannot stat `/usr/lib/gconv/MAC-IS.so': Input/output error
cp: cannot stat `/usr/lib/gconv/ISO_2033.so': Input/output error
cp: cannot stat `/usr/lib/gconv/MAC-UK.so': Input/output error
cp: cannot stat `/usr/lib/gconv/CP737.so': Input/output error
cp: cannot stat `/usr/lib/gconv/CP775.so': Input/output error
cp: cannot stat `/usr/lib/gconv/CP932.so': Input/output error
cp: cannot stat `/usr/lib/gconv/DEC-MCS.so': Input/output error
cp: cannot stat `/usr/lib/gconv/NATS-DANO.so': Input/output error
cp: cannot stat `/usr/lib/gconv/T.61.so': Input/output error
cp: cannot stat `/usr/lib/gconv/SAMI-WS2.so': Input/output error
cp: cannot stat `/usr/lib/gconv/ISO8859-2.so': Input/output error
cp: cannot stat `/usr/lib/gconv/ISO8859-3.so': Input/output error
cp: cannot stat `/usr/lib/gconv/ISO8859-4.so': Input/output error
cp: cannot stat `/usr/lib/gconv/ISO8859-5.so': Input/output error
cp: cannot stat `/usr/lib/gconv/ISO8859-6.so': Input/output error
cp: cannot stat `/usr/lib/gconv/ISO8859-7.so': Input/output error
cp: cannot stat `/usr/lib/gconv/ISO8859-8.so': Input/output error
cp: cannot stat `/usr/lib/gconv/ISO8859-9.so': Input/output error
cp: cannot stat `/usr/lib/gconv/ECMA-CYRILLIC.so': Input/output error
cp: cannot stat `/usr/lib/gconv/ISO-2022-CN-EXT.so': Input/output error
cp: cannot stat `/usr/lib/gconv/ISO_10367-BOX.so': Input/output error

são do pacote glibc e glibc-solibs. Como o problema detectado foi no disco acredito que esses arquivos tenham sido corrompidos. Como são apenas bibliotecas, alguns programas podem não funcionar corretamente. Por isso, esses pacotes devem ser reinstalados.

Continuando a lista dos arquivos que não foram copiados temos:

cp: cannot stat `/usr/share/locale/es/LC_MESSAGES/grep.mo': Input/output error
cp: cannot stat `/usr/share/locale/es/LC_MESSAGES/kbd.mo': Input/output error
cp: cannot stat `/usr/share/locale/es/LC_MESSAGES/minicom.mo': Input/output error
cp: cannot stat `/usr/share/locale/es/LC_MESSAGES/dialog.mo': Input/output error
cp: cannot stat `/usr/share/locale/es/LC_MESSAGES/sed.mo': Input/output error
cp: cannot stat `/usr/share/locale/es/LC_MESSAGES/tar.mo': Input/output error

Os arquivos acima são respectivamente dos seguintes pacotes:

  • grep
  • kbd
  • minicom
  • pkgtools
  • sed
  • tar Como esses pacotes são todos referentes ao idioma Espanhol não é preocupante, porém eles precisarão ser reinstalados. Arquivos "copiados"! Agora falta modificar alguns parâmetros em dois arquivos: ''' /etc/fstab ''' /etc/lilo.conf Porém os arquivos que iremos modificar não encontram-se mais no seu local padrão /etc. Esses arquivos agora encontram-se no diretório /sobra/etc. Após reiniciar a máquina os arquivos não estarão mais no /sobra/FILES estarão no /(barra). Vamos modificar os arquivos. O primeiro que iremos modificar é o /sobra/etc/fstab Arquivo Original

    /dev/sda8 swap swap defaults 0 0
    /dev/sda9 swap swap defaults 0 0
    /dev/sda10 swap swap defaults 0 0
    /dev/sda6 / ext3 defaults 1 1
    /dev/sda5 /boot ext3 defaults 1 2
    /dev/sda7 /usr/local ext3 defaults 1 2
    /dev/sda11 /sobra ext3 defaults 1 2
    /dev/md0 /home ext3 defaults,usrquota,grpquota 1 2
    /dev/sdb1 /var ext3 defaults 1 2
    /dev/hda2 /dados ext3 defaults 1 2
    /dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
    /dev/fd0 /mnt/floppy auto noauto,owner 0 0
    devpts /dev/pts devpts gid=5,mode=620 0 0
    proc /proc proc defaults 0 0

    Arquivo Modificado (NOVO)

    /dev/sda8 swap swap defaults 0 0
    /dev/sda9 swap swap defaults 0 0
    /dev/sda10 swap swap defaults 0 0
    /dev/sda11 / ext3 defaults 1 1
    /dev/sda5 /boot ext3 defaults 1 2
    /dev/sda7 /usr/local ext3 defaults 1 2
    /dev/md0 /home ext3 defaults,usrquota,grpquota 1 2
    /dev/sdb1 /var ext3 defaults 1 2
    /dev/hda2 /dados ext3 defaults 1 2
    /dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
    /dev/fd0 /mnt/floppy auto noauto,owner 0 0
    devpts /dev/pts devpts gid=5,mode=620 0 0
    proc /proc proc defaults 0 0

    As linhas alteradas foram: ''' /dev/sda11 / ext3 defaults 1 1
    ''' /dev/sda11 /sobra ext3 defaults 1 2
    O segundo e último arquivo a ser alterado é o /sobra/etc/lilo.conf Arquivo Original

    image = /boot/vmlinuz
    root = /dev/sda6
    label = Linux
    read-only

    Arquivo Modificado (NOVO)

    image = /boot/vmlinuz
    root = /dev/sda11
    label = Linux
    read-only

    Alterados os arquivos, basta alterar as informações do lilo na (MBR). Isso é feito com o comando: ''' lilo -v -C /sobra/etc/lilo.conf Se tudo funcionar, basta reiniciar o equipamento e aguardar (ou rezar)!!!

This post is licensed under CC BY 4.0 by the author.