quinta-feira, 25 de março de 2010

System Rescue CD via PXE (arranque pela rede)

É sempre bom ter por perto um CD de 'socorro' para resolver problemas nas máquinas.
Melhor ainda, é nem usar CD e arrancar directamente pela rede com PXE.

Um dos meus rescue CDs preferido é o System Rescue CD.
Como já tenho um servidor TFTP para servir vários kernels pela rede (o IP deste servidor tem de ser anunciado por DHCP), é simples incorporar esta distribuição.

Depois de descarregar o ficheiro .iso (p.ex. systemrescuecd-x86-1.5.0.iso), este pode ser montado para acedermos ao conteúdo:

# mkdir /mnt/iso && mount -o loop systemrescuecd-x86-1.5.0.iso /mnt/iso

O meu directório de TFTP é /tftpboot e crio /tftpboot/srcd150, onde coloco o conteúdo do directório /mnt/iso/isolinux:

# mkdir /tftpboot/srcd150 && cp -a /mnt/iso/isolinux/* /tftpboot/srcd150/

O ficheiro /mnt/iso/sysrcd.dat vai para uma partilha NFS (nfs_server:/nfs/srcd150), que será acedida pela máquina-cliente no momento de carregar o root filesystem.

Basta alterar agora o display de arranque, mostrando a nova opção de boot (p.ex., srcd150) e a configuração pxelinux (/tftpboot/pxelinux.cfg/default), inserindo as linhas com as opções básicas (setkmap=29 coloca o teclado em português):

label srcd150
kernel srcd150/rescuecd
append initrd=srcd150/initram.igz nfsboot=nfs_server:/nfs/srcd150 setkmap=29

Prontos para boot? :)

terça-feira, 23 de março de 2010

Limpeza de Primavera

Chegou o tempo de passar o pano do pó nas homes dos meus ex-utilizadores (essencialmente, eliminando as contas e conteúdos respectivos).
Por precaução, faço antes um tar.gz do conteúdo de cada home e envio para um servidor remoto.

No "Linux Server Hacks", encontro um dos one-liners em shell mais brilhantes que conheço (adaptado para o meu caso):


$ remote_ip=xxx.xxx.xxx.xxx; for aluno in `cat nao-inscritos.txt`; do echo ${aluno}; (sudo tar czvf - /areas/${aluno}| ssh ${remote_ip} "cat > ${aluno}_home.tar.gz"); done


Que belos embrulhos :) .