Error en xenserver SR_Backend_Failure_47

El otro día un cliente me llamó diciéndome que su sistema iba extremadamente lento. En un principio me acojoné un poco porqué este cliente funciona con Datacore SANsymphony en su versión 9.0 PSP4 (algún día hablaré del Virtual Storage) y con un sistema horrendo llamado Citrix XenServer.

Vale…supongo que ya habré herido algún sentimiento, pero pienso lo escribo: en mi particular ranking, este sistema ocupa el último puesto en cuanto a virtualización. No me gusta nada. Pero como tengo clientes que lo usan, debo saber aprender a manejarlo.

Siguiendo con lo que decía, mi cliente me llamó informándome que todo iba muy lento y cuando me conecté a la consola XenCenter, me fijé que todos los discos virtuales (a.k.a SR), habían perdido un path iSCSI hacia la V-SAN. (NOTA: los errores de multipathing son parecidos a la imagen siguiente, ya que podemos ver los dos servidores y en uno de ellos nos marca Connected y en el otro Unplugged)

¿Y ahora como los conecto? Bueno … pues tirando de manuales:

  • Hacemos clic sobre el servidor xenserver que ha perdido la conexión (NOTA: En un entorno multipathing, los servidores tienen varios caminos o path para acceder a los discos duros de la cabina) y pulsamos la pestaña “Console”

image

  • Veréis que es una consola Linux
  • En ella sacaremos primero de todo el error que nos da. Para ello, primero de todo buscamos el uuid (Universal Unique IDentifier) de nuestro SR asociado al host que ha perdido el path
[root@nuestroservidorxen]# xe sr-list
  • Cogemos el uuid del PBD (Physical Block Disk) asociado al SR anterior
[root@nuestroservidorxen]# xe pbd-list sr-uuid=<em>[Valor que nos a dado el comando anterior]</em>
  • Buscamos el parámetro que nos da el problema:
[root@nuestroservidorxen]# xe pbd-param-get param-name=other-config uuid=<em>[Valor que nos a dado el comando anterior]</em>

Bien, pues nos econtramos con un SR_Backend_Failure_47, que nos viene a decir que el servidor xenserver no se puede conectar con el recurso iSCSI. Dicho esto, debemos comprobar si realmente no existe comunicación entre el host i el recurso. Para ello haremos un ping a la interface de red del recuso iSCSI. Si NO responde, deberemos hallar el problema que muy probablemente será físico, pero si el ping responde, lo más seguro es que el problema sea lógico.

En nuestro error, el problema es lógico, ya que los ping responden sin problemas. Así mismo, para terminar de verificar el problema, podemos probar los siguientes comandos:

[root@nuestroservidorxen]# iscsiadm –m node

Con este comando veremos todos los IQNs disponibles y activos

[root@nuestroservidorxen]# iscsiadm –m session

Con este comando veremos todas la conexiones activas. Si no hay ningún error en ningún comando, entonces es que nuestro xenserver no se puede conectar al SR iSCSI (problema lógico). Pues ale, vamos a probar de conectarlos de nuevo…y lo haremos de dos formas. Pero ¡ojo! la/s máquina/s virtual/es asociada/s a este SR, deben estar apagadas.

Por consola:

root@nuestroservidorxen]# xe sr-list

[root@nuestroservidorxen]# xe pbd-list sr-uuid=<em>[Valor que nos a dado el comando anterior]</em>

[root@nuestroservidorxen]# xe pbd-plug uuid=<em>[Valor que nos a dado el comando anterior]</em>

Por el XenCenter

  1. Apagamos la/s máquina/s virtual/es asociada/s al SR que ha perdido la conexión
  2. Hacemos clic con el botón derecho sobre el SR que ha perdido la conexión y seleccionamos Detach con lo que desconectaremos el SR de todos los xenserver
  3. Hacemos clic con el botón derecho sobre el SR que hemos desconectado y seleccionamos Attach, con lo que podremos generar una conexión nueva

Si todo a ido bien, nuestro SR volverá a estar operativo con los dos (o los que sean) path iSCSI activos de nuevo.

