![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Preparar un disco RAID de SIV desde los .tgz de las particionesUsando información de uuids en particiones, uuids en raid, instalar el grub (y otro howto del grub y la doc. oficial de ubuntu), se ha preparado las iguiente script en:uiharu:/data/ptoledo El ejemplo siguiente detalla cómo se hace para un disco IDE de 40GB conectado con el adaptador USB-IDE de uiharu, que aparece como /dev/sdc en el "dmesg". create-disk.sh
#!/bin/bash
cd /data/ptoledo
for i in 1 2 3 ; do
cat /proc/mdstat | grep ^md | expand | cut -d ' ' -f 1 | while read l ; do mdadm --stop /dev/$l ; done
umount /tmp/dest/boot /tmp/dest/opt /tmp/dest
mdadm --zero-superblock /dev/sdc1
mdadm --zero-superblock /dev/sdc5
mdadm --zero-superblock /dev/sdc6
mdadm --zero-superblock /dev/sdc7
done
echo "Se va a borrar el /dev/sdc"
echo "Pulse ENTER para continuar..."
read dummy
dd if=/dev/zero of=/dev/sdc bs=16384 count=1024
cat sdc.sfdisk | sfdisk /dev/sdc
dd if=/dev/zero of=/dev/sdc1 bs=16384 count=1024
dd if=/dev/zero of=/dev/sdc5 bs=16384 count=1024
dd if=/dev/zero of=/dev/sdc6 bs=16384 count=1024
dd if=/dev/zero of=/dev/sdc7 bs=16384 count=1024
mdadm --create /dev/md0 --level=1 --metadata=0.90 --raid-disks=2 --homehost=any --uuid=9e3e779f:f17974ae:f1ac3e11:db1c5774 missing /dev/sdc1
mdadm --create /dev/md1 --level=1 --metadata=0.90 --raid-disks=2 --homehost=any --uuid=fc610d8e:89e7e34f:926fea3a:e734fd6b missing /dev/sdc5
mdadm --create /dev/md2 --level=1 --metadata=0.90 --raid-disks=2 --homehost=any --uuid=ba3c70ac:4dbdc277:96cee126:37ab148d missing /dev/sdc6
mdadm --create /dev/md3 --level=1 --metadata=0.90 --raid-disks=2 --homehost=any --uuid=dac38a19:4e406bc3:9ededa8a:cc522842 missing /dev/sdc7
partprobe
echo "RAID creado, pulsa ENTER para continuar..."
read dummy
mkfs.ext3 -U 12b28e2d-d3e8-4f20-a33b-3dfeadd1bbc1 /dev/md0
mkfs.ext3 -U 27f3331b-da22-4731-98a5-7b58dfa9f17d /dev/md2
mkfs.ext3 -U d50303b3-3a8c-450d-a40f-22e76078b0c3 /dev/md3
mkswap -v1 -U fc610d8e-89e7-e34f-926f-ea3ae734fd6b /dev/md1
echo "Particiones formateadas, pulsa ENTER para continuar..."
read dummy
mkdir -p /tmp/dest
mount -t auto /dev/md2 /tmp/dest
cd /tmp/dest/
tar -xvzf /data/ptoledo/sda6.tgz
mount -t auto /dev/md3 /tmp/dest/opt/
cd opt/
tar -xvzf /data/ptoledo/sda7.tgz
cd ..
mount -t auto /dev/md0 /tmp/dest/boot/
cd boot/
tar -xvzf /data/ptoledo/sda1.tgz
cd /data/ptoledo
echo "Contenido copiado, pulsa ENTER para continuar..."
read dummy
for i in dev dev/pts sys proc srv ; do
mount --bind /$i /tmp/dest/$i
done
echo "(hd0) /dev/sdc" > /tmp/dest/boot/grub/device.map
echo "grub-install"
chroot /tmp/dest /usr/sbin/grub-install --no-floppy /dev/sdc
chroot /tmp/dest /usr/sbin/update-grub
echo "(hd0) /dev/hda" > /tmp/dest/boot/grub/device.map
echo "(hd1) /dev/hdc" >> /tmp/dest/boot/grub/device.map
for i in dev/pts dev sys proc srv ; do
umount /tmp/dest/$i
done
# Desmontamos todo
umount /tmp/dest/boot/
umount /tmp/dest/opt/
umount /tmp/dest
cat /proc/mdstat
mdadm --stop /dev/md[0123]
create-blank-secondary.sh #!/bin/bash cd /data/ptoledo for i in 1 2 3 ; do cat /proc/mdstat | grep ^md | expand | cut -d ' ' -f 1 | while read l ; do mdadm --stop /dev/$l ; done umount /tmp/dest/boot /tmp/dest/opt /tmp/dest mdadm --zero-superblock /dev/sdc1 mdadm --zero-superblock /dev/sdc5 mdadm --zero-superblock /dev/sdc6 mdadm --zero-superblock /dev/sdc7 done echo "Se va a borrar el /dev/sdc" echo "Pulse ENTER para continuar..." read dummy dd if=/dev/zero of=/dev/sdc bs=16384 count=1024 cat sdc.sfdisk | sfdisk /dev/sdc dd if=/dev/zero of=/dev/sdc1 bs=16384 count=1024 dd if=/dev/zero of=/dev/sdc5 bs=16384 count=1024 dd if=/dev/zero of=/dev/sdc6 bs=16384 count=1024 dd if=/dev/zero of=/dev/sdc7 bs=16384 count=1024 echo "Disco borrado y particiones creadas" chroot-to-disk.sh
#!/bin/bash
cd /data/ptoledo
for i in 1 2 3 ; do
umount /tmp/dest/boot /tmp/dest/opt /tmp/dest
cat /proc/mdstat | grep ^md | expand | cut -d ' ' -f 1 | while read l ; do mdadm --stop /dev/$l ; done
done
mdadm --assemble --run /dev/md0 /dev/sdc1
mdadm --assemble --run /dev/md1 /dev/sdc5
mdadm --assemble --run /dev/md2 /dev/sdc6
mdadm --assemble --run /dev/md3 /dev/sdc7
mkdir -p /tmp/dest
mount -t auto /dev/md2 /tmp/dest
mount -t auto /dev/md3 /tmp/dest/opt/
mount -t auto /dev/md0 /tmp/dest/boot/
for i in dev dev/pts sys proc srv ; do
mount --bind /$i /tmp/dest/$i
done
chroot /tmp/dest
for i in dev/pts dev sys proc srv ; do
umount /tmp/dest/$i
done
cd /data/ptoledo
umount /tmp/dest/boot/
umount /tmp/dest/opt/
umount /tmp/dest
cat /proc/mdstat
mdadm --stop /dev/md[0123]
El disco al que se le ha hecho esto es un IDE de 40GB conectado en sdc con el adaptador USB-IDE: cat sdc.sfdisk label: dos label-id: 0x8e459e62 device: /dev/sdc unit: sectors /dev/sdc1 : start= 2048, size= 61440, type=fd /dev/sdc2 : start= 63488, size= 78101872, type=5 /dev/sdc5 : start= 65536, size= 8388608, type=fd /dev/sdc6 : start= 8456192, size= 62914560, type=fd /dev/sdc7 : start= 71372800, size= 6792560, type=fd Los tgz del contenido de las particiones son los siguientes: root@uiharu:/data/ptoledo# ls -l *.tgz -rw-r--r-- 1 dario dario 22775625 may 4 08:53 sda1.tgz -rw-r--r-- 1 dario dario 996593565 may 4 08:57 sda6.tgz -rw-r--r-- 1 dario dario 132 may 4 09:00 sda7.tgz root@uiharu:/data/ptoledo# Procedimiento1. Se conecta el disco IDE que va a ser el primario a uiharu usando el adaptado USB-IDE y se espera que aparezca como /dev/sdc en el dmesg 2. Se "plancha" dicho disco (como root, en uiharu): cd /data/ptoledo ./create-disk.sh 3. Se quita el disco 4. Se conecta el disco IDE que va a ser el secundario a uiharu y se espera que aparezca como /dev/sdc en el dmesg 5. Se "plancha" dicho disco (como root, en uiharu): cd /data/ptoledo ./create-blank-secondary.sh 6. Se pinchan ambos discos en la plataforma final y se arranca el PC. 7. Se ejecutan los siguientes comandos como root, para añadir el disco secundario al RAID: mdadm --add /dev/md0 /dev/hdc1 mdadm --add /dev/md1 /dev/hdc5 mdadm --add /dev/md2 /dev/hdc6 mdadm --add /dev/md3 /dev/hdc7 8. Esperas a que termine la sincronización del disco "boot" (/dev/md0 en el ejemplo). Puedes hacer un "watch cat /proc/mdstat", y usar Ctrl-C para salir del watch. 9. Una vez que ha sincronizado el /dev/md0 (que contiene el grub), puedes instalar el grub en el disco secundario con lo siguiente: echo "(hd0) /dev/hda" > /tmp/dest/boot/grub/device.map echo "(hd1) /dev/hdc" >> /tmp/dest/boot/grub/device.map /usr/sbin/grub-install --no-floppy /dev/hdc 10. Con eso ya está el disco completamente preparado. |