Error en imprimir con Chrome: se quedan los documentos en la cola de impresión

Chrome Crash

Desde el pasado 27 de Agosto, se ha detectado que la última actualización de Google Chrome está dando problemas cuando queremos imprimir a través del navegador, quedándose los documentos en la cola de impresión. Esto sucede tanto si queremos imprimir a través del menú de Chrome o a través de código. De momento no hay una solución oficial y lo único que podemos hacer es cambiar la ruta del directorio temporal pues al parecer, la sandbox falla al no detectar la ruta correcta.

Esto se puede solucionar con un fichero batch:

echo off
md c:\gtemp\%username%\Temp
setx TEMP c:\gtemp\%username%\Temp
setx TMP c:\gtemp\%username%\Temp

En mi caso, al sucederme esto en un entorno Windows 2012R2, he creado un fichero *.bat y lo he forzado a que se ejecute al inicio de sesión de cada usuario, mediante el Logon script de las GPO. De esta forma el cambio se ejecuta en todos los UPD.

De momento no hay parche a la vista. En cuanto salga, actualizaré el post.

Fuente | Code Google

ACTUALIZACIÓN: Links de descarga pera el ix2-200 NAS de Iomega

Simple y llanamente este es un post donde cuelgo los links de descarga del firmware para la reparación del NAS Iomega ix2-200 que explico en este post. No me fijé que lo puse todo en Megaupload (ehem…)

  • Link en Mega (parece ser que me resisto en aprender la lección no?) – Descarga
  • Link originales – Descarga

Ya dije que poco a poco iría poniéndome al día con el Blog 😉

Extensiones para Chrome: «Hola un Internet Mejor»

Me encantan las series y el cine. De verdad. Consumo películas y series a «tuttiplen» pero me molesta (por no decir otra palabreja) tener que descargarlas y esperar a que salgan ripeadas en un formato currado (p.ej. HDRIP o BR-RIP) y me molesta sobremanera que, habiendo servicios como Netflix no se puedan disfrutar en España.

Bien es cierto que afloran servicios como Nubeox (propiedad de Atresmedia) y Wuaki TV (actualmente el que uso) pero no me dan el placer de poder ver las series justo cuando las estrenan y es por eso que he estado buscando la manera de poder acceder a Netflix. La solución? Una pequeña extensión de Chrome llamada Hola un Internet Mejor.

El enlace es este https://hola.org/ y he tenido el placer de probarla con Netflix y funciona de mil maravillas. Su funcionamiento no puede ser más simple: probad (sin tener la extensión) de ir a Netflix u otra web que por los motivos que sean (SGAE, Gobiernos o limitaciones por pais). Os saldrà una imagen como esta:

 

netflix_error

Bien, ahora veamos que sucede con la extensión de Chrome instalada:

netflix_voila

Tachan! Y a disfrutar de uno de los mejores servicios de video y series en streaming!

Powershell: script para saber las actualizaciones de nuestro servidor

En mi trabajo tengo que administrar un montón de servidores Windows 2008R2 y Windows 2012R2 y muchas veces me pierdo en cuanto ha actualizaciones. Lo que hago en este caso es programarme un script en powershell que me permite saber en cada servidor cuantas actualizaciones hay y como son (críticas o opcionales) con lo que llevo un pequeño registro y control de las mismas. Obviamente, lo que no os recomiendo es actualizar enseguida i cada semana. Lo suyo en cuanto a servidores es actualizar cada 30 o 60 días.

Os dejo el script 🙂


'==========================================================================
' NOMBRE: Notificaciones automáticas via mail de actualizaciones
' AUTOR: Paul Murana
'==========================================================================
'Cambiad estas variables para controlar los criterios de los avisos del mail
'y para configurar el servidor y los campos para/de
AlertCritical = 1
AlertImportant = 1
AlertModerate = 1
AlertLow = 1
AlertOthers = 1
EmailFrom = ""
EmailTo = ""
RemoteSMTPServer= ""
RemoteSMTPPort = "25"
'==========================================================================

Set fso = CreateObject("Scripting.FileSystemObject")
Set updateSession = CreateObject("Microsoft.Update.Session")
Set updateSearcher = updateSession.CreateupdateSearcher()

Set oShell = CreateObject( "WScript.Shell" )
computername = oShell.ExpandEnvironmentStrings("%ComputerName%")
DomainName = oShell.ExpandEnvironmentStrings("%userdomain%")
EMailSubject = "Windows Update Notification - " & DomainName & "\" & computername
Set oshell = Nothing

Set searchResult = updateSearcher.Search("IsInstalled=0 and Type='Software'")

If searchResult.Updates.count > 0 Then
 For I = 0 To searchResult.Updates.Count-1
 Set update = searchResult.Updates.Item(I)
 Select Case update.MsrcSeverity
 Case "Critical"
 CriticalCount = Criticalcount+1
 CriticalHTML = CriticalHTML & MakeHTMLLine(update)
 Case "Important"
 ImportantCount = Importantcount + 1
 ImportantHTML = ImportantHTML & MakeHTMLLine(update)
 Case "Moderate"
 ModerateCount = Moderatecount + 1
 ModerateHTML = ModerateHTML & MakeHTMLLine(update)
 Case "Low"
 Lowcount = Lowcount + 1
 LowHTML = LowHTML & MakeHTMLLine(update)
 Case Else
 Otherscount = Otherscount + 1
 OthersHTML = OthersHTML & MakeHTMLLine(update)
 end select
 Next

 If searchResult.Updates.Count = 0 Then
 WScript.Quit
 Else
 If (AlertCritical=1 and CriticalCount > 0) then SendEmail=1 end if
 If (AlertImportant=1 and ImportantCount > 0) then SendEmail=1 end if
 If (AlertModerate=1 and ModerateCount > 0) then SendEmail=1 end if
 If (AlertLow=1 and LowCount > 0) then SendEmail=1 end If
 If (AlertOthers=1 and OthersCount > 0) then SendEmail=1 end If
 if SendEmail=1 Then
 Wscript.Echo "sendEmail"
 Set objMessage = CreateObject("CDO.Message")
 objMessage.Subject = EMailSubject
 objMessage.From = EmailFrom
 objMessage.To = EmailTo
 objMessage.HTMLBody = ReplaceHTMLTemplate()
 if RemoteSMTPServer <> "" then
 objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
 objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = RemoteSMTPServer
 objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = RemoteSMTPPort
 objMessage.Configuration.Fields.Update
 end if
 objMessage.Send
 end if
 end If
End If

Function MakeHTMLLine(update)
 HTMLLine="<tr><td>" & update.Title & "</td><td>" & update.description & "</td><td>"
 counter =0
 For Each Article in Update.KBArticleIDs
 if counter > 0 then HTMLLine=HTMLLine & "<BR>"
 HTMLLine=HTMLLine & "<a href=" & chr(34) & "http://support.microsoft.com/kb/" & article & "/en-us" & chr(34) & ">KB" & article & "</a>"
 counter = counter +1
 Next
 For Each Info in Update.moreinfourls
 if counter > 0 then HTMLLine=HTMLLine & "<BR>"
 HTMLLine=HTMLLine & "<a href=" & chr(34) & info & chr(34) & ">" & "More information...</a>"
 counter = counter +1
 Next
 HTMLLine = HTMLLine & "</td></tr>"
 MakeHTMLLine = HTMLLine
End function

Function ReplaceHTMLTemplate()
 Set HTMLFile = fso.opentextfile((fso.GetParentFolderName(WScript.ScriptFullName) & "\updatetemplate.htm"),1,false)
 MasterHTML = HTMLFile.Readall
 HTMLFile.close

 MasterHTML = Replace(MasterHTML, "[criticalupdatecontents]", CriticalHTML)
 MasterHTML = Replace(MasterHTML, "[importantupdatecontents]", ImportantHTML)
 MasterHTML = Replace(MasterHTML, "[moderateupdatecontents]", ModerateHTML)
 MasterHTML = Replace(MasterHTML, "[lowupdatecontents]", LowHTML)
 MasterHTML = Replace(MasterHTML, "[othersupdatecontents]", OthersHTML)
 MasterHTML = Replace(MasterHTML, "[computername]", Computername)
 MasterHTML = Replace(MasterHTML, "[domainname]", domainname)
 MasterHTML = Replace(MasterHTML, "[timenow]", now())

 If (CriticalCount = 0) then
 MasterHTML = TrimSection(MasterHTML, "<!--CriticalStart-->", "<!--CriticalEnd-->")
 end if

 If (ImportantCount = 0) then
 MasterHTML = TrimSection(MasterHTML, "<!--ImportantStart-->", "<!--ImportantEnd-->")
 end if

 If (moderateCount = 0) then
 MasterHTML = TrimSection(MasterHTML, "<!--ModerateStart-->", "<!--ModerateEnd-->")
 end if

 If (LowCount = 0) then
 MasterHTML = TrimSection(MasterHTML, "<!--LowStart-->", "<!--LowEnd-->")
 end if
 If (OthersCount = 0) then
 MasterHTML = TrimSection(MasterHTML, "<!--OthersStart-->", "<!--OthersEnd-->")
 end if

 ReplaceHTMLTemplate = MasterHTML
End Function

Function TrimSection(CompleteString,LeftString,RightString)
 LeftChunkPos=inStr(CompleteString, LeftString)
 RightChunkPos=inStrRev(CompleteString, Rightstring)
 LeftChunk=Left(CompleteString, LeftChunkPos-1)
 RightChunk=mid(CompleteString, RightChunkPos)
 TrimSection=LeftChunk & RightChunk
End Function

Guardamos el script en un fichero con extensión VBS (p.ej. yo lo llamo WinUpdates.vbs) y acto seguido lo único que debemos hacer és crear un script cmd o bat para que ejecute el fichero vbs y añadirlo a las tareas programadas.


cscript C:\WinUpdates\WinUpdates.vbs

Y voilá… nuestro script para avisos de updates de Windows listo 🙂

ACTUALIZACIÓN: Un lector del blog me ha hecho saber que aparece un error «Se sobrepasó el final del archivo». Bien, para solucionar esto, os dejo el código del fichero *.htm que debéis guardar como «updatetemplate.htm» en el mismo directorio donde tenéis el resto de los ficheros:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html dir="ltr" lang="EN-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta http-equiv="MSThemeCompatible" content="yes">
<meta name="MS-HAID" content="a_TablDefs">
<meta name="MS.LOCALE" content="EN-US">
<title>Windows updates status report</title>
<meta name="COMPONENT" content="unassigned">
</head>
<style type="text/css">
body { color: #000000;
background: #FFFFFF;
font-size: 80%;
font-family: Verdana, Arial, Sans Serif;
margin-left: 0em;
padding-left: 1.5em; }
a:link, a:visited { color: #0000FF; text-decoration:underline;}

a:active, a:hover { color: #FF0000; cursor:hand; text-decoration:underline;}

a.#reltopics { position:relative; top:1em; }

h1
{ font-size: 125%;
margin-bottom: .5em; clear:both; width: 85%; }

h2
{ font-size: 115%;
margin-top: 1.5em;
margin-bottom: .5em; clear:both; }

h3
{ font-size: 105%;
margin-top: 1.2em;
margin-bottom: .5em; clear:both; }

h4
{ font-size: 105%;
margin-top: 1.2em;
margin-bottom: .5em; clear:both; }

h5
{ font-size: 105%;
margin-top: 1.2em;
margin-bottom: .5em; clear:both; }

p
{ margin-top: .6em;
margin-bottom: .6em; }

ol
{ margin-top: .5em;
margin-bottom: 0em;
margin-left: 2.1em;
padding-left: 0em;
margin-right:2.1em; }

ul
{ margin-top: .6em;
margin-bottom: 0em;
list-style-type: disc;
margin-left: 1.5em;
padding-left: 0em;
margin-right: 1.5em; }

li
{ margin-bottom: .7em; clear:both; }

dd
{ margin-bottom: 0em;
margin-left: 1.5em; }

dt
{ margin-top: 1em; }

pre
{ margin-top: .5em;
margin-bottom: .5em; }

code
{ font-family: Courier New;
font-size: 1.1em; }

table
{ font-size: 100%;
margin-top: 1em;
margin-bottom: 1em; }

th
{ text-align: left;
background: #DDDDDD;
vertical-align: bottom;
padding: .2em;
padding-left: .45em;
padding-right: .5em;}

tr
{ vertical-align: top; }

td
{ background: #EEEEEE;
vertical-align: top;
padding: .2em;
padding-left: .45em;
padding-right: .5em;}
p.indent { margin-left: 1.3em; } /* used to indent text for notes and warnings; use this instead of the blockquote tag */

p.indent2 { margin-left: 3.5em; } /* used to indent text a second level under the first indent */

P.indentGray { color: #666666; } /* used in quad-method procedures */

p.procLabel { font-size: 105%;
font-weight: bold; clear: both; width: 85%; margin-top: 2em; }

p.uatshoot { font-weight: bold; margin-bottom: -.5em; margin-top: 1em; }

table.uatshoot {background-color: #FFFFFF; width: 90%; }

table.uatshoot td { padding: 0px 0px 0px 5px; }
p.note,p.tip, p.important, p.caution, p.warning
{ font-weight:bold; clear:both;
margin-top:1em;
margin-bottom:-.25em; }

</style>

<body>
<h1 class="topicHeading">Windows Update Status Report - [timenow]</h1>
<p><b>[domainname]\[computername]</b></p>
<br>
<!--CriticalStart-->
<div ID=Critical>
<p><b>Critical Updates</b></p>
<table>
<tbody>
<tr>
<th width="20%">Title</th>
<th width="70%">Description</th>
<th width="10%">Links</th>
</tr>

[criticalupdatecontents]

</tbody>
</table>
</div>
<!--CriticalEnd-->
<!--ImportantStart-->
<div ID=Important>
<p><b>Important Updates</b></p>
<table>
<tbody>
<tr>
<th width="20%">Title</th>
<th width="70%">Description</th>
<th width="10%">Links</th>
</tr>

[importantupdatecontents]

</tbody>
</table>
</div>
<!--ImportantEnd-->
<!--ModerateStart-->
<div ID=Moderate>
<p><b>Moderate Priority Updates</b></p>
<table>
<tbody>
<tr>
<th width="20%">Title</th>
<th width="70%">Description</th>
<th width="10%">Links</th>
</tr>

[moderateupdatecontents]

</tbody>
</table>
</div>
<!--ModerateEnd-->
<!--LowStart-->
<div ID=Low>
<p><b>Low Priority Updates</b></p>
<table>
<tbody>
<tr>
<th width="20%">Title</th>
<th width="70%">Description</th>
<th width="10%">Links</th>
</tr>

[lowupdatecontents]

</tbody>
</table>
</div>
<!--LowEnd-->

<!--OthersStart-->
<div ID=Others>
<p><b>Others Priority Updates</b></p>
<table>
<tbody>
<tr>
<th width="20%">Title</th>
<th width="70%">Description</th>
<th width="10%">Links</th>
</tr>

[othersupdatecontents]

</tbody>
</table>
</div>
<!--OthersEnd-->

</body>
</html>

Hecho esto, ya no os debería dar problemas.

Fuente | Microsoft Script Center

Aplicación para monitorizar el sueño en Android

Sleep As An Droid, es una aplicación reloj-despertador para Android que entre las clásicas funciones de un despertador, nos monitoriza los ciclos de sueño despertándonos cuando el sueño es más ligero, lo que nos permite estar relajados, descansados y de buen humor. A todo el mundo (o almenos a mi) le molesta sobremanera despertarse de forma brusca o cuando tenemos un sueño profundo, empezando ya el día malhumorado y cansado y esta app intenta evitar esto.

Entre sus funciones encontramos:

  • Si te sueles dormir con música y usas tu Android para ello, Sleep as an Droid ajusta y va disminuyendo el volumen de forma automática para que duermas plácidamente
  • Agradables alarmas con volumen graduable
  • Califica y comento tus ciclos de sueño
  • Te permite compartir tus ciclos de sueño via Facebook (espero que pronto por Twitter) y por correo
  • Te pone a prueba con un captcha para parar el despertador, comprobando así que realmente estás despierto
  • Graba los ruidos (o las conversaciones que tenemos mientras dormimos) y los ronquidos

La aplicación de momento es gratis durante 14 días (para probarlo) y después se puede comprar por la friolera cantidad de 0,99 €. Os dejo el código QR:

Gracias @shox por el chivatazo 🙂

Reparación de un NAS Iomega ix2-200

Uno de los dispositivos de almacenaje para copias de seguridad que ya llevan un tiempo circulando por el mercado y que funcionan muy bien, son los NAS (Network Area Storage) o Dispositivos de Almacenamiento por Red. Estos dispositivo son una solución relativamente económica para las empresas/particulares para poder almacenar sus copias de seguridad. ¡Ojo! Nunca recomiendo tener este dispositivo como único sistema de copias de seguridad, ya que son bastante delicados y se pueden estropear como el caso que os planteo ahora.

Me llegó hace tiempo un NAS Iomega modelo ix2-200 con 2 Tbytes de capacidad de almacenamiento en RAID1 que no reconocía ningún disco (de los dos que tiene), además de encenderse y parpadear constantemente un LED blanco. Posteriormente supe que eso se le llama LED Blanco de la Muerte (o WLoD). Total que se cascó el RAID y no había forma humana de recuperar la información así que decidí cambiar los discos duros, siendo mi sorpresa que el mini sistema operativo que el dispositivo lleva dentro no funcionaba ni arrancaba con lo que me resultaba inútil probar de hacer cualquier tipo de reparación que no fuera la de reinstalar el mini OS.

Hay que decir que estos Iomega funcionan con un sistema operativo «propio» y un sistema Linux instalado en los primeros 100 Mb del disco en una partición primaria. Una de las primeras soluciones que probé, fue la de instalar el firmware propio que me proporciona Iomega y no funcionó con lo que investigando un poco dí con la solución que os presento. Para ello necesitamos:

  • Live CD Knoppix o el que yo utilicé, que fue un System Rescue CD con una distribución Gentoo (cualquier otra LiveCD como p.ej. Ubuntu serviría)
  • ACTUALIZACIÓN: Nuevos links de descarga del firmware
  • El disco duro del NAS enchufado por USB o cable SATA

El sistema operativo que se instalará nos permitirá mediante el gestor Web que estos NAS llevan configurar el resto del disco/s como queramos (RAID1, JBOD, iSCSI, etcétera …) y con ello habremos «resucitado» el NAS.

El primer paso consiste en copiar al directorio /tmp los ficheros ix2-200-2.1.25.299-files.7z.001 y ix2-200-2.1.25.299-files.7z.002. Luego ejecutamos:

sudo root
cd /tmp
7z x ix2-200-2.1.25.299-files.7z.001
tar xvf ix2-200-2.1.25.299-files.tar
rm -f ix2-200-2.1.25.299-files*

Ya tenemos los ficheros descomprimidos y listos para poner en el disco.

Ahora vamos a preaparar el disco duro de 1Tbyte (recordemos que este NAS lleva 2 HDD de 1Tbyte cada uno) y lo que yo hice fue conectarlo al pc mediante un USB-SATA. Buscaremos la unidad (normalmente sdx donde X es el nombre de la unidad. Para facilitar la redacción del post, le diremos sda). Ejecutamos:


sudo dmesg

Y buscamos la unidad. Ahora, una vez encontrada procederemos a prepararla:

sudo fdisk /dev/sda

Bien. Este paso es un poco lioso y procuraré explicarlo lo más fácil posible (después de cada opción pulsaremos <enter>:

  • Usaremos la opción ‘p‘ para comprobar si el disco dispone de alguna partición. En caso de haber alguna, la debemos remover con la opción ‘o
  • Crearemos una nueva partición con la opción ‘n
  • La haremos primaria con la opción ‘p‘ y le diremos que empiece en el cilindro 1 y que el último sea el 254.
  • Debemos asegurar también que el disco tiene el ID 83. En el caso que no sea así, ejecutamos la opción ‘t‘ y le damos manualmente el código 83.
  • Guardamos la configuración con la opción ‘w‘ y salimos de fdisk

La primera partición del disco duro, ya esta lista y preparada para poder ser usada como RAID. En la consola, ejecutaremos el siguiente comando:

sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 missing

NOTA: si no está instalado, sudo apt-get install mdadm y si usáis el System Rescue CD, ya viene instalado.

Y ahora formateamos con el sistema de ficheros ext2

sudo mkfs.ext2 /dev/md0

Y ahora copiamos los ficheros que hemos guardado en el directorio /tmp en el disco duro que acabamos de preparar:

mount /dev/md0 /mnt/
cp -rf /tmp/ix2-200-2.1.23.229-files/* /mnt/
sync
umount /mnt/

Ya tenemos el primer disco preparado. Ahora, debemos coger el otro disco y repetir el proceso de creación de la partición con el fdisk y el mdadm (no hace falta formatear. Montamos en el NAS solamente el primer disco que hemos preparado, lo encendemos y nos conectamos a la unidad mediante la red (creo recordad que la ip por defecto es la 192.168.1.11). Lo apagamos, montamos el segundo disco, lo encendemos y cuando nos volvamos a conectar, nos saldrá un mensaje ‘Data protection is being reconstructed‘. Dejamos que termine el proceso y listo, ya tendremos nuestro Iomega ix2-200 nuevo otra vez 🙂

Tip: Keyboard Shortcuts para Windows 7

Os dejo una pequeña recopilación de los mejores «atajos» para Windows 7. Algunos muy útiles:

  • Windows + Arriba/Windows + Abajo: Para maximizar o minimizar una ventana de manera rápida.
  • ALT + P: En el explorador de Windows tendremos una vista previa del fichero que tengamos seleccionado.
  • Windows + Shift + Arriba/Windows + Shift + Abajo: esta combinación nos permitirá que la ventana activa pasa a la altura máxima de escritorio y la otra nos devolverá la ventana a su tamaño original.
  • Windows + Izquierda/Windows + Derecha: hace exactamente lo mismo que si arrastramos la ventana activa a la derecha o a la izquierda: un redimensionado dinámico.
  • Windows + Inicio: nos minimizará todas las ventanas que tengamos excepto en la que estemos trabajando. Pulsando otra vez, restauramos de nuevo las ventanas.
  • Windows + [número]: nos ejecutará los programas que tengamos anclados en la barra de tareas de Windows 7, siendo el número 1 el primer programa anclado.
  • Windows + Espacio: nos permitirá visualizar el escritorio. Dejando de pulsar la combinación, volveremos a la ventana activa.

Para los que no lo sepan, la tecla Windows es esta:

 

 

 

 

 

 

Tip: Outlook 2003/2007: No se puede abrir la ventana de Outlook (y van 2)

El otro día ya comenté en este post como podemos hacer que MS Outlook deje de reiniciarse constantemente. Pues aquí os dejo el comando definitivo para cuando Outlook no quiere iniciarse.

  • Vamos a inicio -> ejecutar
  • Escribimos outlook.exe /resetnavpane

Este comando prácticamente soluciona todos y cada uno de los problemas de Outlook y lo que hace es crear un nuevo archivo con las carpetas del panel de exploración predeterminado, perdiendo de esta manera cualquier personalización que hayamos hecho en nuestro Outlook.

La otra opción a probar (no siempre funciona) es eliminar el archivo nombre_perfil.xml de la carpeta de archivos de nuestro perfil de usuario en Windows. Para acceder a ella:

  • Inicio -> Panel de Control -> Correo
  • Pulsamos el botón que nos dice «Abrir carpeta». Aquí tendremos almacenado nuestro archivo pst y nuestros archivos xml.

¿La causa del error? Ni los de Microsoft lo saben.